Cómo realizar la recuperación de información agente

Es una tarea importante que es fundamental lograr, dada la gran cantidad de contenido disponible en la actualidad. Una tarea de recuperación de información es, por ejemplo, cada vez que buscas algo en Google o le pides a ChatGPT una respuesta a una pregunta. La información que está buscando podría ser un conjunto de datos cerrado de documentos o todo Internet.

En este artículo, analizaré la búsqueda de información agente y cubriré cómo la recuperación de información ha cambiado con el lanzamiento de los LLM y, en particular, con el aumento de los agentes de IA, que son mucho más capaces de encontrar información de lo que hemos visto hasta ahora. Primero hablaré de RAG, ya que es un bloque fundamental en la búsqueda de información agente. Luego continuaré analizando a alto nivel cómo se pueden utilizar los agentes de IA para encontrar información.

Esta infografía destaca los contenidos principales de este artículo. Discutiré algunos enfoques tradicionales diferentes de recuperación de información, como TF-IDF (búsqueda de palabras clave), y continuaré discutiendo RAG. Luego, analizaré las diferentes formas de implementar RAG, ya sea haciéndolo usted mismo desde cero con un modelo integrado y una base de datos vectorial, o utilizando soluciones RAG administradas. Luego, analizaré cómo hacer que la búsqueda de palabras clave y RAG estén disponibles para sus agentes de IA como herramientas. Imagen de ChatGPT.

¿Por qué necesitamos encontrar información agente?

La recuperación de información es una tarea relativamente antigua. TF-IDF es el primer algoritmo utilizado para buscar información en un gran corpus de documentos y funciona indexando sus documentos según la frecuencia de las palabras dentro de documentos específicos y la frecuencia de una palabra en todos los documentos.

Si un usuario busca una palabra y esa palabra aparece con frecuencia en unos pocos documentos, pero rara vez en todos los documentos, indica una gran relevancia para esos pocos documentos.

La recuperación de información es una tarea crítica porque, como seres humanos, dependemos mucho de encontrar información rápidamente para resolver diferentes problemas. Estos problemas podrían ser:

Cómo cocinar una comida específica Cómo implementar un determinado algoritmo Cómo llegar desde la ubicación A->B

TF-IDF todavía funciona sorprendentemente bien, aunque ahora hemos descubierto enfoques aún más poderosos para encontrar información. La recuperación de generación aumentada (RAG) es una técnica sólida que se basa en la similitud semántica para encontrar documentos útiles.

La búsqueda de información agente utiliza diferentes técnicas, como la búsqueda de palabras clave (TF-IDF, por ejemplo, pero normalmente versiones modernizadas del algoritmo, como BM25) y RAG, para encontrar documentos relevantes, buscarlos y devolver resultados al usuario.

Construye tu propio RAG

Esta figura destaca cómo funciona RAG. Incrusta la consulta del documento y encuentra los documentos más similares del corpus en función de la similitud semántica. Luego, envía estos documentos relevantes a un LLM, que fundamenta su respuesta para el usuario en los documentos relevantes. Imagen del autor.

Construir su propio RAG es sorprendentemente sencillo con toda la tecnología y herramientas disponibles en la actualidad. Existen numerosos paquetes que le ayudarán a implementar RAG. Sin embargo, todos ellos dependen de la misma tecnología subyacente relativamente básica:

Incrustar su corpus de documentos (normalmente también fragmenta los documentos) Almacenar las incrustaciones en una base de datos vectorial El usuario ingresa una consulta de búsqueda Incrustar la consulta de búsqueda Encuentre similitudes de incrustación entre el corpus de documentos y la consulta del usuario, y devuelva los documentos más similares

Esto se puede implementar en tan sólo unas horas si sabes lo que estás haciendo. Para incrustar sus datos y consultas de usuarios, puede, por ejemplo, utilizar:

Servicios administrados como text-embedding-large-3 de OpenAI Gemini-embedding-001 de Google Opciones de código abierto como qwen-embedding-8B Mistral de Alibaba Linq-Embed-Mistral

Una vez que haya incrustado sus documentos, puede almacenarlos en una base de datos vectorial como:

Después de eso, básicamente estará listo para realizar RAG. En la siguiente sección, también cubriré las soluciones RAG totalmente administradas, en las que simplemente carga un documento y toda la fragmentación, incrustación y búsqueda se maneja por usted.

Servicios RAG gestionados

Si desea un enfoque más simple, también puede utilizar soluciones RAG totalmente administradas. Aquí hay algunas opciones:

Herramienta de búsqueda de archivos Ragie.ai Gemini Herramienta de búsqueda de archivos OpenAI

Estos servicios simplifican significativamente el proceso RAG. Puede cargar documentos en cualquiera de estos servicios, y los servicios se encargarán automáticamente de la fragmentación, la incrustación y la inferencia por usted. Todo lo que tiene que hacer es cargar sus documentos sin procesar y proporcionar la consulta de búsqueda que desea ejecutar. Luego, el servicio le proporcionará los documentos relevantes para sus consultas, que podrá introducir en un LLM para responder las preguntas de los usuarios.

Aunque el RAG administrado simplifica significativamente el proceso, también me gustaría destacar algunas desventajas:

Si solo tienes archivos PDF, puedes subirlos directamente. Sin embargo, actualmente hay algunos tipos de archivos que no son compatibles con los servicios RAG administrados. Algunos de ellos no admiten archivos PNG/JPG, por ejemplo, lo que complica el proceso. Una solución es realizar OCR en la imagen y cargar el archivo txt (que es compatible), pero esto, por supuesto, complica su aplicación, que es exactamente lo que desea evitar cuando usa RAG administrado.

Otra desventaja, por supuesto, es que hay que cargar documentos sin procesar en los servicios. Al hacer esto, debe asegurarse de cumplir, por ejemplo, con las regulaciones GDPR de la UE. Esto puede ser un desafío para algunos servicios RAG administrados, aunque sé que OpenAI al menos admite la residencia en la UE.

También proporcionaré un ejemplo del uso de la herramienta de búsqueda de archivos de OpenAI, que naturalmente es muy sencilla de usar.

Primero, crea una tienda de vectores y carga documentos:

from openai import OpenAI client = OpenAI() # Crear tienda de vectores vector_store = client.vector_stores.create( name=””, ) # Cargar archivo y agregarlo a la tienda de vectores client.vector_stores.files.upload_and_poll( vector_store_id=vector_store.id, file=open(“filename.txt”, “rb”) )

Después de cargar y procesar documentos, puede consultarlos con:

user_query = “¿Cuál es el significado de la vida?” resultados = cliente.vector_stores.search( vector_store_id=vector_store.id, consulta = consulta_usuario,)

Como habrás notado, este código es mucho más simple que configurar modelos integrados y bases de datos vectoriales para construir RAG tú mismo.

Herramientas de recuperación de información

Ahora que tenemos las herramientas de recuperación de información disponibles, podemos comenzar a realizar una recuperación de información agencial. Comenzaré con el enfoque inicial de utilizar LLM para buscar información, antes de continuar con el enfoque mejor y actualizado.

Recuperar y luego responder

El primer enfoque es comenzar recuperando documentos relevantes y proporcionando esa información a un LLM antes de que responda la pregunta del usuario. Esto se puede hacer ejecutando una búsqueda de palabras clave y una búsqueda RAG, encontrando los X documentos más relevantes e introduciendo esos documentos en un LLM.

Primero, busque algunos documentos con RAG:

user_query = “¿Cuál es el significado de la vida?” resultados_rag = cliente.vector_stores.search( vector_store_id=vector_store.id, consulta = consulta_usuario,)

Luego, busque algunos documentos con una búsqueda por palabra clave.

def búsqueda_palabra clave(consulta): # lógica de búsqueda de palabras clave … devolver resultados búsqueda_palabra_clave_resultados = búsqueda_palabra clave(consulta)

Luego sume estos resultados, elimine los documentos duplicados y envíe el contenido de estos documentos a un LLM para que responda:

def llm_completion(prompt): # lógica de finalización de llm devolver respuesta = f””” Dado el siguiente contexto {document_context} Responda la consulta del usuario: {user_query} “”” respuesta = llm_completion(prompt)

En muchos casos, esto funciona muy bien y proporcionará respuestas de alta calidad. Sin embargo, existe una mejor manera de realizar la búsqueda de información agencial.

La recuperación de información funciona como herramienta.

Todos los LLM de última generación están capacitados teniendo en cuenta el comportamiento agente. Esto significa que los LLM son muy buenos en el uso de herramientas para responder las consultas. Puede proporcionar a un LLM una lista de herramientas, que él mismo decide cuándo usar y que puede utilizar para responder las consultas de los usuarios.

Por lo tanto, el mejor enfoque es proporcionar RAG y búsqueda de palabras clave como herramientas para sus LLM. Para GPT-5, puede, por ejemplo, hacerlo como se muestra a continuación:

# definir una función de búsqueda de palabras clave personalizada y proporcionar a GPT-5 # búsqueda de palabras clave y RAG (herramienta de búsqueda de archivos) def palabra clave_search(palabras clave): # realizar búsqueda de palabras clave y devolver resultados user_input = “¿Cuál es el significado de la vida?” herramientas = [
{
“type”: “function”,
“function”: {
“name”: “keyword_search”,
“description”: “Search for keywords and return relevant results”,
“parameters”: {
“type”: “object”,
“properties”: {
“keywords”: {
“type”: “array”,
“items”: {“type”: “string”},
“description”: “Keywords to search for”
}
},
“required”: [“keywords”]
} } }, { “tipo”: “búsqueda_archivo”, “vector_store_ids”: [“”]} ]respuesta = cliente.respuestas.create( modelo=”gpt-5″, entrada=entrada_usuario, herramientas=herramientas,)

Esto funciona mucho mejor porque no está ejecutando una búsqueda de información única con RAG/búsqueda de palabras clave y luego respondiendo la pregunta del usuario. Funciona bien porque:

El propio agente puede decidir cuándo utilizar las herramientas. Algunas consultas, por ejemplo, no requieren búsqueda vectorial. OpenAI reescribe automáticamente las consultas, lo que significa que ejecuta consultas RAG paralelas con diferentes versiones de la consulta del usuario (que escribe él mismo, en función de la consulta del usuario. El agente puede decidir ejecutar más consultas RAG/búsquedas de palabras clave si cree que no tiene suficiente información).

El último punto de la lista anterior es el punto más importante para la búsqueda de información agencial. A veces, no encuentras la información que buscas en la consulta inicial. El agente (GPT-5) puede determinar que este es el caso y optar por realizar más consultas de búsqueda de RAG/palabras clave si lo considera necesario. Esto a menudo conduce a resultados mucho mejores y hace que sea más probable que el agente encuentre la información que está buscando.

Conclusión

En este artículo, cubrí los conceptos básicos de la recuperación de información agencial. Comencé explicando por qué la información agencial es tan importante, destacando cómo dependemos en gran medida del acceso rápido a la información. Además, cubrí las herramientas que puede utilizar para la recuperación de información con búsqueda de palabras clave y RAG. Luego destaqué que se pueden ejecutar estas herramientas de forma estática antes de enviar los resultados a un LLM, pero el mejor enfoque es alimentar estas herramientas a un LLM, convirtiéndolo en un agente capaz de encontrar información. Creo que la búsqueda de información mediante agentes será cada vez más importante en el futuro, y comprender cómo utilizar los agentes de IA será una habilidad importante para crear potentes aplicaciones de IA en los próximos años.

👉 Encuéntrame en las redes sociales:

💻 Mi seminario web sobre modelos de lenguaje de visión

📩 Suscríbete a mi newsletter

🧑‍💻 Ponte en contacto

🔗 LinkedIn

🐦X/Twitter

✍️ Medio

También puedes leer mis otros artículos: