Przejdź do treści
Biblioteka skilli
AI i agenci · Planowanie

rag-patterns

/rag-patterns

Opisuje wzorce architektury RAG: strategie chunkingu, pipeline'y wyszukiwania, reranking, wyszukiwanie hybrydowe, ewaluację i projekt systemu produkcyjnego.

Licencja
MIT
Ostatnia zmiana repozytorium
21.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 21.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Opisuje wzorce architektury RAG: strategie chunkingu, pipeline'y wyszukiwania, reranking, wyszukiwanie hybrydowe, ewaluację i projekt systemu produkcyjnego.

Wyzwalacze z opisu

RAGretrieval augmented generationdocument Q&Aknowledge base chatbotsemantic search pipelinechunking strategy
Oryginalny opis (EN)

Retrieval-Augmented Generation architecture patterns. Chunking strategies, retrieval pipelines, re-ranking, hybrid search, evaluation, and production RAG system design. USE WHEN: user mentions "RAG", "retrieval augmented generation", "document Q&A", "knowledge base chatbot", "semantic search pipeline", "chunking strategy" DO NOT USE FOR: vector database specifics - use `vector-databases`; LangChain implementation - use `langchain`; direct LLM API calls - use Claude/OpenAI SDK skills

Jak działa

  1. Standard RAG Pipeline
  2. Chunking Strategies
  3. Retrieval Strategies
  4. Prompt Construction
  5. Evaluation
  6. Anti-Patterns
  7. Production Checklist
Sekcje z nagłówków SKILL.md, w oryginale · 144 linii, 509 słów
Podgląd SKILL.md
---
name: rag-patterns
description: |
  Retrieval-Augmented Generation architecture patterns. Chunking strategies,
  retrieval pipelines, re-ranking, hybrid search, evaluation, and production
  RAG system design.

  USE WHEN: user mentions "RAG", "retrieval augmented generation", "document Q&A",
  "knowledge base chatbot", "semantic search pipeline", "chunking strategy"

  DO NOT USE FOR: vector database specifics - use `vector-databases`;
  LangChain implementation - use `langchain`;
  direct LLM API calls - use Claude/OpenAI SDK skills
allowed-tools: Read, Grep, Glob, Write, Edit
---
# RAG Patterns

## Standard RAG Pipeline

```
Documents → Chunk → Embed → Store (vector DB)
Query → Embed → Retrieve → Augment prompt → Generate answer
```

## Chunking Strategies

```python
from langchain_text_splitters import RecursiveCharacterTextSplitter

# Recommended defaults
splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,      # chars (not tokens)
    chunk_overlap=200,
    separators=["\n\n", "\n", ". ", " ", ""],
)
chunks = splitter.split_documents(docs)
```

| Strategy | Best For | Chunk Size |
|----------|----------|------------|
| Fixed-size with overlap | General text | 500-1000 chars |
| Recursive character | Structured docs | 500-1000 chars |
| Semantic (by meaning) | Long-form content | Variable |
| Document-aware (markdown headers) | Technical docs | Section-based |

### Metadata Enrichment

```python
for chunk in chunks:
    chunk.metadata.update({
        "source": doc.metadata["source"],
        "section": extract_section_title(chunk),
        "doc_id": doc.metadata["id"],
        "chunk_index": i,
    })
```

## Retrieval Strategies

### Hybrid Search (keyword + semantic)

```python
from langchain.retrievers import EnsembleRetriever
from langchain_community.retrievers import BM25Retriever

bm25 = BM25Retriever.from_documents(docs, k=5)
vector_retriever = vectorstore.as_retriever(search_kwargs={"k": 5})

hybrid = EnsembleRetriever(
    retrievers=[bm25, vector_retriever],
    weights=[0.3, 0.7],
)
```

### Re-ranking

```python
from cohere import Client

cohere = Client(api_key=COHERE_API_KEY)

def rerank(query: str, documents: list[str], top_n: int = 5):
    response = cohere.rerank(
        model="rerank-english-v3.0",
        query=query,
        documents=documents,
        top_n=top_n,
    )
    return [documents[r.index] for r in response.results]
```

### Multi-query Retrieval

```python
# Generate multiple query variations for better recall
prompt = """Generate 3 different versions of this question
to retrieve relevant documents: {question}"""

queries = llm.invoke(prompt).split("\n")
all_docs = set()
for q in queries:
    all_docs.update(retriever.invoke(q))
```

## Prompt Construction

```python
SYSTEM_PROMPT = """Answer based only on the provided context.
If the context doesn't contain the answer, say "I don't have enough information."
Cite sources using [Source: filename] format.

Context:
{context}"""

def format_context(docs, max_tokens=3000):
    context_parts = []
    for doc in docs:
        source = doc.metadata.get("source", "unknown")
        context_parts.append(f"[Source: {source}]\n{doc.page_content}")
    return "\n\n---\n\n".join(context_parts)
```

## Evaluation

| Metric | Measures | Tool |
|--------|----------|------|
| Context Relevance | Are retrieved docs relevant? | RAGAS, manual |
| Faithfulness | Does answer match context? | RAGAS |
| Answer Relevance | Does answer address question? | RAGAS |
| Retrieval Recall | Are correct docs retrieved? | Custom eval set |

```python
from ragas import evaluate
from ragas.metrics import faithfulness, answer_relevancy, context_precision

result = evaluate(dataset, metrics=[faithfulness, answer_relevancy, context_precision])
```

## Anti-Patterns

| Anti-Pattern | Fix |
|--------------|-----|
| Chunks too large (>1500 chars) | Use 500-1000 char chunks with 200 overlap |
| No metadata on chunks | Store source, section, page number |
| No retrieval evaluation | Build eval set, measure recall and precision |
| Stuffing all chunks in prompt | Limit to top-K (3-5), use re-ranking |
| Ignoring hybrid search | Combine BM25 + vector for better recall |
| No citation/source tracking | Pass metadata through pipeline |

## Production Checklist

- [ ] Chunking strategy tuned with eval set
- [ ] Hybrid search (BM25 + vector) enabled
- [ ] Re-ranking on retrieval results
- [ ] Source attribution in answers
- [ ] Guardrails for out-of-scope questions
- [ ] Monitoring: retrieval latency, answer quality scores
- [ ] Incremental indexing for new documents

Wersje

W bazie nie ma innych skilli o nazwie rag-patterns.

Migawka bazy z 28.10.2026 · wersja paczki eed41c2f8aeb (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 90rag-implementation
    Opisuje wzorce Retrieval-Augmented Generation: chunking, embeddingi, magazyny wektorowe i optymalizację wyszukiwania.
  • 100rag-engineer
    Dostarcza wzorce RAG obejmujące modele embeddingów, bazy wektorowe, strategie chunkingu i optymalizację wyszukiwania.
  • 90rag-systems
    Projektuje potoki retrieval-augmented generation: chunking, embeddingi, wyszukiwanie, reranking, ugruntowanie i ewaluację, przy budowie Q&A po dokumentach, agentów wyszukiwania kodu i baz wiedzy.
  • 100rag-engineer
    Pomaga budować systemy RAG, dobierać modele embeddingów, bazy wektorowe i strategie chunkingu oraz optymalizować jakość wyszukiwania dla aplikacji LLM.
  • 100rag-skills
    Wspiera budowę, debugowanie i ulepszanie systemów RAG: chunking, wybór bazy wektorowej, hybrid search, reranking, multimodalny RAG i opóźnienia wyszukiwania.
  • 100rag-pipeline
    Pomaga budować RAG: strategia chunkingu, wybór embeddingów, magazyny wektorowe, wyszukiwanie hybrydowe z rerankingiem, składanie promptu i ocena jakości.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.