Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Sémantické jádro je opensourcová architektura AI vytvořená Microsoftem pro vývojáře v .NET, Pythonu a Javě, kteří pracují s velkými jazykovými modely (LLM). Když vytvoříte agenta AI se sémantickým jádrem, LLM interpretuje vstup uživatele a vygeneruje odpověď. Agent AI často bojuje, když potřebuje provádět matematické a symbolické důvody k vytvoření odpovědi. Integrací dynamických relací Azure Container Apps s sémantickým jádrem dáte agentovi interpret kódu, který se použije k provádění specializovaných úloh.
V tomto kurzu se dozvíte, jak spustit agenta Sémantické jádro AI ve webovém rozhraní API. Rozhraní API přijímá vstup uživatele a vrací odpověď vygenerovanou agentem AI. Agent k provádění výpočtů používá interpret kódu v dynamických relacích.
Požadavky
- Účet Azure s aktivním předplatným.
- Pokud jej nemáte, můžete si jej zdarma vytvořit.
- Nainstalujte rozhraní příkazového řádku Azure CLI.
- Git.
- Python 3.10 nebo novější
Vytvoření zdrojů Azure
Ukázková aplikace v tomto rychlém startu používá LLM z Azure OpenAI. Používá také relace Azure Container Apps ke spuštění kódu vygenerovaného LLM.
Aktualizujte Azure CLI na nejnovější verzi.
az upgradePokud už je nainstalované rozšíření Azure Container Apps, odeberte ho a nainstalujte verzi Preview rozšíření Azure Container Apps obsahující příkazy pro relace:
az extension remove --name containerapp az extension add \ --name containerapp \ --allow-preview true -yPřihlaste se do Azure:
az loginNastavte proměnné použité v tomto rychlém startu:
RESOURCE_GROUP_NAME=aca-sessions-tutorial AZURE_OPENAI_LOCATION=swedencentral AZURE_OPENAI_NAME=<UNIQUE_OPEN_AI_NAME> SESSION_POOL_LOCATION=eastasia SESSION_POOL_NAME=code-interpreter-poolNahraďte
<UNIQUE_OPEN_AI_NAME>jedinečným názvem pro vytvoření účtu Azure OpenAI.Vytvoření skupiny prostředků:
az group create --name $RESOURCE_GROUP_NAME --location $SESSION_POOL_LOCATIONVytvořte účet Azure OpenAI:
az cognitiveservices account create \ --name $AZURE_OPENAI_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $AZURE_OPENAI_LOCATION \ --kind OpenAI \ --sku s0 \ --custom-domain $AZURE_OPENAI_NAMEVytvořte nasazení modelu GPT 3.5 Turbo s názvem
gpt-35-turbov účtu Azure OpenAI:az cognitiveservices account deployment create \ --resource-group $RESOURCE_GROUP_NAME \ --name $AZURE_OPENAI_NAME \ --deployment-name gpt-35-turbo \ --model-name gpt-35-turbo \ --model-version "1106" \ --model-format OpenAI \ --sku-capacity "100" \ --sku-name "Standard"Vytvoření fondu relací interpreta kódu:
az containerapp sessionpool create \ --name $SESSION_POOL_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $SESSION_POOL_LOCATION \ --max-sessions 100 \ --container-type PythonLTS \ --cooldown-period 300
Místní spuštění ukázkové aplikace
Než aplikaci nasadíte do Azure Container Apps, můžete ji spustit místně a otestovat ji.
Klonování aplikace
Naklonujte úložiště ukázek relací Azure Container Apps.
git clone https://github.com/Azure-Samples/container-apps-dynamic-sessions-samples.gitPřejděte do adresáře, který obsahuje ukázkovou aplikaci:
cd container-apps-dynamic-sessions-samples/semantic-kernel-python-webapi
Konfigurace aplikace
Vytvořte virtuální prostředí Pythonu a aktivujte ho:
python3.11 -m venv .venv source .venv/bin/activatePokud používáte jinou verzi, změňte verzi Pythonu v příkazu. Doporučujeme použít Python 3.10 nebo novější.
Poznámka:
Pokud používáte Windows, nahraďte
.venv/bin/activateho ..venv\Scripts\activateNainstalujte požadované balíčky Pythonu:
python -m pip install -r requirements.txtPokud chcete aplikaci spustit, musíte nakonfigurovat proměnné prostředí.
Načtení koncového bodu účtu Azure OpenAI:
az cognitiveservices account show \ --name $AZURE_OPENAI_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.endpoint \ --output tsvNačtení koncového bodu správy fondu relací Azure Container Apps:
az containerapp sessionpool show \ --name $SESSION_POOL_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.poolManagementEndpoint \ --output tsvVytvořte
.envsoubor v kořenovém adresáři ukázkové aplikace (stejné umístění jakomain.py). Do souboru přidejte následující obsah:AZURE_OPENAI_ENDPOINT=<AZURE_OPENAI_ENDPOINT> POOL_MANAGEMENT_ENDPOINT=<SESSION_POOL_MANAGEMENT_ENDPOINT>Nahraďte
<AZURE_OPENAI_ENDPOINT>koncovým bodem účtu Azure OpenAI a<SESSION_POOL_MANAGEMENT_ENDPOINT>koncovým bodem správy fondu relací.
Aplikace se používá
DefaultAzureCredentialk ověřování pomocí služeb Azure. Na místním počítači používá vaše aktuální přihlašovací údaje Azure CLI. Aby aplikace získala přístup ke koncovým bodům modelu, musíte mít roli uživatele OpenAI služeb Cognitive Services v účtu Azure OpenAI a roli Exekutoru relací Azure ContainerApps ve fondu relací, aby aplikace získala přístup k fondu relací.Načtení uživatelského jména Azure CLI:
az account show --query user.name --output tsvSpuštěním následujících příkazů načtěte ID prostředku účtu Azure OpenAI:
az cognitiveservices account show --name $AZURE_OPENAI_NAME --resource-group $RESOURCE_GROUP_NAME --query id --output tsvPřiřaďte roli uživatele OpenAI služeb Cognitive Services uživateli Azure CLI v účtu Azure OpenAI:
az role assignment create --role "Cognitive Services OpenAI User" --assignee <CLI_USERNAME> --scope <AZURE_OPENAI_RESOURCE_ID>Nahraďte
<CLI_USERNAME>uživatelské jméno Azure CLI a<AZURE_OPENAI_RESOURCE_ID>ID prostředku účtu Azure OpenAI.Spuštěním následujících příkazů načtěte ID prostředku fondu relací:
az containerapp sessionpool show --name $SESSION_POOL_NAME --resource-group $RESOURCE_GROUP_NAME --query id --output tsvPřiřaďte roli Exekutor relace Azure ContainerApps pomocí id uživatele Azure CLI ve fondu relací:
az role assignment create \ --role "Azure ContainerApps Session Executor" \ --assignee <CLI_USERNAME> \ --scope <SESSION_POOL_RESOURCE_ID>Nahraďte
<CLI_USERNAME>uživatelské jméno Azure CLI a<SESSION_POOL_RESOURCE_ID>ID prostředku fondu relací.
Spustit aplikaci
Před spuštěním ukázkové aplikace otevřete main.py v editoru a zkontrolujte kód. Aplikace používá FastAPI k vytvoření webového rozhraní API, které přijímá zprávu uživatele v řetězci dotazu.
Následující řádky kódu vytvoří instanci SessionPythonTool a poskytnou ho agentovi sémantického jádra:
sessions_tool = SessionsPythonTool(
pool_management_endpoint,
auth_callback=auth_callback_factory("https://dynamicsessions.io/.default"),
)
kernel.add_plugin(sessions_tool, "SessionsTool")
Když potřebuje provádět výpočty, jádro ke spuštění kódu používá interpret kódu v SessionsPythonTool . Kód se spustí v relaci ve fondu relací. Ve výchozím nastavení se při vytváření instance nástroje vygeneruje identifikátor náhodné relace. Pokud jádro používá nástroj ke spuštění více fragmentů kódu Pythonu, použije stejnou relaci. Pokud chcete zajistit, aby každý koncový uživatel používal jedinečnou relaci, použijte samostatné jádro a nástroj pro každého uživatele.
SessionsPythonTool je k dispozici ve verzi 0.9.8b1 nebo novější balíčku semantic-kernel .
Spusťte ukázkovou aplikaci:
fastapi dev main.pyOtevřete prohlížeč a přejděte na adresu
http://localhost:8000/docs. Zobrazí se uživatelské rozhraní Swagger pro ukázkovou aplikaci./chatRozbalte koncový bod a vyberte Vyzkoušet.Zadejte
What time is it right now?domessagepole a vyberte Spustit.Agent odpoví aktuálním časem. V terminálu se zobrazí protokoly znázorňující kód Pythonu vygenerovaný agentem, abyste získali aktuální čas a spustili ho v relaci interpretu kódu.
Pokud chcete aplikaci zastavit, zadejte
Ctrl+Cdo terminálu.
Volitelné: Nasazení ukázkové aplikace do Azure Container Apps
Pokud chcete nasadit aplikaci FastAPI do Azure Container Apps, musíte vytvořit image kontejneru a odeslat ji do registru kontejneru. Image pak můžete nasadit do Azure Container Apps. Tento az containerapp up příkaz kombinuje tyto kroky do jednoho příkazu.
Pak musíte pro aplikaci nakonfigurovat spravovanou identitu a přiřadit jí správné role pro přístup k Azure OpenAI a fondu relací.
Nastavte proměnné pro prostředí Container Apps a název aplikace:
ENVIRONMENT_NAME=aca-sessions-tutorial-env CONTAINER_APP_NAME=chat-apiSestavte a nasaďte aplikaci do Azure Container Apps:
az containerapp up \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $SESSION_POOL_LOCATION \ --environment $ENVIRONMENT_NAME \ --env-vars "AZURE_OPENAI_ENDPOINT=<OPEN_AI_ENDPOINT>" "POOL_MANAGEMENT_ENDPOINT=<SESSION_POOL_MANAGEMENT_ENDPOINT>" \ --source .Nahraďte
<OPEN_AI_ENDPOINT>koncovým bodem účtu Azure OpenAI a<SESSION_POOL_MANAGEMENT_ENDPOINT>koncovým bodem správy fondu relací.Povolte spravovanou identitu přiřazenou systémem pro aplikaci:
az containerapp identity assign \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --system-assignedAby aplikace přistupovala k Azure OpenAI a fondu relací, musíte přiřadit spravovanou identitu správným rolím.
Načtěte ID objektu zabezpečení spravované identity:
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query identity.principalId \ --output tsvNačtěte ID prostředku fondu relací:
az containerapp sessionpool show \ --name $SESSION_POOL_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query id \ --output tsvPřiřaďte spravovanou identitu
Azure ContainerApps Session ExecutoraContributorrole ve fondu relací:Před spuštěním následujícího příkazu nahraďte
<PRINCIPAL_ID>hodnoty<SESSION_POOL_RESOURCE_ID>, které jste získali v předchozích krocích.az role assignment create \ --role "Azure ContainerApps Session Executor" \ --assignee <PRINCIPAL_ID> \ --scope <SESSION_POOL_RESOURCE_ID> az role assignment create \ --role "Contributor" \ --assignee <PRINCIPAL_ID> \ --scope <SESSION_POOL_RESOURCE_ID>Načtěte ID prostředku účtu Azure OpenAI:
az cognitiveservices account show \ --name $AZURE_OPENAI_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query id \ --output tsvPřiřaďte spravovanou
Cognitive Services OpenAI Useridentitu roli v účtu Azure OpenAI:Před spuštěním následujícího příkazu nahraďte
<PRINCIPAL_ID>hodnoty<AZURE_OPENAI_RESOURCE_ID>, které jste získali v předchozích krocích.az role assignment create \ --role "Cognitive Services OpenAI User" \ --assignee <PRINCIPAL_ID> \ --scope <AZURE_OPENAI_RESOURCE_ID>
Načtení plně kvalifikovaného názvu domény (FQDN) aplikace:
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsvOtevřete prohlížeč a
https://<FQDN>/docsotestujte nasazenou aplikaci.
Vyčištění prostředků
Až s prostředky skončíte, můžete je odstranit, abyste se vyhnuli poplatkům:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait