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:
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ů:
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.
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.
Odeberte poslední řádek skriptu, který vytiskne odpověď.
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.
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