Een eenvoudige chat-app bouwen in Python met behulp van Azure AI Foundry SDK
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
In deze quickstart wordt u begeleid bij het instellen van uw lokale ontwikkelomgeving met de Azure AI Foundry SDK. We schrijven een prompt, voeren deze uit als onderdeel van uw app-code, traceren de LLM-aanroepen die worden uitgevoerd en voeren een basisevaluatie uit op de uitvoer van de LLM.
Vereisten
- Voordat u deze quickstart kunt volgen, voltooit u de quickstart voor de Azure AI Foundry-speeltuin om een gpt-4o-minimodel in een project te implementeren.
De Azure CLI installeren en u aanmelden
U installeert de Azure CLI en meldt u zich aan vanuit uw lokale ontwikkelomgeving, zodat u uw gebruikersreferenties kunt gebruiken om de Azure OpenAI-service aan te roepen.
In de meeste gevallen kunt u de Azure CLI installeren vanuit uw terminal met behulp van de volgende opdracht:
U kunt de instructies volgen voor het installeren van de Azure CLI als deze opdrachten niet werken voor uw specifieke besturingssysteem of installatie.
Nadat u de Azure CLI hebt geïnstalleerd, meldt u zich aan met behulp van de az login
opdracht en meldt u zich aan met behulp van de browser:
az login
U kunt zich ook handmatig aanmelden via de browser met een apparaatcode.
az login --use-device-code
Een nieuwe Python-omgeving maken
Eerst moet u een nieuwe Python-omgeving maken om het pakket te installeren dat u nodig hebt voor deze zelfstudie. INSTALLEER GEEN pakketten in uw globale Python-installatie. U moet altijd een virtuele of conda-omgeving gebruiken bij het installeren van Python-pakketten, anders kunt u uw globale installatie van Python verbreken.
Installeer Python indien nodig
U wordt aangeraden Python 3.10 of hoger te gebruiken, maar python 3.8 is vereist. Als u geen geschikte versie van Python hebt geïnstalleerd, kunt u de instructies in de VS Code Python-zelfstudie volgen voor de eenvoudigste manier om Python op uw besturingssysteem te installeren.
Een virtuele omgeving maken
Als Python 3.10 of hoger al is geïnstalleerd, kunt u een virtuele omgeving maken met behulp van de volgende opdrachten:
Als u de Python-omgeving activeert, betekent dit dat wanneer u de opdrachtregel uitvoert python
of pip
vanaf de opdrachtregel de Python-interpreter gebruikt die zich in de .venv
map van uw toepassing bevindt.
Notitie
U kunt de deactivate
opdracht gebruiken om de virtuele Python-omgeving af te sluiten en deze later opnieuw te activeren wanneer dat nodig is.
Pakketten installeren
Installeren azure-ai-projects
(preview), (preview) azure-ai-inference
en azure-identity-pakketten:
pip install azure-ai-projects azure-ai-inference azure-identity
Uw chat-app bouwen
Maak een bestand met de naam chat.py. Kopieer en plak de volgende code erin.
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)
Uw verbindingsreeks invoegen
Uw project verbindingsreeks is vereist om de Azure OpenAI-service aan te roepen vanuit uw code.
Zoek uw verbindingsreeks in het Azure AI Foundry-project dat u hebt gemaakt in de quickstart voor de Azure AI Foundry-speeltuin. Open het project en zoek vervolgens de verbindingsreeks op de pagina Overzicht.
Kopieer de verbindingsreeks en vervang <your-connection-string-goes-here>
deze in het bestand chat.py.
Uw chatscript uitvoeren
Voer het script uit om het antwoord van het model te zien.
python chat.py
Prompt genereren op basis van gebruikersinvoer en een promptsjabloon
Het script maakt gebruik van in code vastgelegde invoer- en uitvoerberichten. In een echte app neemt u invoer van een clienttoepassing, genereert u een systeembericht met interne instructies voor het model en roept u de LLM vervolgens aan met alle berichten.
We gaan het script wijzigen om invoer uit een clienttoepassing te nemen en een systeembericht te genereren met behulp van een promptsjabloon.
Verwijder de laatste regel van het script waarmee een antwoord wordt afgedrukt.
Definieer nu een
get_chat_response
functie die berichten en context gebruikt, een systeembericht genereert met behulp van een promptsjabloon en een model aanroept. Voeg deze code toe aan uw bestaande chat.py-bestand :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
Notitie
De promptsjabloon maakt gebruik van de mustache-indeling.
De get_chat_response-functie kan eenvoudig worden toegevoegd als een route naar een FastAPI- of Flask-app om het aanroepen van deze functie vanuit een front-endwebtoepassing mogelijk te maken.
Simuleer nu het doorgeven van informatie van een front-endtoepassing aan deze functie. Voeg de volgende code toe aan het einde van het chat.py-bestand . Speel gerust met het bericht en voeg uw eigen naam toe.
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)
Voer het herziene script uit om het antwoord van het model te zien met deze nieuwe invoer.
python chat.py