Crie um aplicativo de chat básico em Python usando o SDK do Azure AI Foundry
Importante
Os itens marcados (visualização) neste artigo estão atualmente em visualização pública. Essa visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Neste guia de início rápido, orientamos você na configuração do seu ambiente de desenvolvimento local com o SDK do Azure AI Foundry. Escrevemos um prompt, executamo-lo como parte do código do seu aplicativo, rastreamos as chamadas LLM que estão sendo feitas e executamos uma avaliação básica nas saídas do LLM.
Pré-requisitos
- Antes de seguir este guia de início rápido, conclua o início rápido do AI Foundry Playground para implantar um modelo gpt-4o-mini em um projeto.
Instalar a CLI do Azure e entrar
Você instala a CLI do Azure e entra em seu ambiente de desenvolvimento local, para que possa usar suas credenciais de usuário para chamar o serviço Azure OpenAI.
Na maioria dos casos, você pode instalar a CLI do Azure a partir do seu terminal usando o seguinte comando:
Você pode seguir as instruções Como instalar a CLI do Azure se esses comandos não funcionarem para seu sistema operacional ou configuração específicos.
Depois de instalar a CLI do Azure, entre usando o az login
comando e entre usando o navegador:
az login
Em alternativa, pode iniciar sessão manualmente através do navegador com um código de dispositivo.
az login --use-device-code
Criar um novo ambiente Python
Primeiro você precisa criar um novo ambiente Python para usar para instalar o pacote necessário para este tutorial. NÃO instale pacotes em sua instalação global do python. Você deve sempre usar um ambiente virtual ou conda ao instalar pacotes python, caso contrário, você pode quebrar sua instalação global do Python.
Se necessário, instale o Python
Recomendamos o uso do Python 3.10 ou posterior, mas é necessário ter pelo menos o Python 3.8. Se você não tiver uma versão adequada do Python instalada, você pode seguir as instruções no VS Code Python Tutorial para a maneira mais fácil de instalar o Python em seu sistema operacional.
Criar um ambiente virtual
Se você já tiver o Python 3.10 ou superior instalado, poderá criar um ambiente virtual usando os seguintes comandos:
Ativar o ambiente Python significa que quando você executa python
ou pip
a partir da linha de comando, você usa o interpretador Python contido na .venv
pasta do seu aplicativo.
Nota
Você pode usar o deactivate
comando para sair do ambiente virtual python e, posteriormente, reativá-lo quando necessário.
Instalar pacotes
Instalar azure-ai-projects
(visualização), azure-ai-inference
(visualização) e pacotes azure-identity:
pip install azure-ai-projects azure-ai-inference azure-identity
Crie seu aplicativo de bate-papo
Crie um arquivo chamado chat.py. Copie e cole o seguinte código nele.
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
project_connection_string = "<your-connection-string-goes-here>"
project = AIProjectClient.from_connection_string(
conn_str=project_connection_string, credential=DefaultAzureCredential()
)
chat = project.inference.get_chat_completions_client()
response = chat.complete(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": "You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig?",
},
{"role": "user", "content": "Hey, can you help me with my taxes? I'm a freelancer."},
],
)
print(response.choices[0].message.content)
Insira a cadeia de conexão
Sua cadeia de conexão de projeto é necessária para chamar o serviço Azure OpenAI a partir do seu código.
Encontre sua cadeia de conexão no projeto do Azure AI Foundry que você criou no início rápido do playground do AI Foundry. Abra o projeto e localize a cadeia de conexão na página Visão geral .
Copie a cadeia de conexão e substitua <your-connection-string-goes-here>
no arquivo chat.py .
Execute seu script de bate-papo
Execute o script para ver a resposta do modelo.
python chat.py
Gerar prompt a partir da entrada do usuário e um modelo de prompt
O script usa mensagens de entrada e saída codificadas. Em um aplicativo real, você receberia a entrada de um aplicativo cliente, geraria uma mensagem do sistema com instruções internas para o modelo e, em seguida, chamaria o LLM com todas as mensagens.
Vamos alterar o script para obter entrada de um aplicativo cliente e gerar uma mensagem do sistema usando um modelo de prompt.
Remova a última linha do script que imprime uma resposta.
Agora defina uma
get_chat_response
função que recebe mensagens e contexto, gera uma mensagem do sistema usando um modelo de prompt e chama um modelo. Adicione este código ao seu ficheiro de chat.py existente:from azure.ai.inference.prompts import PromptTemplate def get_chat_response(messages, context): # create a prompt template from an inline string (using mustache syntax) prompt_template = PromptTemplate.from_string( prompt_template=""" system: You are an AI assistant that speaks like a techno punk rocker from 2350. Be cool but not too cool. Ya dig? Refer to the user by their first name, try to work their last name into a pun. The user's first name is {{first_name}} and their last name is {{last_name}}. """ ) # generate system message from the template, passing in the context as variables system_message = prompt_template.create_messages(data=context) # add the prompt messages to the user messages response = chat.complete( model="gpt-4o-mini", messages=system_message + messages, temperature=1, frequency_penalty=0.5, presence_penalty=0.5, ) return response
Nota
O modelo de prompt usa o formato bigode.
A função get_chat_response pode ser facilmente adicionada como uma rota para um aplicativo FastAPI ou Flask para permitir chamar essa função a partir de um aplicativo Web front-end.
Agora simule a passagem de informações de um aplicativo frontend para essa função. Adicione o seguinte código ao final do arquivo chat.py . Sinta-se à vontade para brincar com a mensagem e adicionar seu próprio nome.
if __name__ == "__main__": response = get_chat_response( messages=[{"role": "user", "content": "what city has the best food in the world?"}], context={"first_name": "Jessie", "last_name": "Irwin"}, ) print(response.choices[0].message.content)
Execute o script revisado para ver a resposta do modelo com essa nova entrada.
python chat.py