Compartir a través de


Integración de LangChain en flujos de avisos

La biblioteca de Python LangChain es un marco para el desarrollo de aplicaciones basado en modelos de lenguaje grandes (LLM), agentes y herramientas de dependencia. Este artículo le muestra cómo potenciar su desarrollo de LangChain con el flujo de avisos de Azure Machine Learning.

Recorte de pantalla de un flujo con la biblioteca de Python LangChain.

La integración de LangChain con el flujo de avisos es una potente combinación que puede ayudarle a compilar y probar sus modelos de lenguaje personalizados con facilidad. Puede usar los módulos de LangChain para compilar el flujo y después usar el proceso de flujo de avisos para escalar los experimentos para pruebas masivas, evaluación y eventual implementación. Por ejemplo, puede realizar experimentos a gran escala basados en conjuntos de datos más grandes.

Si ya tiene un flujo de avisos local basado en código de LangChain, puede convertirlo fácilmente en un flujo de avisos de Azure Machine Learning para seguir experimentando. O bien, si prefiere usar directamente las clases y funciones del SDK de LangChain, puede compilar fácilmente flujos de Azure Machine Learning con nodos de Python que usen su código de LangChain personalizado.

Requisitos previos

  • Un flujo de LangChain local debidamente probado y listo para su implementación.
  • Una sesión de proceso que puede ejecutar el flujo de avisos de Machine Learning añadiendo los paquetes enumerados en el archivo requirements.txt, incluido langchain. Para más información, consulte Administración de sesión de proceso del flujo de avisos.

Conversión del código de LangChain en un flujo de avisos

Utilice el siguiente proceso para convertir su código de LangChain local en un flujo de avisos ejecutable de Azure Machine Learning.

Conversión de credenciales en una conexión de flujo de avisos

Su código de LangChain podría definir variables de entorno para almacenar credenciales, como la clave de la API de AzureOpenAI necesaria para invocar los modelos de AzureOpenAI. Por ejemplo, el siguiente código muestra las variables de entorno que se establecen para el tipo de API de OpenAI, la clave, la base y la versión.

os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_VERSION"] = "2023-05-15"
os.environ["OPENAI_API_BASE"] = "https://contosobamiopenai.openai.azure.com/"
os.environ["OPENAI_API_KEY"] = "abc123abc123abc123abc123abc123ab"

Cuando ejecute un flujo de avisos de Azure Machine Learning en la nube, es mejor no exponer las credenciales como variables de entorno. Para almacenar y administrar las credenciales de forma segura e independiente de su código, debe convertir las variables de entorno en una conexión de flujo de avisos.

Para crear una conexión que almacene de forma segura credenciales personalizadas como su clave API de LLM u otras claves necesarias, siga estas instrucciones:

  1. En la página Flujo de avisos de su área de trabajo de Azure Machine Learning, seleccione la pestaña Conexiones y, después, seleccione Crear.

  2. Seleccione un tipo de conexión de la lista desplegable. Para este ejemplo, seleccione Personalizado.

    Recorte de pantalla de la selección de Crear y después Personalizar en la pestaña Conexiones de la página de flujo de avisos.

  3. En el panel derecho, defina el Nombre de su conexión y después agregue Pares clave-valor para almacenar sus credenciales y claves seleccionando Agregar pares clave-valor.

    Recorte de pantalla de la adición de pares clave-valor de conexión personalizados.

  4. Para almacenar el valor cifrado de una clave, seleccione la casilla es secreto situada junto a uno o más pares clave-valor. Debe establecer al menos un valor como secreto para crear correctamente una conexión personalizada.

  5. Seleccione Guardar.

La conexión personalizada puede reemplazar las claves y credenciales o las variables de entorno correspondientes definidas explícitamente en su código de LangChain. Para usar la conexión personalizada en el flujo, consulte Configuración de la conexión.

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

Para crear un flujo, seleccione Crear en la página Flujo de avisos del Estudio de Azure Machine Learning y elija un tipo de flujo. En la página de creación del flujo, inicie su sesión de proceso antes de crear el flujo. Seleccione los tipos de herramientas en la parte superior de la página para insertar los nodos correspondientes en el flujo. Para obtener instrucciones detalladas sobre la creación de flujos, consulte Desarrollo de un flujo de avisos.

Todo su código de LangChain puede ejecutarse directamente en los nodos de Python de su flujo, siempre que su sesión de proceso contenga la dependencia del paquete langchain.

Hay dos maneras de convertir su código de LangChain en un flujo de avisos de Azure Machine Learning. El tipo de flujo a implementar depende de su caso de uso.

  • Para administrar mejor los experimentos, puede administrar su código usando las herramientas de indicaciones y Python de Azure Machine Learning en el flujo. Puede extraer la plantilla de indicaciones de su código en un nodo de indicaciones y colocar el código restante en uno o varios nodos o herramientas de Python. Esta opción le ayuda a ajustar fácilmente las indicaciones mediante la ejecución de variantes y le permite elegir las indicaciones óptimas en función de los resultados de la evaluación.

    El siguiente ejemplo muestra un flujo que usa tanto nodos de indicación como nodos de Python:

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

  • Para un proceso de conversión más sencillo, puede llamar a la biblioteca de LLM de LangChain directamente desde los nodos de Python. Todo su código se ejecuta en nodos de Python, incluidas las definiciones de indicaciones. Esta opción es compatible con pruebas por lotes más rápidas basadas en conjuntos de datos más grandes u otras configuraciones.

    El siguiente ejemplo muestra un flujo que usa solo nodos de Python:

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

Configuración de la conexión

Después de estructurar su flujo y mover su código a nodos específicos de la herramienta, deberá reemplazar sus variables de entorno originales por las claves correspondientes de su conexión. Para usar la conexión personalizada que ha creado, siga estos pasos:

  1. En su código de Python, importe la biblioteca de conexión personalizada escribiendo
    from promptflow.connections import CustomConnection.

    Nota:

    Para importar una conexión de Azure OpenAI, use from promptflow.connections import AzureOpenAIConnection.

  2. En la función de su herramienta, defina un parámetro de entrada del tipo CustomConnection.

    Captura de pantalla del nodo de la cadena de búsqueda de documentos en la que se resalta la conexión personalizada.

  3. Reemplace las variables de entorno que definían originalmente las claves o credenciales por las claves correspondientes de la conexión.

  4. Analice la entrada en la sección de entrada de la interfaz de usuario del nodo y después seleccione su conexión personalizada en la lista desplegable de Valor de la interfaz de usuario.

    Captura de pantalla del nodo de la cadena que resalta la conexión.

  5. Asegúrese de configurar también los parámetros de conexión en cualquier otro nodo que los requiera, como los nodos de LLM.

Configuración de las entradas y salidas

Antes de ejecutar el flujo, configure las entradas y salidas de los nodos y las entradas y salidas generales del flujo. Este paso es crucial para garantizar que todos los datos necesarios pasen correctamente por el flujo y produzcan los resultados deseados. Para más información, consulte Entradas y salidas de flujo.