Partilhar via


Integração com LangChain

O Prompt Flow também pode ser usado em conjunto com a biblioteca python LangChain , que é a estrutura para o desenvolvimento de aplicativos alimentados por LLMs, agentes e ferramentas de dependência. Neste documento, mostraremos como turbinar seu desenvolvimento LangChain em nosso prompt Flow.

Captura de tela de fluxos com a biblioteca python LangChain.

Apresentamos as seguintes secções:

Benefícios da integração LangChain

Consideramos a integração de LangChain e fluxo imediato como uma combinação poderosa que pode ajudá-lo a construir e testar seus modelos de linguagem personalizados com facilidade, especialmente no caso em que você pode querer usar módulos LangChain para inicialmente construir seu fluxo e, em seguida, usar nosso fluxo imediato para escalar facilmente os experimentos para testes em massa, avaliando e, eventualmente, implantando.

  • Para experimentos de maior escala - Converta o desenvolvimento LangChain existente em segundos. Se você já desenvolveu o fluxo de prompt de demonstração com base no código LangChain localmente, com a integração simplificada no prompt Flow, você pode facilmente convertê-lo em um fluxo para experimentação adicional, por exemplo, você pode conduzir experimentos de maior escala com base em conjuntos de dados maiores.
  • Para uma engenharia de fluxo mais familiar - Crie fluxo de prompt com facilidade com base no seu SDK Python familiar. Se você já está familiarizado com o SDK LangChain e prefere usar suas classes e funções diretamente, o nó python de construção de fluxo intuitivo permite que você construa facilmente fluxos com base em seu código python personalizado.

Como converter o código LangChain em fluxo

Suponha que você já tenha seu próprio código LangChain disponível localmente, que está devidamente testado e pronto para implantação. Para convertê-lo em um fluxo executável em nossa plataforma, você precisa seguir as etapas abaixo.

Pré-requisitos para ambiente e sessão de computação

Você pode personalizar o ambiente que você usa para executar esse fluxo adicionando pacotes no requirements.txt arquivo na pasta de fluxo. Saiba mais sobre a sessão de computação

Converter credenciais para solicitar conexão de fluxo

Ao desenvolver seu código LangChain, você pode ter definido variáveis de ambiente para armazenar suas credenciais, como a CHAVE da API AzureOpenAI, que é necessária para invocar o modelo AzureOpenAI.

Captura de ecrã do exemplo do Azure OpenAI em LangChain.

Em vez de codificar diretamente as credenciais em seu código e expô-las como variáveis de ambiente ao executar o código LangChain na nuvem, é recomendável converter as credenciais de variáveis de ambiente em uma conexão em fluxo de prompt. Isso permite que você armazene e gerencie com segurança as credenciais separadamente do seu código.

Criar uma ligação

Crie uma conexão que armazene suas credenciais com segurança, como sua CHAVE DE API LLM ou outras credenciais necessárias.

  1. Vá para o fluxo de prompt em seu espaço de trabalho e, em seguida, vá para a guia conexões .
  2. Selecione Criar e selecione um tipo de conexão para armazenar suas credenciais. (Tome a conexão personalizada como exemplo) Captura de tela dos fluxos na guia conexões destacando o botão personalizado no menu suspenso Criar.
  3. No painel direito, você pode definir seu nome de conexão e adicionar vários pares chave-valor para armazenar suas credenciais e chaves selecionando Adicionar pares chave-valor. Captura de tela de adicionar ponto de conexão personalizado ao botão adicionar pares chave-valor.

Nota

  • Você pode definir um par Chave-Valor como secreto por é secreto verificado, que será criptografado e armazenado em seu valor de chave.
  • Certifique-se de que pelo menos um par chave-valor está definido como secreto, caso contrário, a conexão não será criada com êxito.

Em seguida, essa conexão personalizada é usada para substituir a chave e a credencial que você definiu explicitamente no código LangChain, se você já tiver um fluxo de prompt de integração LangChain, você pode ir para Configurar conexão, entrada e saída.

Conversão de código LangChain para um fluxo executável

Todo o código LangChain pode ser executado diretamente nas ferramentas Python em seu fluxo, desde que sua sessão de computação contenha os pacotes de dependência, você pode facilmente converter seu código LangChain em um fluxo seguindo as etapas abaixo.

Converter código LangChain em estrutura de fluxo

Nota

Há duas maneiras de converter seu código LangChain em um fluxo.

  • Para simplificar o processo de conversão, você pode inicializar diretamente o modelo LLM para invocação em um nó Python utilizando a biblioteca LLM integrada LangChain.
  • Outra abordagem é converter seu consumo de LLM do código LangChain para nossas ferramentas LLM no fluxo, para um melhor gerenciamento experimental.

Para a conversão rápida do código LangChain em um fluxo, recomendamos dois tipos de estruturas de fluxo, com base no caso de uso:

Tipos Desc Incidente
Tipo A Um fluxo que inclui nós de prompt e nós python Você pode extrair seu modelo de prompt do seu código em um nó de prompt e, em seguida, combinar o código restante em um único nó Python ou várias ferramentas Python. Esta estrutura é ideal para quem deseja ajustar facilmente o prompt executando variantes de fluxo e, em seguida, escolher o ideal com base nos resultados da avaliação.
Tipo B Um fluxo que inclui apenas nós python Você pode criar um novo fluxo apenas com nós python, todo o código, incluindo a definição de prompt, será executado em nós python. Essa estrutura é adequada para quem não precisa ajustar explicitamente o prompt no espaço de trabalho, mas requer testes em lote mais rápidos com base em conjuntos de dados de maior escala.

Por exemplo, o fluxo do tipo A do gráfico é como:

Captura de tela dos fluxos destacando o botão de prompt e o modelo do sistema.

Captura de tela do modelo de sistema mostrando as variantes um e zero com o botão de ajuste de conclusão realçado.

Enquanto o fluxo do tipo B seria parecido com:

Captura de tela de fluxos mostrando o nó e o gráfico do código LangChain.

Para criar um fluxo no Azure Machine Learning, você pode ir para seu espaço de trabalho, selecionar Fluxo de prompt na navegação à esquerda e, em seguida, selecionar Criar para criar um novo fluxo. Orientações mais detalhadas sobre como criar um fluxo são introduzidas em Criar um fluxo.

Configurar conexão, entrada e saída

Depois de ter um fluxo estruturado corretamente e terminar de mover o código para nós de ferramenta específicos, você precisa substituir as variáveis de ambiente originais pela chave correspondente na conexão e configurar a entrada e saída do fluxo.

Configurar conexão

Para utilizar uma conexão que substitua as variáveis de ambiente que você definiu originalmente no código LangChain, você precisa importar a biblioteca promptflow.connections de conexão promptflow no nó python.

Por exemplo:

Se você tiver um código LangChain que consome o modelo AzureOpenAI, poderá substituir as variáveis de ambiente pela chave correspondente na conexão do Azure OpenAI:

Importar biblioteca from promptflow.connections import AzureOpenAIConnection

Captura de tela do código LangChain no fluxo de prompt.

Para conexão personalizada, você precisa seguir as etapas:

  1. Importar biblioteca from promptflow.connections import CustomConnectione definir um parâmetro de entrada do tipo CustomConnection na função de ferramenta. Captura de tela do nó da cadeia de pesquisa de documentos destacando a conexão personalizada.
  2. Analise a entrada na seção de entrada e selecione sua conexão personalizada de destino na lista suspensa de valores. Captura de tela do nó da cadeia destacando a conexão.
  3. Substitua as variáveis de ambiente que originalmente definiram a chave e a credencial pela chave correspondente adicionada na conexão.
  4. Salve e retorne à página de criação e configure o parâmetro de conexão na entrada do nó.

Configurar entrada e saída

Antes de executar o fluxo, configure a entrada e saída do nó, bem como a entrada e saída do fluxo geral. Esta etapa é crucial para garantir que todos os dados necessários sejam devidamente passados pelo fluxo e que os resultados desejados sejam obtidos.

Próximos passos