Criar um aplicativo de chat básico em Python usando o SDK Foundry da IA do Azure
Importante
Os itens marcados (versão prévia) neste artigo estão atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não recomendamos isso para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.
Neste início rápido, explicamos como configurar o ambiente de desenvolvimento local com o SDK Foundry da IA do Azure. Gravamos um prompt, o executamos como parte do código do 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 início rápido, conclua o Início rápido do playground do Azure AI Foundry para implantar um modelo gpt-4o-mini em um projeto.
Instalar a CLI do Azure e entrar
Instale a CLI do Azure e entre no seu ambiente de desenvolvimento local, para que você possa usar suas credenciais de usuário para chamar o serviço OpenAI do Azure.
Na maioria dos casos, você pode instalar a CLI do Azure do 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 específico ou configuração.
Depois de instalar a CLI do Azure, entre usando o comando az login
e entre usando o navegador:
az login
Como alternativa, você pode fazer logon manualmente por meio do navegador com um código de dispositivo.
az login --use-device-code
Criar um ambiente do Python
Primeiro, você precisa criar um ambiente de Python que será usado para instalar o pacote necessário para este tutorial. NÃO instale pacotes na instalação global do Python. Você sempre deve usar um ambiente virtual ou conda ao instalar pacotes do Python, caso contrário, poderá interromper a instalação global do Python.
Se necessário, instale o Python
É recomendável usar o Python 3.10 ou posterior, mas ter pelo menos Python 3.8 é necessário. Se você não tiver uma versão adequada do Python instalada, poderá seguir as instruções no Tutorial do Python do VS Code para obter 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, crie um ambiente virtual usando os seguintes comandos:
Ativar o ambiente Python significa que, ao executar python
ou pip
na linha de comando, você usará o interpretador Python contido na pasta .venv
do seu aplicativo.
Observação
Você pode usar o comando deactivate
para sair do ambiente virtual do Python e depois reativar quando necessário.
Instalar Pacotes
Instale azure-ai-projects
(versão prévia), azure-ai-inference
(versão prévia) e os pacotes de identidade do Azure:
pip install azure-ai-projects azure-ai-inference azure-identity
Criar o aplicativo de chat
Crie um arquivo chamado chat.py. Copie e cole o código a seguir 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)
Inserir a cadeia de conexão
A cadeia de conexão do projeto é necessária para chamar o serviço do OpenAI do Azure do seu código.
Localize a sua cadeia de conexão no projeto do Azure AI Foundry que você criou no Início rápido do playground do Azure 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.
Executar o script de chat
Execute o script para ver a resposta do modelo.
python chat.py
Gerar prompt com base na entrada do usuário e em um modelo de prompt
O script usa mensagens de entrada e saída embutidas em código. Em um aplicativo real, você obteria 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 a 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 função
get_chat_response
que usa mensagens e contexto, gera uma mensagem do sistema usando um modelo de prompt e chama um modelo. Adicione esse código ao seu arquivo 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
Observação
O modelo de solicitação usa o formato mustache.
A função get_chat_response pode ser facilmente adicionada como uma rota para um aplicativo FastAPI ou Flask para habilitar a chamada dessa função de um aplicativo Web de front-end.
Agora, simule a passagem de informações de um aplicativo de front-end para essa função. Adicione o código a seguir ao final do arquivo chat.py. Fique à vontade para brincar com a mensagem e adicionar seu 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