Creare un'app di chat di base in Python usando Azure AI Foundry SDK
Importante
Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili in anteprima pubblica. Questa anteprima viene fornita senza un contratto di servizio e non è consigliabile per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
In questa guida introduttiva viene illustrata la configurazione dell'ambiente di sviluppo locale con Azure AI Foundry SDK. Si scrive un prompt, lo si esegue come parte del codice dell'app, si tracciano le chiamate LLM effettuate e si esegue una valutazione di base per gli output del LLM.
Prerequisiti
- Prima di seguire questa guida introduttiva, completare la guida introduttiva di Azure AI Foundry Playground per distribuire un modello gpt-4o-mini in un progetto.
Installare l'interfaccia della riga di comando di Azure ed eseguire l'accesso
Si installa l'interfaccia della riga di comando di Azure e si accede dall'ambiente di sviluppo locale, in modo da poter usare le credenziali utente per chiamare il servizio OpenAI di Azure.
Nella gran parte dei casi è possibile installare l'interfaccia della riga di comando di Azure dal terminale usando il comando seguente:
Se questi comandi non funzionano per il sistema operativo o l'installazione specifici, è possibile seguire le istruzioni in Come installare l'interfaccia della riga di comando di Azure.
Dopo aver installato l'interfaccia della riga di comando di Azure, accedere usando il comando az login
e registrarsi tramite il browser:
az login
In alternativa, è possibile accedere manualmente tramite il browser con un codice del dispositivo.
az login --use-device-code
Creare un nuovo ambiente Python
Prima di tutto è necessario creare un nuovo ambiente Python da usare per installare il pacchetto necessario per questa esercitazione. NON installare i pacchetti nell'installazione globale di Python. Quando si installano i pacchetti Python, è necessario usare sempre un ambiente virtuale o Conda, altrimenti si rischia di interrompere l'installazione di Python nel sistema.
Se necessario, installare Python
È consigliabile usare Python 3.10 o versione successiva; è comunque necessario avere almeno Python 3.8. Se non è installata una versione appropriata di Python, seguire le istruzioni riportate in Esercitazione di Vs Code Python, che descrive il modo più semplice per installare Python nel sistema operativo.
Creare un ambiente virtuale
Se Python 3.10 o versione successiva è già installato, è possibile creare un ambiente virtuale usando i comandi seguenti:
L'attivazione dell'ambiente Python implica che quando si esegue python
o pip
dalla riga di comando, si usa l'interprete Python contenuto nella cartella .venv
dell'applicazione.
Nota
Per uscire dall'ambiente virtuale Python è possibile usare il comando deactivate
. Potrà poi essere riattivato successivamente, quando necessario.
Installare i pacchetti
Installare azure-ai-projects
(anteprima), azure-ai-inference
(anteprima) e pacchetti azure-identity:
pip install azure-ai-projects azure-ai-inference azure-identity
Creare l'app di chat
Creare un file denominato chat.py. Copiare e incollare il codice seguente.
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)
Inserire il stringa di connessione
Il progetto stringa di connessione è necessario per chiamare il servizio Azure OpenAI dal codice.
Trovare il stringa di connessione nel progetto Azure AI Foundry creato nell'argomento di avvio rapido di Azure AI Foundry Playground. Aprire il progetto, quindi trovare il stringa di connessione nella pagina Panoramica.
Copiare il stringa di connessione e sostituire <your-connection-string-goes-here>
nel file di chat.py.
Eseguire lo script di chat
Eseguire lo script per visualizzare la risposta dal modello.
python chat.py
Generare una richiesta dall'input dell'utente e da un modello di richiesta
Lo script usa messaggi di input e output hardcoded. In un'app reale si accetta l'input da un'applicazione client, si genera un messaggio di sistema con istruzioni interne al modello e quindi si chiama LLM con tutti i messaggi.
Si modificherà ora lo script per accettare l'input da un'applicazione client e generare un messaggio di sistema usando un modello di prompt.
Rimuovere l'ultima riga dello script che stampa una risposta.
Definire ora una
get_chat_response
funzione che accetta messaggi e contesto, genera un messaggio di sistema usando un modello di richiesta e chiama un modello. Aggiungere questo codice al file di chat.py esistente: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
Il modello di richiesta usa il formato mustache.
La funzione get_chat_response può essere aggiunta facilmente come route a un'app FastAPI o Flask per abilitare la chiamata di questa funzione da un'applicazione Web front-end.
Simulare ora il passaggio di informazioni da un'applicazione front-end a questa funzione. Aggiungere il codice seguente alla fine del file chat.py . È possibile giocare con il messaggio e aggiungere il proprio 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)
Eseguire lo script modificato per visualizzare la risposta dal modello con questo nuovo input.
python chat.py