Compartilhar via


Integrar o LangChain a prompt flows

A biblioteca LangChain do Python é uma estrutura para o desenvolvimento de aplicativos alimentados grandes modelos de linguagem (por LLMs), agentes e ferramentas de dependência. Esse artigo mostra como sobrecarregar o desenvolvimento do LangChain com o prompt flow do Azure Machine Learning.

Captura de tela de fluxos com a biblioteca LangChain do Python.

A integração do LangChain com o prompt flow é uma combinação poderosa que pode ajudá-lo a criar e testar seus modelos de linguagem personalizados com facilidade. Você pode usar módulos LangChain para criar o fluxo e, em seguida, usar o processo de prompt flow para dimensionar experimentos para teste em massa, avaliação e implantação eventual. Por exemplo, você pode realizar experimentos em grande escala com base em conjuntos de dados maiores.

Se você já tiver um prompt flow local com base no código LangChain, poderá convertê-lo facilmente em um prompt flow do Azure Machine Learning para mais experimentação. Ou se você preferir usar classes e funções do SDK do LangChain diretamente, poderá criar facilmente fluxos do Azure Machine Learning com nós do Python que usam seu código LangChain personalizado.

Pré-requisitos

  • Um fluxo do LangChain local que é devidamente testado e está pronto para implantação.
  • Uma sessão de computação que pode executar o prompt flow do Machine Learning adicionando pacotes listados no arquivo requirements.txt, incluindo langchain. Para obter mais informações, consulte Gerenciar sessão de computação de prompt flow.

Converter código do LangChain em um prompt flow

Use o processo a seguir para converter seu código do LangChain local em um prompt flow do Azure Machine Learning executável.

Converter credenciais para solicitar conexão de prompt flow

Seu código do LangChain pode definir variáveis de ambiente para armazenar credenciais, como a chave de API do OpenAI do Azure necessária para invocar modelos do OpenAI do Azure. Por exemplo, o código a seguir mostra variáveis ambientais sendo definidas para tipo de API OpenAI, chave, base e versão.

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"

Quando você executa um prompt flow do Azure Machine Learning na nuvem, é melhor não expor credenciais como variáveis de ambiente. Para armazenar e gerenciar credenciais separadamente do código, você deve converter as variáveis ambientais em uma conexão de prompt flow.

Para criar uma conexão que armazene credenciais personalizadas com segurança, como sua chave de API LLM ou outras chaves necessárias, siga estas instruções:

  1. Na página Prompt flow no workspace do Azure Machine Learning, selecione a guia Conexões e, em seguida, selecione Criar.

  2. Selecione um tipo de conexão na lista suspensa. Neste exemplo, selecione Personalizar.

    Captura de tela da seleção Criar e, em seguida, Personalizar na guia Conexões da página do Prompt flow.

  3. No painel direito, defina o Nome da sua conexão e adicione Pares chave-valor para armazenar suas credenciais e chaves selecionando Adicionar pares chave-valor.

    Captura de tela da adição de pares de chave-valor de conexão personalizados.

  4. Para armazenar um valor criptografado para uma chave, marque a caixa de seleção é segredo ao lado de um ou mais pares chave-valor. Você deve definir pelo menos um valor como segredo para criar uma conexão personalizada com sucesso.

  5. Selecione Salvar.

A conexão personalizada pode substituir chaves e credenciais ou variáveis ambientais correspondentes explicitamente definidas em seu código do LangChain. Para usar a conexão personalizada no fluxo, consulte Configurar conexão.

Converter código do LangChain em um fluxo executável

Para criar um fluxo, selecione Criar na página do Prompt flow no Estúdio do Azure Machine Learning e escolha um tipo de fluxo. Na página de criação de fluxo, inicie a sessão de computação antes de criar o fluxo. Selecione tipos de ferramenta na parte superior da página para inserir nós correspondentes no fluxo. Para obter instruções detalhadas de criação de fluxo, consulte Desenvolver prompt flow.

Todo os códigos do LangChain podem ser executados diretamente em nós do Python em seu fluxo, desde que sua sessão de computação contenha a dependência langchain do pacote.

Há duas maneiras de converter seu código do LangChain em um prompt flow do Azure Machine Learning. O tipo de fluxo a ser implementado depende do seu caso de uso.

  • Para obter um melhor gerenciamento de experimentos, você pode converter seu código para usar o Python do Azure Machine Learning e as ferramentas de prompt no fluxo. Você extrai o modelo de prompt do código em um nó de prompt e coloca o código restante em um ou vários nós ou ferramentas do Python. Essa opção ajuda você a ajustar facilmente os prompts executando variantes e permite que você escolha os prompts ideais com base nos resultados da avaliação.

    O exemplo a seguir mostra um fluxo que usa nós de prompt e nós do Python:

    Captura de tela de fluxos com destaque para o botão do prompt e o modelo do sistema.

  • Para um processo de conversão mais simples, você pode chamar a biblioteca de LLM do LangChain diretamente de dentro de nós do Python. Todo o código é executado em nós do Python, incluindo definições de prompt. Essa opção dá suporte a testes em lotes mais rápidos com base em conjuntos de dados maiores ou em outras configurações.

    O exemplo a seguir mostra um fluxo que usa somente nós do Python:

    Captura de tela de fluxos mostrando o nó e o grafo do código do LangChain.

Configurar conexão

Depois de estruturar o fluxo e mover o código para nós de ferramentas específicos, você precisará substituir as variáveis de ambiente originais pelas chaves correspondentes da conexão. Para usar a conexão personalizada que você criou, siga essas etapas:

  1. No código do Python, importe a biblioteca de conexões personalizada inserindo
    from promptflow.connections import CustomConnection.

    Observação

    Para importar uma conexão do OpenAI do Azure, use from promptflow.connections import AzureOpenAIConnection.

  2. Defina um parâmetro de entrada do tipo CustomConnection na função de ferramenta.

    Captura de tela do nó da cadeia de pesquisa de documentos com destaque para a conexão personalizada.

  3. Substitua variáveis de ambiente que originalmente definiram as chaves ou credenciais pelas chaves correspondentes da conexão.

  4. Analise a entrada para a seção de entrada da interface do usuário do nó e selecione sua conexão personalizada na lista suspensa Valor na interface do usuário.

    Captura de tela do nó da cadeia com destaque para a conexão.

  5. Certifique-se de também configurar os parâmetros de conexão em quaisquer outros nós que os exijam, como nós de LLM.

Configurar entradas e saídas

Antes de executar o fluxo, configure as entradas e saídas do nó e as entradas e saídas de fluxo geral. Essa etapa é crucial para garantir que todos os dados necessários passem corretamente pelo fluxo e produzam resultados desejados. Para obter mais informações, consulte Entradas e saídas de fluxo.