Compila aplicaciones con tecnología de LLM a través de LangChain

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 LLM.

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 Spanner

Spanner ofrece las siguientes interfaces de LangChain:

Aprende a usar estos componentes en una aplicación con la Guía de inicio rápido de LangChain para Spanner.

Almacén de vectores para Spanner

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 Spanner, usa la clase SpannerVectorStore.

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 Spanner para el almacén de vectores, se muestra cómo hacer lo siguiente:

  • Instalar el paquete de integración y LangChain
  • Inicializa una tabla para el almacén de vectores
  • Configura un servicio de incorporación con VertexAIEmbeddings
  • Inicializa SpannerVectorStore
  • Cómo agregar y borrar documentos
  • Cómo buscar documentos similares
  • Crea un almacén de vectores personalizado para conectarte a una base de datos de Spanner preexistente que tenga una tabla con embeddings de vectores.

Cargador de documentos para Spanner

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 Spanner, usa la clase SpannerLoader. Usa la clase SpannerDocumentSaver 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 Spanner 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
  • Personalizar la creación de documentos con la especificación el contenido y los metadatos del cliente
  • Cómo usar y personalizar un SpannerDocumentSaver para almacenar y borrar documentos

Historial de mensajes de chat para Spanner

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.

Spanner extiende esta clase con SpannerChatMessageHistory.

Guía de procedimiento del historial de mensajes de chat

En la guía de Spanner para el historial de mensajes de chat, se muestra cómo hacer lo siguiente:

  • Instala LangChain y autentica Google Cloud
  • Inicializar una tabla
  • Inicializar la clase SpannerChatMessageHistory para agregar y borrar mensajes
  • Usa un cliente para personalizar la conexión y la autenticación
  • Borra la sesión de SpannerChatMessageHistory

Almacén de grafos para Spanner

El almacén de gráficos recupera y almacena nodos y aristas de una base de datos de gráficos. Usa el almacén de grafos para permitir que una aplicación haga lo siguiente:

  • Cómo agregar nodos y aristas a un grafo
  • Realiza análisis y recorridos en un gráfico
  • Cómo inspeccionar el esquema de un gráfico

También puedes usar el almacén de gráficos con la cadena de preguntas y respuestas sobre gráficos para crear una aplicación que pueda chatear con un gráfico.

Para usar el almacén de grafos con Spanner Graph, usa la clase SpannerGraphStore para almacenar los nodos y las aristas que se extraen de los documentos. SpannerGraphStore admite el lenguaje Graph Query Language (GQL).

Guía de procedimiento del almacén de gráficos

En la guía de Spanner para el almacén de grafos, se muestra cómo hacer lo siguiente:

  • Instalar el paquete de integración y LangChain
  • Prepara gráficos a partir de diversas fuentes de datos
  • Inicializa SpannerGraphStore con una base de datos de Spanner Graph existente
  • Agrega nodos y aristas al gráfico de Spanner
  • Realiza recorridos con una consulta en GQL
  • Visualiza los resultados de la consulta de gráfico
  • Limpia el gráfico

Cadena de preguntas y respuestas sobre el gráfico de Spanner

La cadena de QA de gráficos para Spanner usa un gráfico de Spanner para responder preguntas. El flujo de trabajo de QA de gráficos para responder una pregunta es el siguiente:

  1. Graph QA usa un LLM de LangChain para traducir una pregunta en lenguaje natural a una consulta en GQL.
  2. Spanner Graph usa la interfaz de almacenamiento de gráficos para ejecutar la consulta de GQL.
  3. Los resultados de la consulta de GQL se envían de vuelta al LLM.
  4. El LLM genera y devuelve la respuesta a la pregunta.

Guía de procedimiento de QA de gráficos

En la guía de Spanner para preguntas y respuestas sobre gráficos, se muestra cómo usar Spanner y las preguntas y respuestas sobre gráficos para responder una pregunta. Para ello, se explica cómo hacer lo siguiente:

  • Crea un gráfico a partir de fragmentos de texto no estructurado con LLMGraphTransformer.
  • Almacena el gráfico en Spanner Graph con la clase SpannerGraphStore.
  • Inicializa una instancia de SpannerGraphQAChain.
  • Genera una respuesta a una pregunta en lenguaje natural con el almacén de grafos de Spanner Graph.