Compila una búsqueda de contenido de IA con el Agente de Documentos

La búsqueda de información es uno de los usos más comunes de la inteligencia de los modelos generativos de inteligencia artificial (IA). Cómo compilar una interfaz de búsqueda conversacional para tu contenido con IA permite que los usuarios hagan preguntas específicas respuestas directas.

En este instructivo, se muestra cómo compilar una búsqueda conversacional potenciada por IA para tu contenido. Se basa en Agente de Documentos, un proyecto de código abierto que usa la API de Google Gemini para crear una conversación de búsqueda de Google, sin entrenar un nuevo modelo de IA ni realizar el ajuste de modelos con Modelos de Gemini. Eso significa que puedes obtener esta capacidad de búsqueda rápidamente y y usarlo para conjuntos de contenido pequeños y grandes.

Para ver una descripción general en video del proyecto y cómo extenderlo, incluidas las estadísticas de la gente que lo construye, mira: AI Content Search | Compila con la IA de Google. De lo contrario, puedes seguir las instrucciones para extender el proyecto a continuación.

Descripción general

El proyecto Agente de Documentos proporciona una interfaz de búsqueda conversacional para un de Google, que cuenta con el respaldo de la API de Gemini de Google y los modelos generativos. Los usuarios pueden hacer una pregunta detallada en un estilo conversacional y obtener una respuesta detallada según un conjunto de contenido específico. En segundo plano, el agente de Documentos toma las pregunta y busca en una base de datos de vectores del contenido, y crea una instrucción detallada para el modelo generativo, incluidos fragmentos de texto relevante. El modelo generativo genera una respuesta a la pregunta y el agente de Documentos da formato a la respuesta y se la presenta al usuario.

Diagrama funcional del agente de Documentos Figura 1: Diagrama funcional de la app del proyecto del Agente de Documentos.

La clave para que el agente de Documentos pueda responder preguntas sobre tu contenido es la de una base de datos vectorial de ese contenido. Separas el contenido en fragmentos lógicos de texto y generar un vector para cada uno de ellos. Estos vectores son numéricas de la información en cada fragmento y se generan con una función de incorporación de texto de IA de los modelos generativos de Google.

Cuando un usuario hace una pregunta, el Agente de Documentos usa la misma incorporación de texto. para crear una representación numérica de la pregunta y usa esa para buscar en la base de datos de vectores y encontrar contenido relacionado. Toma la parte superior y agrega esa información a una instrucción para el modelo generativo. La IA toma la pregunta y la información de contexto adicional, y genera un una respuesta en particular.

Configura el proyecto

Estas instrucciones te permitirán configurar el proyecto del Agente de Documentos para desarrollo y pruebas. Los pasos generales son instalar algunos requisitos configurar algunas variables de entorno, clonar el proyecto a partir del código en el repositorio de código abierto y ejecuta la instalación de la configuración. El proyecto de código usa Python Poetry para administrar paquetes y el entorno de ejecución de Python.

Instala los requisitos previos

El proyecto Agente de Documentos usa Python 3 y Python Poetry para administrar paquetes y ejecutar la aplicación. Las siguientes instrucciones de instalación son para un contenedor máquina anfitrión.

Para instalar el software requerido, sigue estos pasos:

  1. Instala Python 3 y el paquete de entorno virtual venv para Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Instala Python Poetry para administrar las dependencias y el empaquetado del proyecto.
    curl -sSL https://install.python-poetry.org | python3 -
    

Puedes usar Python Poetry para agregar más bibliotecas de Python si extiendes la en un proyecto final.

Configure las variables de entorno

Establece algunas variables de entorno necesarias para permitir el código del agente de Documentos proyecto a ejecutar, incluida una clave de API de Google Gemini y Python Entorno poesía. Puedes agregar estas variables a tu archivo $HOME/.bashrc si usas Linux, para establecer la configuración predeterminada de tu terminal sesiones.

Para configurar las variables de entorno, sigue estos pasos:

  1. Obtén una clave de API de Google Gemini y copia la cadena de la clave.
  2. Configura la clave de API como una variable de entorno. En los hosts Linux, usa el siguiente comando.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Resolver un problema conocido problema para Python Poetry estableciendo el parámetro PYTHON_KEYRING_BACKEND. En los hosts de Linux, usa el siguiente comando.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Clona y configura el proyecto

Descarga el código del proyecto y usa el comando de instalación de Poetry para descargarlo las dependencias necesarias y configurar el proyecto. Necesitas git para recuperar la el código fuente del proyecto. externo Para descargar y configurar el código del proyecto, haz lo siguiente:

  1. Clona el repositorio de Git con el siguiente comando.
    git clone https://github.com/google/generative-ai-docs
    
  2. Opcionalmente, configura tu repositorio de Git local para usar el resultado escaso. Así, solo tendrás los archivos del proyecto del Agente de Documentos.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Ve al directorio raíz del proyecto docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Ejecuta el comando de instalación de Poetry para descargar dependencias y configurar el proyecto:
    poetry install
    

Prepara el contenido

El proyecto Agente de Documentos está diseñado para funcionar con contenido de texto y, además, incluye herramientas específicas para trabajar con sitios web que usan Markdown como formato fuente. Si trabajas con contenido de sitios web, deberías conservar (o replicar) el Estructura de directorios del sitio web entregado para habilitar la tarea de procesamiento de contenido para asignar y crear vínculos a ese contenido.

Según el formato y los detalles de tu contenido, es posible que debas limpiar tu contenido para quitar información privada, notas internas o algún otro tipo de información que no quieres que aparezcan en las búsquedas. Debes conservar el formato básico, como títulos y encabezados, lo que ayuda a crear divisiones de texto o fragmentos lógicos de procesamiento de contenido.

Para preparar el contenido para su procesamiento, haz lo siguiente:

  1. Crea un directorio para el contenido que quieres que el agente de IA busque.
    mkdir docs-agent/content/
    
  2. Copia tu contenido en el directorio docs-agent/content/. Si el botón contenido es un sitio web, preservar (o replicar) la estructura de directorio de del sitio web publicado.
  3. Limpia o edita el contenido según sea necesario para quitar información que no sea pública. y otra información que no deseas que se incluya en las búsquedas.

Usa la documentación de Flutter para realizar pruebas

Si necesitas un conjunto de contenido para probar el agente de Documentos, puedes usar la app de Flutter la documentación para desarrolladores para realizar pruebas.

Para obtener la documentación para desarrolladores de Flutter, haz lo siguiente:

  1. Ve al directorio de contenido del contenido que quieres que el agente de IA búsqueda.
    cd docs-agent/content/
    
  2. Clona los documentos de Flutter en el directorio docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Procesa contenido

Para que el agente de búsqueda busque de manera efectiva contenido relacionado con de los usuarios debes crear una base de datos de vectores que representen tu contenido. Los vectores se generan usando una función de modelo generativo de IA llamada incorporación de texto. Las incorporaciones de texto son representaciones numéricas del texto contenido. Se aproximan al significado semántico del texto como un conjunto de y números de serie. Contar con representaciones numéricas de la información permite que el sistema tome de la pregunta de un usuario, aproxima su significado con la misma incorporación de texto función y, luego, buscar información relacionada como un cálculo matemático, usando un vecino más cercano (k-NN).

Dividir el contenido de texto

La cantidad de texto que un vector de incorporación de texto puede representar eficazmente es limitado. Este proyecto limita el texto representado en un vector a 3000 caracteres o menos, y eso significa que tienes que dividir el contenido en fragmentos límite de caracteres. En esta sección, se describe cómo usar una secuencia de comandos proporcionada con el Proyecto de Agente de Documentos para dividir archivos de Markdown en bloques de texto más pequeños. Para obtener sugerencias y trabajar con otros formatos de contenido, consulta Controla otros formatos.

Para dividir el contenido del formato Markdown, haz lo siguiente:

  1. Configura los parámetros de entrada para la secuencia de comandos de procesamiento editando el docs-agent/config.yaml. Este ejemplo se orienta a un subconjunto de los documentos de Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Guarda los cambios en este archivo de configuración.
  3. Navega al directorio del proyecto docs-agent:
    cd docs-agent/
    
  4. Para dividir el contenido de origen de Markdown, ejecuta el comando agent chunk:
    agent chunk
    

La secuencia de comandos procesa el contenido de entrada y crea archivos de texto de salida en la docs-agent/data, y divide el texto en función de títulos, encabezados y párrafos relacionados. El procesamiento puede tardar un poco según el tamaño de tu contenido.

Crea vectores de incorporación de texto

Después de dividir el contenido en fragmentos significativos del tamaño adecuado, puedes propagar la base de datos de vectores con tu contenido mediante una incorporación de texto . El proyecto del Agente de Documentos usa Chroma de vectores para almacenar vectores de incorporación de texto. En estas instrucciones, se explica para usar la secuencia de comandos de Agentes de Documentos para propagar una base de datos de vectores con tu división contenido.

Generar incorporaciones de texto y propagar la base de datos de vectores:

  1. Navega al directorio del proyecto docs-agent:
    cd docs-agent/
    
  2. Propaga la base de datos de vectores con tu contenido mediante agent populate. comando:
    agent populate
    

Esta secuencia de comandos usa la API de Gemini de Google para generar incorporación de texto y guarda el resultado en la base de datos de vectores. El procesamiento puede tardar un poco de tiempo según el tamaño de tu contenido.

Cómo controlar otros formatos

El proyecto Agente de Documentos está diseñado para trabajar con contenido de sitios web en Markdown de un conjunto de datos tengan un formato común. Los autores del proyecto compilaron algunas secuencias de comandos del conversor otros tipos de contenido en formato Markdown, como Documentos de Google, Portable Formato del documento (PDF) y Gmail. Para obtener más información sobre cómo usar de conversión, consulta la docs-agent/apps_script del repositorio de código.

Convierte otros formatos de contenido

Puedes usar otros formatos de contenido con el proyecto, pero Tú u otros miembros de la comunidad deben crear métodos adicionales. Verifica el repositorio de código Problemas y Solicitudes de extracción para quienes crean soluciones similares.

El código de clave que debes compilar para admitir otros formatos de contenido es un divisor. guion como el files_to_plain_text.py secuencia de comandos. Intenta compilar una secuencia de comandos o un programa que cree un resultado similar a este. secuencia de comandos. Recuerda que la salida de texto final debe tener un formato y una información irrelevante. Si usas formatos de contenido como HTML o JSON, asegúrate de quitar la mayor parte del formato no informativo (etiquetas, (secuencias de comandos o CSS) como sea posible, de modo que no sesgue los valores del texto las incorporaciones que generas a partir de ellos.

Una vez que hayas creado una secuencia de comandos divisor para el formato del contenido, deberías poder ejecuta populate_vector_database.py secuencia de comandos para completar tu base de datos de vectores. Para obtener más información sobre el procesamiento para usarlos con el Agente de Documentos, consulta el Agente Archivo readme del procesamiento previo.

Prueba la app

Cuando hayas terminado de completar la base de datos de vectores, el proyecto estará listo para realizar pruebas. El proyecto proporciona una función de empaquetado que te permite ejecutar el proyecto de forma local.

Para ejecutar y probar la interfaz web del proyecto, haz lo siguiente:

  1. Navega al directorio del proyecto docs-agent:
    cd docs-agent/
    
  2. Ejecuta la secuencia de comandos de inicio de la aplicación web:
    agent chatbot
    
  3. En un navegador web, navega a la dirección web de URL que se muestra en la resultado de la secuencia de comandos de inicio y probar la aplicación.
    * Running on http://your-hostname-here:5000
    

Opciones de implementación

La API de Gemini ofrece herramientas de programación que pueden reemplazar componentes de la implementación del Agente de Documentos, específicamente: recuperación semántica Variante del modelo de Gemini para respuestas de preguntas (AQA). Puedes usar las APIs de Gemini Recuperación semántica para reemplazar la base de datos de vectores separados. La función de recuperación semántica te permite generar incorporaciones para tu contenido y almacenarlo. El AQA El modelo de Gemini está ajustado para respondiendo preguntas con el material original proporcionado en una instrucción. Usas semánticas Recupera junto con el modelo AQA para responder preguntas sobre tu contenido, todo dentro de la API de Gemini.

El Agente de Documentos incluye opciones de configuración para usar la API de la API de recuperación, ese modelo AQA de Gemini o ambos. Para obtener más información, consulta el Léame del agente de Documentos.

Recursos adicionales

Para obtener más información sobre el proyecto del Agente de Documentos, consulta la repositorio de código. Si necesitas ayuda para compilar la aplicación o buscas un desarrollador colaboradores, consulta la Discordia de la comunidad de Google Developers servidor.

Aplicaciones de producción

Si planeas implementar el Agente de Documentos para un público amplio, ten en cuenta que el uso de la API de Google Gemini puede estar sujeta al límite de frecuencia y a otras restricciones de uso. Si estás considerando compilar una aplicación de producción con la API de Gemini, como Agente de Documentos, consulta Vertex AI de Google Cloud y servicios para aumentar la escalabilidad y confiabilidad de tu app.