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.
Apresentamos as seguintes secções:
- Integração com LangChain
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.
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.
- Vá para o fluxo de prompt em seu espaço de trabalho e, em seguida, vá para a guia conexões .
- Selecione Criar e selecione um tipo de conexão para armazenar suas credenciais. (Tome a conexão personalizada como exemplo)
- 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.
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:
Enquanto o fluxo do tipo B seria parecido com:
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
Para conexão personalizada, você precisa seguir as etapas:
- Importar biblioteca
from promptflow.connections import CustomConnection
e definir um parâmetro de entrada do tipoCustomConnection
na função de ferramenta. - Analise a entrada na seção de entrada e selecione sua conexão personalizada de destino na lista suspensa de valores.
- Substitua as variáveis de ambiente que originalmente definiram a chave e a credencial pela chave correspondente adicionada na conexão.
- 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.