En esta página, se presenta cómo compilar aplicaciones con tecnología de LLM a través de LangChain. Las descripciones generales de esta página se vinculan a guías de procedimiento en GitHub.
¿Qué es LangChain?
LangChain es un framework de organización de LLM que ayuda a los desarrolladores a compilar aplicaciones de IA generativa o flujos de trabajo de generación de aumento de recuperación (RAG). Proporciona la estructura, las herramientas y los componentes para optimizar los flujos de trabajo complejos de modelos de lenguaje grandes (LLM). Para obtener más información sobre los LLM, sus casos de uso y los modelos y servicios específicos que ofrece Google, consulta una descripción general de los conceptos y servicios de LLM en Google Cloud.
Para obtener más información acerca de LangChain, consulta la página Google LangChain. Para obtener más información sobre el framework de LangChain, consulta la documentación del producto LangChain.
Componentes de LangChain para AlloyDB
Aprende a usar LangChain con la Guía de inicio rápido de LangChain para AlloyDB. En esta guía de inicio rápido, se crea una aplicación que accede a un conjunto de datos de películas de Netflix para que los usuarios puedan interactuar con los datos de las películas.
Almacén de vectores para AlloyDB
El almacén de vectores recupera y almacena documentos y metadatos de una base de datos vectorial. El almacén de vectores brinda a una aplicación la capacidad de realizar búsquedas semánticas que interpretan el significado de una consulta de usuario. Este tipo de búsqueda se denomina búsqueda de vectores y puede encontrar temas que coincidan de manera conceptual con la consulta. En el momento de la consulta, el almacén de vectores recupera los vectores de incorporación que son más similares a la incorporación de la solicitud de búsqueda. En LangChain, un almacén de vectores se encarga de almacenar datos incorporados y realizar la búsqueda de vectores por ti.
Para trabajar con el almacén de vectores en AlloyDB, usa la
clase AlloyDBVectorStore
.
Para obtener más información, consulta la documentación del producto LangChain Vector Stores.
Guía de procedimiento del almacén de vectores
En la guía de AlloyDB para el almacén de vectores, se muestra cómo hacer lo siguiente:
- Instalar el paquete de integración y LangChain
- Crea un objeto
AlloyDBEngine
y configura un grupo de conexiones a tu base de datos de AlloyDB - Inicializa una tabla para la tienda de vectores
- Configura un servicio de incorporación con
VertexAIEmbeddings
- Inicializa
AlloyDBVectorStore
- Cómo agregar y borrar documentos
- Buscar documentos similares
- Agrega un índice de vectores para mejorar el rendimiento de la búsqueda
- Crear un almacén de vectores personalizado para conectarse a una base de datos preexistente de AlloyDB para PostgreSQL que tenga una tabla con incorporaciones de vectores
Cargador de documentos para AlloyDB
El cargador de documentos guarda, carga y borra un objeto Document
de LangChain. Por ejemplo, puedes cargar datos para procesarlos en incorporaciones y almacenarlos en un almacén de vectores o usarlos como una herramienta con el fin de proporcionar contexto específico a las cadenas.
Para cargar documentos desde AlloyDB, usa la
clase AlloyDBLoader
. AlloyDBLoader
devuelve una lista de documentos de una tabla en la que usa la primera columna para el contenido de la página y todas las demás columnas para los metadatos. La tabla predeterminada tiene la primera columna como contenido de página y la segunda columna como metadatos JSON. Cada fila se convierte en un documento. Las instrucciones para personalizar estos parámetros están en la guía del procedimiento.
Usa la clase AlloyDBSaver
para guardar y borrar documentos.
Para obtener más información, consulta el tema Cargadores de documentos de LangChain.
Guía de procedimiento del cargador de documentos
En la guía de AlloyDB para el cargador de documentos, se muestra cómo hacer lo siguiente:
- Instalar el paquete de integración y LangChain
- Cargar documentos desde una tabla
- Agregar un filtro al cargador
- Personalizar la conexión y la autenticación
- Personaliza la creación de documentos especificando el contenido y los metadatos del cliente
- Cómo usar y personalizar un
AlloyDBSaver
para almacenar y borrar documentos
Historial de mensajes de chat de AlloyDB
Las aplicaciones de preguntas y respuestas requieren un historial de lo que se dijo en la conversación para darle contexto a la aplicación para responder más preguntas del usuario. La clase ChatMessageHistory
de LangChain permite que la aplicación guarde mensajes en una base de datos y los recupere cuando sea necesario para formular más respuestas. Un mensaje puede ser una pregunta, una respuesta, una declaración, un saludo o cualquier otro texto que el usuario o la aplicación proporcione durante la conversación.
ChatMessageHistory
almacena cada mensaje y los encadena para cada conversación.
AlloyDB extiende esta clase con AlloyDBChatMessageHistory
.
Guía de procedimiento del historial de mensajes de chat
En la guía de AlloyDB para el historial de mensajes de chat, se muestra cómo hacer lo siguiente:
- Instalar el paquete de integración y LangChain
- Crea un objeto
AlloyDBEngine
y configura un grupo de conexiones a tu base de datos de AlloyDB - Inicializar una tabla
- Inicializar la clase
AlloyDBChatMessageHistory
para agregar y borrar mensajes - Crea una cadena para el historial de mensajes con LangChain Expression Language (LCEL)