Sdílet prostřednictvím


Vytvoření základní chatovací aplikace v Pythonu pomocí sady Azure AI Foundry SDK

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

V tomto rychlém startu vás provedeme nastavením místního vývojového prostředí pomocí sady Azure AI Foundry SDK. Napíšeme výzvu, spustíme ji jako součást kódu vaší aplikace, trasujeme volání LLM a spustíme základní vyhodnocení výstupů LLM.

Požadavky

  • Než budete moct postupovat podle tohoto rychlého startu, dokončete rychlý start pro dětské hřiště Azure AI Foundry a nasaďte do projektu model gpt-4o-mini .

Instalace Azure CLI a přihlášení

Nainstalujete Azure CLI a přihlásíte se z místního vývojového prostředí, abyste mohli pomocí přihlašovacích údajů uživatele volat službu Azure OpenAI.

Ve většině případů můžete Azure CLI nainstalovat z terminálu pomocí následujícího příkazu:

winget install -e --id Microsoft.AzureCLI

Pokud tyto příkazy nefungují pro konkrétní operační systém nebo nastavení, můžete postupovat podle pokynů , jak nainstalovat Azure CLI .

Po instalaci Azure CLI se přihlaste pomocí az login příkazu a přihlaste se pomocí prohlížeče:

az login

Alternativně se můžete přihlásit ručně pomocí prohlížeče pomocí kódu zařízení.

az login --use-device-code

Vytvoření nového prostředí Pythonu

Nejprve musíte vytvořit nové prostředí Pythonu, které se použije k instalaci balíčku, který potřebujete pro účely tohoto kurzu. Neinstalujte balíčky do globální instalace Pythonu. Při instalaci balíčků Pythonu byste měli vždy používat virtuální prostředí nebo prostředí Conda, jinak můžete přerušit globální instalaci Pythonu.

V případě potřeby nainstalujte Python.

Doporučujeme používat Python 3.10 nebo novější, ale vyžaduje se aspoň Python 3.8. Pokud nemáte nainstalovanou vhodnou verzi Pythonu, můžete postupovat podle pokynů v kurzu VS Code Python pro nejjednodušší způsob instalace Pythonu do operačního systému.

Vytvoříte virtuální prostředí.

Pokud už máte nainstalovaný Python 3.10 nebo novější, můžete vytvořit virtuální prostředí pomocí následujících příkazů:

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

Aktivace prostředí Python znamená, že při spuštění python nebo pip z příkazového řádku pak použijete interpret Pythonu obsažený ve .venv složce vaší aplikace.

Poznámka:

Pomocí příkazu můžete deactivate ukončit virtuální prostředí Pythonu a později ho v případě potřeby znovu aktivovat.

Instalace balíčků

Instalace azure-ai-projects(Preview), azure-ai-inference (Preview) a balíčků azure-identity:

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

Vytvoření chatovací aplikace

Vytvořte soubor s názvem chat.py. Zkopírujte a vložte do něj následující kód.

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)

Vložení připojovací řetězec

Projekt připojovací řetězec je nutný k volání služby Azure OpenAI z kódu.

Najděte své připojovací řetězec v projektu Azure AI Foundry, který jste vytvořili v rychlém startu pro dětské hřiště Azure AI Foundry. Otevřete projekt a na stránce Přehled vyhledejte připojovací řetězec.

Snímek obrazovky se stránkou přehledu projektu a umístěním připojovací řetězec

Zkopírujte připojovací řetězec a nahraďte <your-connection-string-goes-here> ho v souboru chat.py.

Spuštění chatovacího skriptu

Spuštěním skriptu zobrazte odpověď z modelu.

python chat.py

Generování výzvy ze vstupu uživatele a šablony výzvy

Skript používá pevně zakódované vstupní a výstupní zprávy. V reálné aplikaci byste vzali vstup z klientské aplikace, vygenerujte systémovou zprávu s interními pokyny k modelu a pak volejte LLM se všemi zprávami.

Pojďme změnit skript tak, aby převzal vstup z klientské aplikace a vygeneroval systémovou zprávu pomocí šablony výzvy.

  1. Odeberte poslední řádek skriptu, který vytiskne odpověď.

  2. Teď definujte get_chat_response funkci, která přijímá zprávy a kontext, generuje systémovou zprávu pomocí šablony výzvy a volá model. Přidejte tento kód do existujícího souboru chat.py :

    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
        return chat.complete(
            model="gpt-4o-mini",
            messages=system_message + messages,
            temperature=1,
            frequency_penalty=0.5,
            presence_penalty=0.5,
        )
    

    Poznámka:

    Šablona výzvy používá formát mustache.

    Funkci get_chat_response je možné snadno přidat jako trasu do aplikace FastAPI nebo Flask, aby bylo možné tuto funkci volat z front-endové webové aplikace.

  3. Teď simulujte předávání informací z front-endové aplikace do této funkce. Na konec souboru chat.py přidejte následující kód. Můžete si s zprávou hrát a přidat vlastní jméno.

    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)
    

Spuštěním revidovaného skriptu zobrazte odpověď z modelu s tímto novým vstupem.

python chat.py

Další krok