Share via


Integrar con LangChain

El flujo de solicitudes también puede usarse junto con la biblioteca de python LangChain, que es el marco para desarrollar aplicaciones basadas en LLM, agentes y herramientas de dependencia. En este documento, le mostraremos cómo potenciar el desarrollo de LangChain en nuestro flujo de avisos.

Captura de pantalla de flujos con la biblioteca python LangChain.

Presentamos las secciones siguientes:

Ventajas de la integración de LangChain

Consideramos que la integración de LangChain y el flujo de avisos es una potente combinación que puede ayudarle a compilar y probar los modelos lingüísticos personalizados con facilidad, especialmente en el caso de que quiera usar módulos de LangChain para compilar inicialmente el flujo y, después, usar nuestro flujo de avisos para escalar fácilmente los experimentos a fin de realizar pruebas masivas, evaluar y finalmente implementar.

  • Para experimentos a mayor escala: Conversión de desarrollo de LangChain existente en segundos. Si ya ha desarrollado localmente un flujo de avisos de demostración basado en el código de LangChain, con la integración simplificada en el flujo de avisos, puede convertirlo fácilmente en un flujo para seguir experimentando, por ejemplo, para realizar experimentos a mayor escala basados en conjuntos de datos más grandes.
  • Para una ingeniería de flujo más familiar: compile un flujo de solicitudes con facilidad basándose en su SDK de Python conocido. Si ya está familiarizado con el SDK de LangChain y prefiere usar sus clases y funciones directamente, el nodo intuitivo de python de creación de flujos le permite compilar fácilmente flujos basados en el código de Python personalizado.

Conversión de código LangChain en flujo

Supongamos que ya tiene su propio código LangChain disponible localmente, que se prueba correctamente y está listo para la implementación. Para convertirlo en un flujo ejecutable en nuestra plataforma, debe seguir los pasos que se indican a continuación.

Requisitos previos para el entorno y la sesión de proceso

Puede personalizar el entorno que usa para ejecutar este flujo agregando paquetes en el archivo requirements.txt de la carpeta de flujo. Más información sobre la sesión de proceso

Convertir credenciales en una conexión de flujo de solicitud

Al desarrollar el código LangChain, es posible que haya definido variables de entorno para almacenar las credenciales, como la CLAVE de API de AzureOpenAI, que es necesario para invocar el modelo azureOpenAI.

Captura de pantalla del ejemplo de Azure OpenAI en LangChain.

En lugar de codificar directamente las credenciales en el código y exponerlas como variables de entorno al ejecutar el código LangChain en la nube, se recomienda convertir las credenciales de las variables de entorno en una conexión en flujo de solicitud. Esto le permite almacenar y administrar de forma segura las credenciales por separado del código.

Crear una conexión

Cree una conexión que almacene de forma segura sus credenciales, como su CLAVE de API de LLM u otras credenciales requeridas.

  1. Vaya al flujo de avisos en el área de trabajo y, después, a la pestaña Conexiones.
  2. Seleccione Crear y seleccione un tipo de conexión para almacenar las credenciales. (Considere la conexión personalizada como un ejemplo) Captura de pantalla de los flujos en la pestaña de conexiones resaltando el botón de personalizar en el menú desplegable de crear.
  3. En el panel derecho, puede definir el nombre de su conexión y puede agregar varios Pares clave-valor para almacenar sus credenciales y claves seleccionando Agregar pares clave-valor. Captura de pantalla de agregar punto de conexión personalizado al botón de agregar pares clave-valor.

Nota

  • Puede establecer un par Clave-Valor como secreto marcando es secreto, que se cifrará y almacenará en su clave de valor.
  • Asegúrese de que al menos un par clave-valor esté establecido como secreto; de lo contrario, la conexión no se creará correctamente.

A continuación, esta conexión personalizada se usa para reemplazar la clave y las credenciales que ha definido explícitamente en el código LangChain, si ya tiene un flujo de solicitud de integración de LangChain, puede ir a Configurar conexión, entrada y salida.

Conversión de código LangChain a un flujo ejecutable

Todo el código LangChain se puede ejecutar directamente en las herramientas de Python del flujo, siempre y cuando la sesión de proceso contenga los paquetes de dependencia, puede convertir fácilmente el código LangChain en un flujo siguiendo los pasos siguientes.

Convertir el código LangChain en estructura de flujo

Nota:

Hay dos maneras de convertir el código LangChain en un flujo.

  • Para simplificar el proceso de conversión, puede inicializar directamente el modelo LLM para la invocación en un nodo de Python mediante la biblioteca LLM integrada de LangChain.
  • Otro enfoque consiste en convertir el LLM que consume desde el código LangChain a nuestras herramientas de LLM en el flujo, para mejorar la administración experimental.

Para la conversión rápida del código LangChain en un flujo, se recomiendan dos tipos de estructuras de flujo, en función del caso de uso:

Tipos Desc Caso
Tipo A Flujo que incluye nodos de solicitud y nodos de Python Puede extraer la plantilla de solicitud del código en un nodo de solicitud y, a continuación, combinar el código restante en un único nodo de Python o varias herramientas de Python. Esta estructura es ideal para quienes quieren ajustar fácilmente la solicitud mediante la ejecución de variantes de flujo y, a continuación, elegir la óptima en función de los resultados de la evaluación.
Tipo B Flujo que incluye solo nodos de Python Solo puede crear un flujo con nodos de Python; todo el código, incluida la definición de solicitud, se ejecutará en nodos de Python. Esta estructura es adecuada para aquellos que no necesitan ajustar explícitamente la solicitud en el área de trabajo, pero requieren pruebas por lotes más rápidas basadas en conjuntos de datos de mayor escala.

Por ejemplo, el flujo de tipo A del gráfico es algo así:

Captura de pantalla de los flujos con el botón de solicitud y la plantilla del sistema resaltados.

Captura de pantalla de la plantilla del sistema que muestra las variantes uno y cero con el botón de finalizar la optimización resaltado.

Mientras que el flujo de tipo B tendría el siguiente aspecto:

Captura de pantalla de flujos que muestra el nodo y el gráfico del código LangChain.

Para crear un flujo en Azure Machine Learning, puede ir al área de trabajo y, a continuación, seleccionar Flujo de solicitudes en el panel de navegación izquierdo y, después, Crear para crear un flujo. En Creación de un flujo se presentan instrucciones más detalladas sobre cómo crear un flujo.

Configuración de la conexión, entrada y salida

Una vez que tenga un flujo estructurado correctamente y haya terminado de mover el código a nodos de herramientas específicos, debe reemplazar las variables de entorno originales por la clave correspondiente en la conexión y configurar la entrada y salida del flujo.

Configuración de la conexión

Para usar una conexión que reemplace las variables de entorno que definió originalmente en el código LangChain, debe importar la biblioteca de conexiones de flujo de solicitud promptflow.connections en el nodo de Python.

Por ejemplo:

Si tiene un código LangChain que consume el modelo AzureOpenAI, puede reemplazar las variables de entorno por la clave correspondiente en la conexión OpenAI de Azure:

Importar biblioteca from promptflow.connections import AzureOpenAIConnection

Captura de pantalla del código LangChain en el flujo de avisos.

Para tener una conexión personalizada, debe seguir los pasos siguientes:

  1. Importe la biblioteca from promptflow.connections import CustomConnection y defina un parámetro de entrada de tipo CustomConnection en la función de herramienta. Captura de pantalla del nodo de la cadena de búsqueda de documentos en la que se resalta la conexión personalizada.
  2. Analice la entrada en la sección de entrada y, a continuación, seleccione la conexión personalizada de destino en la lista desplegable de valores. Captura de pantalla del nodo de la cadena que resalta la conexión.
  3. Reemplace las variables de entorno que definieron originalmente la clave y la credencial por la clave correspondiente agregada en la conexión.
  4. Guarde y vuelva a la página de creación y configure el parámetro de conexión en la entrada del nodo.

Configurar la entrada y salida

Antes de ejecutar el flujo, configure la entrada y salida del nodo, así como la entrada y salida generales del flujo. Este paso es fundamental para asegurarse de que todos los datos necesarios se pasan correctamente a través del flujo y que se obtienen los resultados deseados.

Pasos siguientes