Integre LangChain em fluxos de prompt
A biblioteca LangChain Python é uma estrutura para o desenvolvimento de aplicativos alimentados por grandes modelos de linguagem (LLMs), agentes e ferramentas de dependência. Este artigo mostra como turbinar seu desenvolvimento LangChain com o fluxo de prompt do Azure Machine Learning.
A integração do LangChain com o fluxo imediato é uma combinação poderosa que pode ajudá-lo a construir 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 fluxo de prompt para dimensionar experimentos para testes em massa, avaliação e eventual implantação. Por exemplo, você pode conduzir experimentos em grande escala com base em conjuntos de dados maiores.
Se você já tiver um fluxo de prompt local baseado no código LangChain, poderá convertê-lo facilmente em um fluxo de prompt do Azure Machine Learning para experimentação adicional. Ou, se preferir usar classes e funções do SDK LangChain diretamente, você pode criar facilmente fluxos do Azure Machine Learning com nós Python que usam seu código LangChain personalizado.
Pré-requisitos
- Um fluxo LangChain local devidamente testado e pronto para implantação.
- Uma sessão de computação que pode executar o fluxo de prompt 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 fluxo de prompt.
Converta o código LangChain em um fluxo de prompt
Use o processo a seguir para converter seu código LangChain local em um fluxo de prompt executável do Azure Machine Learning.
Converter credenciais em uma conexão de fluxo de prompt
Seu código LangChain pode definir variáveis de ambiente para armazenar credenciais, como a chave de API AzureOpenAI necessária para invocar modelos AzureOpenAI. Por exemplo, o código a seguir mostra variáveis ambientais sendo definidas para tipo, chave, base e versão da API OpenAI.
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 fluxo de prompt do Azure Machine Learning na nuvem, é melhor não expor credenciais como variáveis de ambiente. Para armazenar e gerenciar credenciais com segurança separadamente do seu código, você deve converter as variáveis ambientais em uma conexão de fluxo de prompt.
Para criar uma conexão que armazene com segurança credenciais personalizadas, como sua chave de API LLM ou outras chaves necessárias, siga estas instruções:
Na página Fluxo de prompt em seu espaço de trabalho do Azure Machine Learning, selecione a guia Conexões e selecione Criar.
Selecione um tipo de conexão na lista suspensa. Para este exemplo, selecione Personalizado.
No painel direito, defina o Nome da conexão e adicione pares chave-valor para armazenar suas credenciais e chaves selecionando Adicionar pares chave-valor.
Para armazenar um valor criptografado para uma chave, marque a caixa de seleção é secreto ao lado de um ou mais pares chave-valor. Você deve definir pelo menos um valor como secreto para criar com êxito uma conexão personalizada.
Selecione Guardar.
A conexão personalizada pode substituir chaves e credenciais ou variáveis ambientais correspondentes explicitamente definidas no código LangChain. Para usar a conexão personalizada no fluxo, consulte Configurar conexão.
Converter código LangChain para um fluxo executável
Para criar um fluxo, selecione Criar na página Fluxo de prompt no estúdio do Azure Machine Learning e escolha um tipo de fluxo. Na página de criação de fluxo, inicie sua sessão de computação antes de criar o fluxo. Selecione os tipos de ferramenta na parte superior da página para inserir os nós correspondentes no fluxo. Para obter instruções detalhadas de criação de fluxo, consulte Desenvolver fluxo de prompt.
Todo o seu código LangChain pode ser executado diretamente em nós Python em seu fluxo, desde que sua sessão de computação contenha a dependência do langchain
pacote.
Há duas maneiras de converter seu código LangChain em um fluxo de prompt do Azure Machine Learning. O tipo de fluxo a implementar depende do seu caso de uso.
Para um melhor gerenciamento de experimentos, você pode converter seu código para usar o Azure Machine Learning Python e solicitar ferramentas no fluxo. Você extrai o modelo de prompt do seu código em um nó de prompt e coloca o código restante em um ou vários nós ou ferramentas do Python. Esta opção ajuda-o a ajustar facilmente os prompts executando variantes e permite escolher 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 Python:
Para um processo de conversão mais simples, você pode chamar a biblioteca LangChain LLM diretamente de dentro dos nós Python. Todo o seu código é executado em nós Python, incluindo definições de prompt. Esta opção suporta testes em lote mais rápidos com base em conjuntos de dados maiores ou outras configurações.
O exemplo a seguir mostra um fluxo que usa somente nós Python:
Configurar conexão
Depois de estruturar o fluxo e mover o código para nós de ferramenta específicos, você precisa substituir as variáveis de ambiente originais pelas chaves correspondentes da conexão. Para utilizar a ligação personalizada que criou, siga estes passos:
Em seu código Python, importe a biblioteca de conexões personalizada inserindo
from promptflow.connections import CustomConnection
.Nota
Para importar uma conexão do Azure OpenAI, use
from promptflow.connections import AzureOpenAIConnection
.Na função de ferramenta, defina um parâmetro de entrada do tipo
CustomConnection
.Substitua as variáveis de ambiente que originalmente definiram as chaves ou credenciais pelas chaves correspondentes da conexão.
Analise a entrada na 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.
Certifique-se também de configurar os parâmetros de conexão em quaisquer outros nós que os exijam, como nós 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 do fluxo geral. Esta etapa é crucial para garantir que todos os dados necessários passem corretamente pelo fluxo e produzam os resultados desejados. Para obter mais informações, consulte Entradas e saídas de fluxo.