Dela via


Skapa en grundläggande chattapp i Python med Hjälp av Azure AI Foundry SDK

Viktigt!

Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

I den här snabbstarten går vi igenom hur du konfigurerar din lokala utvecklingsmiljö med Azure AI Foundry SDK. Vi skriver en uppmaning, kör den som en del av din appkod, spårar LLM-anropen som görs och kör en grundläggande utvärdering av utdata från LLM.

Förutsättningar

  • Innan du kan följa den här snabbstarten slutför du snabbstarten för Azure AI Foundry Playground för att distribuera en gpt-4o-mini-modell till ett projekt.

Installera Azure CLI och logga in

Du installerar Azure CLI och loggar in från din lokala utvecklingsmiljö, så att du kan använda dina autentiseringsuppgifter för att anropa Azure OpenAI-tjänsten.

I de flesta fall kan du installera Azure CLI från terminalen med hjälp av följande kommando:

winget install -e --id Microsoft.AzureCLI

Du kan följa anvisningarna Så här installerar du Azure CLI om dessa kommandon inte fungerar för ditt operativsystem eller din installation.

När du har installerat Azure CLI loggar du in med az login kommandot och loggar in med webbläsaren:

az login

Du kan också logga in manuellt via webbläsaren med en enhetskod.

az login --use-device-code

Skapa en ny Python-miljö

Först måste du skapa en ny Python-miljö som ska användas för att installera det paket du behöver för den här självstudien. Installera INTE paket i din globala Python-installation. Du bör alltid använda en virtuell miljö eller conda-miljö när du installerar Python-paket, annars kan du avbryta din globala installation av Python.

Installera Python om det behövs

Vi rekommenderar att du använder Python 3.10 eller senare, men minst Python 3.8 krävs. Om du inte har en lämplig version av Python installerad kan du följa anvisningarna i VS Code Python-självstudien för det enklaste sättet att installera Python på operativsystemet.

Skapa en virtuell miljö

Om du redan har Python 3.10 eller senare installerat kan du skapa en virtuell miljö med hjälp av följande kommandon:

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

När du aktiverar Python-miljön innebär det att när du kör python eller pip från kommandoraden använder du sedan Python-tolken .venv som finns i mappen för ditt program.

Kommentar

Du kan använda deactivate kommandot för att avsluta den virtuella python-miljön och senare återaktivera den när det behövs.

Installera paket

Installera azure-ai-projects(förhandsversion), azure-ai-inference (förhandsversion) och azure-identity-paket:

pip install azure-ai-projects azure-ai-inference azure-identity 

Skapa chattappen

Skapa en fil med namnet chat.py. Kopiera och klistra in följande kod i den.

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)

Infoga din anslutningssträng

Ditt projekt anslutningssträng krävs för att anropa Azure OpenAI-tjänsten från din kod.

Hitta din anslutningssträng i Azure AI Foundry-projektet som du skapade i snabbstarten för Azure AI Foundry Playground. Öppna projektet och leta upp anslutningssträng på sidan Översikt.

Skärmbild som visar översiktssidan för ett projekt och platsen för anslutningssträng.

Kopiera anslutningssträng och ersätt <your-connection-string-goes-here> i filen chat.py.

Kör chattskriptet

Kör skriptet för att se svaret från modellen.

python chat.py

Generera uppmaning från användarindata och en promptmall

Skriptet använder hårdkodade in- och utdatameddelanden. I en riktig app tar du indata från ett klientprogram, genererar ett systemmeddelande med interna instruktioner till modellen och anropar sedan LLM med alla meddelanden.

Nu ska vi ändra skriptet så att det tar indata från ett klientprogram och genererar ett systemmeddelande med hjälp av en promptmall.

  1. Ta bort den sista raden i skriptet som skriver ut ett svar.

  2. Definiera nu en get_chat_response funktion som tar meddelanden och kontext, genererar ett systemmeddelande med hjälp av en promptmall och anropar en modell. Lägg till den här koden i din befintliga chat.py-fil :

    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
    

    Kommentar

    Promptmallen använder mustacheformat.

    Funktionen get_chat_response kan enkelt läggas till som en väg till en FastAPI- eller Flask-app för att aktivera anrop av funktionen från ett klientwebbprogram.

  3. Simulera nu att skicka information från ett klientdelsprogram till den här funktionen. Lägg till följande kod i slutet av din chat.py-fil . Spela gärna med meddelandet och lägg till ditt eget namn.

    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)
    

Kör det ändrade skriptet för att se svaret från modellen med den här nya indatan.

python chat.py

Gå vidare