Skill de LLM / RAG
Patrones de aplicaciones de recuperación y agentes: una Skill de Agente para servicios RAG/LLM de Python 3.14.
Qué Hace Esta Skill
Produce una lista de verificación para aplicaciones RAG: cargadores de documentos, estrategia de fragmentación, canalización de incrustación, adaptador de almacén vectorial, API de recuperación, orquestación de LLM (stubs de LangChain/LlamaIndex/LangGraph), arnés de evaluación y observabilidad (latencia, uso de tokens, tasa de aciertos de recuperación).
Cuándo Invocar
- Nuevo chat interno de base de conocimiento sobre documentos de Confluence/S3
- Revisión de PR sobre tamaño de fragmento, filtros de metadatos o citas faltantes
- Adición de un bucle de agente de uso de herramientas con puerta de aprobación humana
- Endurecimiento post-incidente después de inyección de prompt o fuga de datos
Entradas
| Entrada | Por qué |
|---|---|
| Fuente del corpus | PDF, HTML, tickets, repositorios de código |
| Presupuesto de latencia | Objetivo p95 para chat dirigido al usuario |
| Proveedor del modelo | OpenAI, Anthropic, vLLM local |
| Base de datos vectorial | pgvector, Pinecone, Chroma |
| Cumplimiento | Redacción de PII, retención, registro de auditoría |
Salidas
- Módulos
ingest/yretrieval/con configuración tipada - Parámetros de fragmentación documentados (tamaño, superposición, divisor)
- Eval JSON con pregunta, doc_id esperado, puntuación mínima
- Plantillas de prompt con formato de cita obligatorio
- Registro de herramientas con ámbitos de autenticación para skills de agente
- Verificación:
uv run pytest tests/test_retrieval.py
Barreras de Protección
- Basar respuestas en fragmentos recuperados - mostrar citas o rechazar.
- Sanitizar cargas - sin ejecución arbitraria de código desde macros de PDF analizadas.
- Separar prompts del sistema y del usuario - resistir la inyección a través del contenido del documento.
- Limitar la tasa y registrar prompts - redactar secretos y PII en rastreos.
- Versionar incrustaciones - volver a indexar cuando el modelo cambie.
- Aprobación humana para herramientas destructivas - eliminar, cobrar, enviar correo electrónico externo.
Receta
uv run python -m rag.ingest --source data/docs/
uv run python -m rag.index --rebuild
uv run pytest tests/test_golden.py -q
uv run python -m rag.chat --question "What is the refund policy?"Ejemplo de Trabajo (stub de recuperación)
from dataclasses import dataclass
@dataclass
class Chunk:
doc_id: str
text: str
score: float
def retrieve(query: str, store, k: int = 5) -> list[Chunk]:
hits = store.similarity_search_with_score(query, k=k)
return [Chunk(doc_id=h[0].metadata["doc_id"], text=h[0].page_content, score=h[1]) for h in hits]Preguntas Frecuentes
¿LangChain o LlamaIndex?
Sigue el ADR del equipo - las salidas de la skill proporcionan stubs de interfaz que ambos pueden implementar; la documentación humana en ai-agents-rag es la autorizada.
¿Cuándo añadir agentes frente a RAG de un solo disparo?
Agentes cuando se necesitan herramientas de varios pasos - empezar solo con RAG hasta que la calidad de la recuperación se estabilice.
Relacionado
- Conceptos básicos de RAG - recetario
- Fragmentación e Ingesta - profundidad
- Evaluación y Barreras de Protección - seguridad
- Bases de Datos Vectoriales - almacenamiento
Versiones de la pila: Esta página se escribió para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ y uv 0.6+.