Cómo construir un poderoso sistema de investigación profunda

es una característica popular que puede activar en aplicaciones como ChatGPT y Google Gemini. Permite a los usuarios hacer una consulta como de costumbre, y la aplicación pasa más tiempo investigando correctamente la pregunta y presentando una mejor respuesta que las respuestas LLM normales.

También puede aplicar esto a su propia colección de documentos. Por ejemplo, suponga que tiene miles de documentos de información interna de la empresa, es posible que desee crear un sistema de investigación profundo que tome preguntas del usuario, escanee todos los documentos disponibles (internos) y obtenga una buena respuesta basada en esa información.

Esta infografía destaca el contenido principal de este artículo. Discutiré en qué situaciones necesita construir un sistema de investigación profundo, y en qué situaciones sean más simples enfoques como la búsqueda de trapo o palabras clave. Continuando, discutiré cómo construir un sistema de investigación profundo, incluida la recopilación de datos, la creación de herramientas y la elaborar todo con un Orchestrator LLM y subagentes. Imagen de Chatgpt.

Tabla de contenido

¿Por qué construir un sistema de investigación profundo?

La primera pregunta que podrías hacerte es:

¿Por qué necesito un sistema de investigación profundo?

Esta es una pregunta justa, porque hay otras alternativas que son viables en muchas situaciones:

Alimentar todos los datos en una búsqueda de palabras clave de RAG LLM

Si puede salirse con la suya con estos sistemas más simples, casi siempre debe hacerlo. El enfoque de mucho más fácil es simplemente alimentar todos los datos en un LLM. Si su información está contenida en menos de 1 millón de tokens, esta es definitivamente una buena opción.

Además, si el trapo tradicional funciona bien, o puede encontrar información relevante con una búsqueda de palabras clave, también debe elegir esas opciones. Sin embargo, a veces, ninguna de estas soluciones es lo suficientemente fuerte como para resolver su problema. Tal vez necesite analizar profundamente muchas fuentes, y la recuperación del trozo de la similitud (trapo) no es lo suficientemente bueno. O no puede usar la búsqueda de palabras clave porque no está lo suficientemente familiarizado con el conjunto de datos para saber qué palabras clave usar. En cuyo caso, debe considerar usar un sistema de investigación profunda.

Cómo construir un sistema de investigación profundo

Puede utilizar naturalmente el sistema de investigación profunda de proveedores como OpenAI, que proporciona una API de investigación profunda. Esta puede ser una buena alternativa si desea mantener las cosas simples. Sin embargo, en este artículo, discutiré con más detalle cómo se construye un sistema de investigación profunda y por qué es útil. Anthrope escribió un muy buen artículo sobre su sistema de investigación de agentes múltiples (que es una investigación profunda), que recomiendo leer para comprender más detalles sobre el tema.

Información de recopilación e indexación

El primer paso para cualquier sistema de búsqueda de información es recopilar toda su información en un solo lugar. Tal vez tenga información en aplicaciones como:

Google Drive Notion Salesforce

Luego necesita recopilar esta información en un solo lugar (convertirla todo en PDFS, por ejemplo, y almacenarla en la misma carpeta), o puede conectarse con estas aplicaciones, como ChatGpt ha hecho en su aplicación.

Después de recopilar la información, ahora necesitamos indexarla para que esté fácilmente disponible. Los dos índices principales que debe crear son:

Índice de búsqueda de palabras clave. Por ejemplo, el índice de similitud vectorial de BM25: acelere su texto, incrújelo y guárdelo en un vectordb como Pinecone

Esto hace que la información sea fácilmente accesible desde las herramientas que describiré en la próxima sesión.

Herramientas

Los agentes que utilizaremos más adelante con las herramientas de necesidad para obtener información relevante. Por lo tanto, debe hacer una serie de funciones que faciliten la LLM obtener la información relevante. Por ejemplo, si el usuario consulta un informe de ventas, el LLM podría querer hacer una búsqueda de palabras clave y analizar los documentos recuperados. Estas herramientas pueden verse así:

@Tool def keyword_search (consulta: str) -> str: “” “Busque las palabras clave en el documento.” “” Resultados = Keyword_Search (Query) # Respuestas de formato para facilitar que el LLM lea Formatted_Results = “\ n” .Join (Jer[f”{result[‘file_name’]}: {resultado[‘content’]} “para resultados de resultados]) return formatted_results @tool def vector_search (consulta: str) -> str:” “” Inscribir la consulta y buscar vectores similares en el documento. “” “vector = incrustar (consulta) resultados = vector_search (vector) # respuestas de formato para facilitar que el LLM lea formatted_results =” \ n “.Join ([f”{result[‘file_name’]}: {resultado[‘content’]} “para el resultado en resultados]) return formatted_results

También puede permitir que el agente acceda a otras funciones, como:

Búsqueda de archivo de archivo de Internet solo búsqueda

Y otras funciones potencialmente relevantes

Poniendo todo junto

Un sistema de investigación profundo generalmente consiste en un agente de orquestadores y muchos subagentes. El enfoque suele ser el siguiente:

Un agente de orquestadores recibe la consulta del usuario y los enfoques de planes para tomar muchos subagentes se envían para obtener información relevante y alimentar la información resumida al orquestador que el orquestador determina si tiene suficiente información para responder a la consulta del usuario. Si no, volvemos al último punto de bala; En caso afirmativo, podemos proporcionar el punto de bala final que el orquestador reúna toda la información y proporciona al usuario una respuesta

Esta figura destaca el sistema de investigación profunda que discutí. Ingresa la consulta de usuario, un agente de orquestador lo procesa y envía subagentes a obtener información del corpus de documentos. El agente del orquestador luego determina si tiene suficiente información para responder a la consulta del usuario. Si la respuesta es no, obtiene más información, y si tiene suficiente información, genera una respuesta para el usuario. Imagen del autor.

Además, también puede tener una pregunta aclaratoria, si la pregunta del usuario es vaga, o simplemente para reducir el alcance de la consulta del usuario. Probablemente haya experimentado esto si utiliza algún sistema de investigación profunda de un laboratorio fronterizo, donde el sistema de investigación profunda siempre comienza haciendo una pregunta aclaratoria.

Por lo general, el orquestador es un modelo más grande/mejor, por ejemplo, Claude Opus o GPT-5 con un gran esfuerzo de razonamiento. Los subagentes son típicamente más pequeños, como GPT-4.1 y Claude Sonnet.

La principal ventaja de este enfoque (sobre el trapo tradicional, especialmente) es que permite que el sistema escanee y analice más información, reduciendo la posibilidad de faltar información que sea relevante para responder a la consulta del usuario. El hecho de que tenga que escanear más documentos también generalmente hace que el sistema sea más lento. Naturalmente, esta es una compensación entre el tiempo y la calidad de las respuestas.

Conclusión

En este artículo, he discutido cómo construir un sistema de investigación profundo. Primero cubrí la motivación para construir un sistema de este tipo, y en qué escenarios debe centrarse en la creación de sistemas más simples, como RAG o búsqueda de palabras clave. Continuando, discutí las bases de lo que es un sistema de investigación profunda, que esencialmente toma en una consulta de usuario, planea cómo responderlo, envía sub-agentes para obtener información relevante, agregar esa información y responder al usuario.

👉 Encuéntrame en Socials:

🧑‍💻 Ponte en contacto

🔗 LinkedIn

🐦 X / Twitter

✍️ Medium

También puedes leer algunos de mis otros artículos: