ASD

Rag Implementation

Construye sistemas RAG (Retrieval-Augmented Generation) para aplicaciones LLM con bases de datos vectoriales y búsqueda semántica, integrando conocimiento externo.

Estrellas
38.8k

en todo el repo

Actividad
56

0–100, la ruta de este skill

Actualizado
el mes pasado

último commit aquí

Commits
2

últimos 90 días

Contexto
1.1k tok

60 tok en reposo

Paquete
2 archivos

15 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill rag-implementation --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Guía la construcción de sistemas RAG con bases de datos vectoriales y búsqueda semántica
  • Compara opciones de bases vectoriales (Pinecone, Weaviate, Milvus, Chroma, Qdrant, pgvector)
  • Recomienda modelos de embeddings según caso de uso
  • Explica estrategias de recuperación (dense, sparse, hybrid, multi-query, HyDE) y reranking
  • Ofrece un ejemplo funcional de pipeline RAG con LangGraph

Úsalo cuando

  • Construir sistemas de preguntas y respuestas sobre documentos propios
  • Crear chatbots con información actual y factual
  • Implementar búsqueda semántica con consultas en lenguaje natural
  • Reducir alucinaciones con respuestas fundamentadas en fuentes

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Ayúdame a construir un sistema RAG para responder preguntas sobre nuestra documentación
    • ¿Qué base de datos vectorial debería usar para búsqueda semántica?
    • Implementa un pipeline RAG con LangGraph y Pinecone
    • Necesito reducir las alucinaciones de mi chatbot con contexto real

    SKILL.md

    En inglés

    RAG Implementation

    Master Retrieval-Augmented Generation (RAG) to build LLM applications that provide accurate, grounded responses using external knowledge sources.

    When to Use This Skill

    • Building Q&A systems over proprietary documents
    • Creating chatbots with current, factual information
    • Implementing semantic search with natural language queries
    • Reducing hallucinations with grounded responses
    • Enabling LLMs to access domain-specific knowledge
    • Building documentation assistants
    • Creating research tools with source citation

    Core Components

    1. Vector Databases

    Purpose: Store and retrieve document embeddings efficiently

    Options:

    • Pinecone: Managed, scalable, serverless
    • Weaviate: Open-source, hybrid search, GraphQL
    • Milvus: High performance, on-premise
    • Chroma: Lightweight, easy to use, local development
    • Qdrant: Fast, filtered search, Rust-based
    • pgvector: PostgreSQL extension, SQL integration

    2. Embeddings

    Purpose: Convert text to numerical vectors for similarity search

    Models (2026):

    Model Dimensions Best For
    voyage-3-large 1024 Claude apps (Anthropic recommended)
    voyage-code-3 1024 Code search
    text-embedding-3-large 3072 OpenAI apps, high accuracy
    text-embedding-3-small 1536 OpenAI apps, cost-effective
    bge-large-en-v1.5 1024 Open source, local deployment
    multilingual-e5-large 1024 Multi-language support

    3. Retrieval Strategies

    Approaches:

    • Dense Retrieval: Semantic similarity via embeddings
    • Sparse Retrieval: Keyword matching (BM25, TF-IDF)
    • Hybrid Search: Combine dense + sparse with weighted fusion
    • Multi-Query: Generate multiple query variations
    • HyDE: Generate hypothetical documents for better retrieval

    4. Reranking

    Purpose: Improve retrieval quality by reordering results

    Methods:

    • Cross-Encoders: BERT-based reranking (ms-marco-MiniLM)
    • Cohere Rerank: API-based reranking
    • Maximal Marginal Relevance (MMR): Diversity + relevance
    • LLM-based: Use LLM to score relevance

    Quick Start with LangGraph

    from langgraph.graph import StateGraph, START, END
    from langchain_anthropic import ChatAnthropic
    from langchain_voyageai import VoyageAIEmbeddings
    from langchain_pinecone import PineconeVectorStore
    from langchain_core.documents import Document
    from langchain_core.prompts import ChatPromptTemplate
    from langchain_text_splitters import RecursiveCharacterTextSplitter
    from typing import TypedDict, Annotated
    
    class RAGState(TypedDict):
        question: str
        context: list[Document]
        answer: str
    
    # Initialize components
    llm = ChatAnthropic(model="claude-sonnet-5")
    embeddings = VoyageAIEmbeddings(model="voyage-3-large")
    vectorstore = PineconeVectorStore(index_name="docs", embedding=embeddings)
    retriever = vectorstore.as_retriever(search_kwargs={"k": 4})
    
    # RAG prompt
    rag_prompt = ChatPromptTemplate.from_template(
        """Answer based on the context below. If you cannot answer, say so.
    
        Context:
        {context}
    
        Question: {question}
    
        Answer:"""
    )
    
    async def retrieve(state: RAGState) -> RAGState:
        """Retrieve relevant documents."""
        docs = await retriever.ainvoke(state["question"])
        return {"context": docs}
    
    async def generate(state: RAGState) -> RAGState:
        """Generate answer from context."""
        context_text = "\n\n".join(doc.page_content for doc in state["context"])
        messages = rag_prompt.format_messages(
            context=context_text,
            question=state["question"]
        )
        response = await llm.ainvoke(messages)
        return {"answer": response.content}
    
    # Build RAG graph
    builder = StateGraph(RAGState)
    builder.add_node("retrieve", retrieve)
    builder.add_node("generate", generate)
    builder.add_edge(START, "retrieve")
    builder.add_edge("retrieve", "generate")
    builder.add_edge("generate", END)
    
    rag_chain = builder.compile()
    
    # Use
    result = await rag_chain.ainvoke({"question": "What are the main features?"})
    print(result["answer"])
    

    Detailed patterns and worked examples

    Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    2 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere acceso a una base de datos vectorial (p. ej. Pinecone, Chroma) y a un modelo de embeddings/LLM como Claude o OpenAI.

    Detalles

    Creador
    wshobson
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Integra el procesamiento de pagos de PayPal, con soporte para express checkout, suscripciones y gestión de reembolsos en flujos de comercio electrónico.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    desarrollo apis

    Construye servicios backend de Node.js listos para producción con Express/Fastify, cubriendo middleware, manejo de errores, autenticación, bases de datos y diseño de APIs.

    Costo de contexto al activarse
    499 tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 2 meses
    desarrollo apis

    Patrones de background jobs en Python: colas de tareas, workers y arquitectura event-driven, para procesamiento asíncrono y desacoplar trabajo del ciclo request/response.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    desarrollo apis