En esta página se explica cómo crear aplicaciones basadas en LLMs con LangChain. Las descripciones generales de esta página enlazan con guías de procedimientos en GitHub.
¿Qué es LangChain?
LangChain es un framework de orquestación de LLMs que ayuda a los desarrolladores a crear aplicaciones de IA generativa o flujos de trabajo de generación aumentada por recuperación (RAG). Proporciona la estructura, las herramientas y los componentes necesarios para optimizar flujos de trabajo complejos de modelos de lenguaje extensos (LLMs). Para obtener más información sobre los LLMs, sus casos prácticos y los modelos y servicios específicos que ofrece Google, consulta la descripción general de los conceptos y servicios de LLMs Google Cloud.
Para obtener más información sobre LangChain, consulta la página Google LangChain. Para obtener más información sobre el framework LangChain, consulta la documentación del producto LangChain.
Componentes de LangChain para AlloyDB
Consulta cómo 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.
Vector Store para AlloyDB
Vector Store recupera y almacena documentos y metadatos de una base de datos vectorial. El almacén de vectores permite que una aplicación realice búsquedas semánticas que interpreten el significado de una consulta de usuario. Este tipo de búsqueda se denomina búsqueda vectorial y puede encontrar temas que coincidan conceptualmente con la consulta. En el momento de la consulta, el almacén de vectores recupera los vectores de inserción que son más similares a la inserción de la solicitud de búsqueda. En LangChain, un almacén de vectores se encarga de almacenar los datos insertados y de 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 almacenes de vectores de LangChain.
Guía de procedimientos de la tienda de vectores
En la guía de AlloyDB para VectorStore se explica 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 AlloyDB. - Inicializar una tabla para el almacén de vectores
- Configurar un servicio de inserción con
VertexAIEmbeddings
- Inicializar
AlloyDBVectorStore
- Añadir y eliminar documentos
- Buscar documentos similares
- Añadir un índice de vectores para mejorar el rendimiento de la búsqueda
- Crea un almacén de vectores personalizado para conectarte a una base de datos de AlloyDB para PostgreSQL que ya tengas y que contenga una tabla con inserciones de vectores.
Cargador de documentos para AlloyDB
El cargador de documentos guarda, carga y elimina objetos Document
de LangChain. Por ejemplo, puedes cargar datos para procesarlos en incrustaciones y almacenarlos en un almacén de vectores o usarlos como herramienta para proporcionar contexto específico a las cadenas.
Para cargar documentos de AlloyDB, usa la clase AlloyDBLoader
. AlloyDBLoader
devuelve una lista de documentos de una tabla
usando la primera columna para el contenido de la página y todas las demás columnas para los metadatos. La tabla predeterminada tiene el contenido de la página en la primera columna y los metadatos JSON en la segunda. Cada fila se convierte en un documento. Las instrucciones para personalizar estos ajustes se encuentran en la guía de procedimientos.
Usa la clase AlloyDBSaver
para guardar y eliminar documentos.
Para obtener más información, consulta el tema Cargadores de documentos de LangChain.
Guía de procedimientos del cargador de documentos
En la guía de AlloyDB para el cargador de documentos se explica cómo hacer lo siguiente:
- Instalar el paquete de integración y LangChain
- Cargar documentos de una tabla
- Añadir un filtro al cargador
- Personalizar la conexión y la autenticación
- Personalizar la creación de documentos especificando el contenido y los metadatos del cliente
- Cómo usar y personalizar un
AlloyDBSaver
para almacenar y eliminar documentos
Historial de mensajes de chat de AlloyDB
Las aplicaciones de preguntas y respuestas requieren un historial de lo que se ha dicho en la conversación para proporcionar contexto a la aplicación y responder a las preguntas posteriores 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 afirmació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 en cada conversación.
AlloyDB amplía 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 explica 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 AlloyDB. - Inicializar una tabla
- Inicializa la clase
AlloyDBChatMessageHistory
para añadir y eliminar mensajes. - Crear una cadena para el historial de mensajes con el lenguaje de expresiones de LangChain (LCEL)