For the complete documentation index, see llms.txt. This page is also available as Markdown.

Recuperación

Implementa estrategias de recuperación personalizadas

Introducción

El módulo RAG cuenta con un componente de recuperación separado que te permite implementar diferentes estrategias para lograr la recuperación de contexto desde fuentes de datos externas. De forma predeterminada, RAG usa SimilarityRetrieval que simplemente consulta el almacén vectorial para recuperar documentos:

namespace App\Neuron;

use NeuronAI\Providers\AIProviderInterface;
use NeuronAI\RAG\Embeddings\EmbeddingsProviderInterface;
use NeuronAI\RAG\RAG;
use NeuronAI\RAG\RAG\Retrieval\RetrievalInterface;
use NeuronAI\RAG\RAG\Retrieval\SimilarityRetrieval;
use NeuronAI\RAG\VectorStore\VectorStoreInterface;

class WorkoutTipsAgent extends RAG
{
    protected function retrieval(): RetrievalInterface
    {
        return new SimilarityRetrieval(
            $this->resolveVectorStore(),
            $this->resolveEmbeddingsProvider()
        );
    }
    
    protected function provider(): AIProviderInterface
    {
        // Devuelve una instancia de un proveedor de IA...
    }
    
    protected function embeddings(): EmbeddingsProviderInterface
    {
        // Devuelve una instancia de un proveedor de embeddings...
    }
    
    protected function vectorStore(): VectorStoreInterface
    {
        // Devuelve una instancia de un almacén vectorial...
    }
}

Implementación de RetrievalInterface eres libre de crear cualquier comportamiento de recuperación personalizado para tu RAG.

Si estás implementando un flujo de trabajo personalizado, puedes usar la recuperación como un componente independiente para recuperar dinámicamente datos de contexto para su uso en tus sistemas agénticos.

Recuperación como herramienta

Neuron te proporciona una RetrievalTool herramienta que permite a los agentes de IA realizar recuperación de contexto desde almacenes vectoriales si el modelo considera que necesita más contexto para responder a la pregunta actual del usuario. Está construida sobre la base de RetrievalInterface , lo que permite construir agentes con capacidades RAG (Generación Aumentada por Recuperación) bajo demanda en lugar de la inyección automática de contexto proporcionada por el componente RAG.

Aquí tienes un ejemplo usando la herramienta integrada SimilarityRetrieval:

Como puedes notar en este ejemplo, no extendemos RAG sino el Agent básico en su lugar. En esta implementación dejamos que el modelo decida si corresponde buscar una fuente externa para responder la pregunta del usuario.

Siempre puedes usar todos los métodos de herramientas y agentes para personalizar la descripción, las instrucciones y los prompts en general, y hacer que el modelo se comporte según tu caso de uso.

Módulo de recuperación RAPTOR

La mayoría de los modelos aumentados con recuperación funcionan dividiendo los documentos en fragmentos pequeños y recuperando solo los más relevantes. Sin embargo, este enfoque tiene algunas limitaciones:

  • Pérdida de contexto: Recuperar solo fragmentos pequeños y aislados puede perder la visión general, especialmente en documentos con contextos largos.

  • Dificultad en el razonamiento de varios pasos: Algunas preguntas requieren información de varias secciones de un documento.

Usa RAPTOR cuando:

  • Los usuarios hacen preguntas abiertas que requieren una cobertura exhaustiva

  • Tu dominio involucra temas complejos donde el contexto importa tanto como los hechos

  • Necesitas gestionar consultas sobre temas, tendencias o relaciones entre documentos

Mantén el RAG tradicional cuando:

  • Los usuarios principalmente necesitan una recuperación rápida y específica de hechos

  • La velocidad de procesamiento y la eficiencia de tokens son restricciones críticas

Obtén más información sobre RAPTOR en el repositorio dedicado:

Última actualización