Delen via


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:

winget install -e --id Microsoft.AzureCLI

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:

py -3 -m venv .venv
.venv\scripts\activate

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.

Schermopname van de overzichtspagina van een project en de locatie van de verbindingsreeks.

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.

  1. Verwijder de laatste regel van het script waarmee een antwoord wordt afgedrukt.

  2. 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.

  3. 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

Volgende stap