RAG (Retrieval Augmented Generation) implementation patterns including document chunking, embedding generation, vector database integration, semantic search, and RAG pipelines. Use when building RAG systems, implementing semantic search, creating knowledge bases, or when user mentions RAG, embeddings, vector database, retrieval, document chunking, or knowledge retrieval.
View on GitHubFebruary 1, 2026
Select agents to install to:
npx add-skill https://github.com/vanman2024/ai-dev-marketplace/blob/main/plugins/vercel-ai-sdk/skills/rag-implementation/SKILL.md -a claude-code --skill rag-implementationInstallation paths:
.claude/skills/rag-implementation/# RAG Implementation Patterns
**Purpose:** Provide complete RAG pipeline templates, chunking strategies, vector database schemas, and retrieval patterns for building production-ready RAG systems with Vercel AI SDK.
**Activation Triggers:**
- Building RAG (Retrieval Augmented Generation) systems
- Implementing semantic search functionality
- Creating AI-powered knowledge bases
- Document ingestion and embedding generation
- Vector database integration
- Hybrid search (vector + keyword) implementation
**Key Resources:**
- `templates/rag-pipeline.ts` - Complete RAG pipeline template
- `templates/vector-db-schemas/` - Database schemas for Pinecone, Chroma, pgvector, Weaviate
- `templates/chunking-strategies.ts` - Document chunking implementations
- `templates/retrieval-patterns.ts` - Semantic search and hybrid search patterns
- `scripts/chunk-documents.sh` - Document chunking utility
- `scripts/generate-embeddings.sh` - Batch embedding generation
- `scripts/validate-rag-setup.sh` - Validate RAG configuration
- `examples/` - Complete RAG implementations (chatbot, Q&A, search)
## Core RAG Pipeline
### 1. Document Ingestion → Chunking → Embedding → Storage → Retrieval → Generation
**Template:** `templates/rag-pipeline.ts`
**Workflow:**
```typescript
// 1. Ingest documents
const documents = await loadDocuments()
// 2. Chunk documents
const chunks = await chunkDocuments(documents, {
chunkSize: 1000
overlap: 200
strategy: 'semantic'
})
// 3. Generate embeddings
const embeddings = await embedMany({
model: openai.embedding('text-embedding-3-small')
values: chunks.map(c => c.text)
})
// 4. Store in vector DB
await vectorDB.upsert(chunks.map((chunk, i) => ({
id: chunk.id
embedding: embeddings.embeddings[i]
metadata: chunk.metadata
})))
// 5. Retrieve relevant chunks
const query = await embed({
model: openai.embedding('text-embedding-3-small')
value: userQuestion
})
const results = await vectorDB.query({
vector: query.embedding
topK: 5
})
// 6.