Rövid útmutató: Az Azure OpenAI Assistants használatának első lépései (előzetes verzió)
Az Azure OpenAI segédek (előzetes verzió) lehetővé teszik az Ön igényeinek megfelelő AI-segédek létrehozását egyéni utasítások útján, speciális eszközökkel, mint például kódértelmezőkkel és egyéni funkciókkal kiegészítve.
Fontos
A cikkben megjelölt (előzetes verziójú) elemek jelenleg nyilvános előzetes verzióban érhetők el. Ez az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.
Előfeltételek
- Azure-előfizetés – Hozzon létre egyet ingyenesen.
- Azure AI Hub-erőforrás üzembe helyezett modellel. A modellek üzembe helyezéséről a modellek üzembe helyezésének ismertetőjében talál további információt.
- Azure AI-projekt létrehozása Azure AI Studióban.
Ugrás az Azure AI Studióra (előzetes verzió)
Az Azure AI Studio lehetővé teszi az Assistants v2 használatát, amely számos frissítést biztosít, például a fájlkereső eszközt, amely gyorsabb és több fájlt támogat.
Nyissa meg a projektet, vagy hozzon létre egy új projektet az Azure AI Studióban.
A projekt áttekintésében válassza a Project-játszótér alatt található Asszisztensek lehetőséget.
Az Asszisztensek játszótér lehetővé teszi az AI-asszisztensek felderítését, prototípusát és tesztelését anélkül, hogy bármilyen kódot kellene futtatnia. Ezen az oldalon gyorsan iterálhat és kísérletezhet új ötletekkel.
A játszótér számos lehetőséget kínál az asszisztens konfigurálására. Az alábbi lépésekben az Asszisztens beállítási paneljén fog létrehozni egy új AI-asszisztenst.
Név Leírás Segéd neve Az Ön környezetének adott modellhez társított neve. Utasítások Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre. Üzembe helyezés Itt állíthatja be, hogy melyik modellkörnyezetet szeretné használni a segédjével. Functions Hozzon létre egyéni függvénydefiníciókat a modellekhez, hogy api-hívásokat alakíthasson ki, és az adatok kimeneteit a specifikációk alapján strukturálja. Ebben a rövid útmutatóban nem használható. Kódértelmező A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását. Fájlok Legfeljebb 10 000 fájlt tölthet fel, és az eszközökkel használható maximális fájlméret 512 MB. Ebben a rövid útmutatóban nem használható.
Az első asszisztens létrehozása
Válassza ki az üzembe helyezést az Üzembe helyezések legördülő listából.
Az Asszisztens beállítási legördülő menüjében válassza az Új lehetőséget.
Adjon nevet az asszisztensének.
Adja meg a következő utasításokat: "Ön egy AI-asszisztens, aki képes kódot írni a matematikai kérdések megválaszolásához"
Válasszon ki egy modelltelepítést. Javasoljuk, hogy tesztelje az egyik legújabb gpt-4 modellt.
Válassza ki a kódértelmezőt engedélyező kapcsolót.
Válassza a Mentés lehetőséget.
Adjon meg egy kérdést, amelyre az asszisztens válaszol: "Meg kell oldanunk az egyenletet
3x + 11 = 14
. Tud nekem segíteni?"Válassza a Hozzáadás és futtatás gombot
The solution to the equation (3x + 11 = 14) is (x = 1).
Bár láthatjuk, hogy a válasz helyes, annak ellenőrzéséhez, hogy a modell kódértelmezőt használt-e a válasz eléréséhez, és hogy az általa írt kód érvényes-e ahelyett, hogy a modell betanítási adataiból ismételnénk meg a választ, egy másik kérdést teszünk fel.
Adja meg a következő kérdést: "A megoldás beszerzéséhez használt kód megjelenítése".
Sure. The code is very straightforward
# calculation x = (14 - 11) / 3 x
First, we subtract 11 from 14, then divide the result by 3. This gives us the value of x which is 1.0.
A jobb oldali panelen található naplókban ellenőrizheti, hogy a kódértelmezőt használták-e, és ellenőrizheti a válasz létrehozásához futtatott kódot. Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb matematikai kérdésekre válaszoljon a kérdések kódmá alakításával és egy tesztkörnyezetben futó Python-környezetben, a választ továbbra is ellenőriznie kell, hogy a modell helyesen fordította-e le a kérdést érvényes kódbeli ábrázolásra.
Fő fogalmak
Az Asszisztensek játszótér használata során tartsa szem előtt az alábbi fogalmakat.
Eszközök
Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve code interpreter
a függvényekkel létrehozott egyéni eszközöket is.
Csevegési munkamenet
Az Asszisztens API-jában szálként is ismert csevegési munkamenetben zajlik a felhasználó és az asszisztens közötti beszélgetés. A hagyományos csevegésvégzítési hívásokkal ellentétben nincs korlátozva a szálon lévő üzenetek száma. Az asszisztens automatikusan tömöríti a kérelmeket a modell bemeneti jogkivonat-korlátjának megfelelően.
Ez azt is jelenti, hogy nem szabályozza, hogy hány jogkivonat legyen átadva a modellnek a beszélgetés minden egyes fordulója során. A jogkivonatok kezelését az Assistants API absztrakciója és teljes mértékben kezeli.
Válassza a Csevegés törlése gombot az aktuális beszélgetési előzmények törléséhez.
A szövegbeviteli mező alatt két gomb található:
- Üzenet hozzáadása futtatás nélkül.
- Hozzáadás és futtatás.
Naplók
A naplók részletes pillanatképet nyújtanak az asszisztens API-tevékenységéről.
Panelek megjelenítése
Alapértelmezés szerint három panel van: asszisztens beállítása, csevegési munkamenet és naplók. A panelek megjelenítése lehetővé teszi a panelek hozzáadását, eltávolítását és átrendeződését. Ha valaha bezár egy panelt, és vissza kell szereznie, a Panelek megjelenítése parancsot használva visszaállíthatja az elveszett panelt.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Másik lehetőségként törölheti az asszisztenst vagy a szálat az Asszisztens API-ján keresztül.
Lásd még
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták
Referenciadokumentáció kódtár forráskódcsomagja | (PyPi) | |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Python 3.8 vagy újabb verzió
- A következő Python-kódtárak: operációs rendszer, openai (1.x-es verzió szükséges)
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Egy támogatott régióban kompatibilis modellel rendelkező Azure OpenAI-erőforrás.
- Javasoljuk, hogy tekintse át a Felelős AI átláthatósági megjegyzését és más felelős AI-erőforrásokat az Azure OpenAI szolgáltatás képességeinek és korlátainak megismeréséhez.
- Ebben a példában egy Azure OpenAI-erőforrást használtunk a
gpt-4 (1106-preview)
modell üzembe helyezésével.
Jelszó nélküli hitelesítés használata ajánlott
A jelszó nélküli hitelesítéshez
- Használja az azure-identity csomagot.
- Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Ez az Azure Portal Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területén végezhető el. - Jelentkezzen be az Azure CLI-vel, például
az login
.
Beállítás
- Telepítse az OpenAI Python ügyfélkódtárat a következőkkel:
pip install openai
- Az ajánlott jelszó nélküli hitelesítéshez:
pip install azure-identity
Feljegyzés
- A fájlkeresés asszisztensenként akár 10 000 fájlt is betölthet – 500-szor több, mint korábban. Gyors, többszálas keresésekkel támogatja a párhuzamos lekérdezéseket, és továbbfejlesztett újrarangsorolást és lekérdezés-újraírást is kínál.
- A vektortároló egy új objektum az API-ban. Miután hozzáadnak egy fájlt egy vektortárolóhoz, a rendszer automatikusan elemzi, darabolja és beágyazza azt, és készen áll a keresésre. A vektortárolók segédeken és szálakon átnyúlóan is használhatók, így egyszerűbbé téve a fájlkezelést és a számlázást.
- Hozzáadtuk a
tool_choice
paraméter támogatását, amely egy adott eszköz (például fájlkeresés, kódértelmező vagy függvény) egy adott futtatáshoz való kényszerítésére használható.
Feljegyzés
Ezt a könyvtárat az OpenAI tartja karban. A kódtár legújabb frissítéseinek nyomon követéséhez tekintse meg a kiadási előzményeket.
Kulcs és végpont lekérése
Az Azure OpenAI szolgáltatással való sikeres híváshoz a következőkre lesz szüksége:
Változó neve | Érték |
---|---|
ENDPOINT |
Ez az érték a Kulcsok és végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Studio Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Ez az érték a Kulcsok és végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
DEPLOYMENT-NAME |
Ez az érték a modell üzembe helyezésekor az üzembe helyezéshez választott egyéni névnek felel meg. Ez az érték az Azure Portal erőforrás-kezelési modell üzembe helyezései alatt vagy az Azure AI Studio Üzembe helyezések lapján található.> |
Nyissa meg az erőforrást az Azure Portalon. A kulcsok és végpontok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Segéd létrehozása
A kódban a következő értékeket fogjuk megadni:
Név | Leírás |
---|---|
Segéd neve | Az Ön környezetének adott modellhez társított neve. |
Utasítások | Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre. |
Modell | Itt adhatja meg, hogy melyik modell üzembehelyezési nevét használja az asszisztensével. A lekérési eszközhöz szükség van vagy gpt-4 (1106-preview) modellre van szükséggpt-35-turbo (1106) . Állítsa ezt az értéket az üzemelő példány nevére, és ne a modell nevére, hacsak nem ugyanaz. |
Kódértelmező | A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását. |
Eszközök
Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve code interpreter
a függvényekkel létrehozott egyéni eszközöket is.
A Python-alkalmazás létrehozása
Jelentkezzen be az Azure-ba az login
, majd hozzon létre és futtasson egy asszisztenst a következő ajánlott jelszó nélküli Python-példával:
import os
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
client = AzureOpenAI(
azure_ad_token_provider=token_provider,
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version="2024-05-01-preview",
)
# Create an assistant
assistant = client.beta.assistants.create(
name="Math Assist",
instructions="You are an AI assistant that can write code to help answer math questions.",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)
# Create a thread
thread = client.beta.threads.create()
# Add a user question to the thread
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)
# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Please address the user as Jane Doe. The user has a premium account.",
)
print("Run completed with status: " + run.status)
if run.status == "completed":
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.to_json(indent=2))
A szolgáltatás API-kulcsának hitelesítéshez való használatához létrehozhat és futtathat egy asszisztenst a következő Python-példával:
import os
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.environ["AZURE_OPENAI_API_KEY"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version="2024-05-01-preview",
)
# Create an assistant
assistant = client.beta.assistants.create(
name="Math Assist",
instructions="You are an AI assistant that can write code to help answer math questions.",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)
# Create a thread
thread = client.beta.threads.create()
# Add a user question to the thread
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)
# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Please address the user as Jane Doe. The user has a premium account.",
)
print("Run completed with status: " + run.status)
if run.status == "completed":
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.to_json(indent=2))
Hozam
Futtatás befejezve állapottal: befejezve
{
"data": [
{
"id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
"assistant_id": "asst_cYqL1RuwLyFV3HU1gkaE2k0K",
"attachments": [],
"content": [
{
"text": {
"annotations": [],
"value": "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
},
"type": "text"
}
],
"created_at": 1716397091,
"metadata": {},
"object": "thread.message",
"role": "assistant",
"run_id": "run_hFgBPbUtO8ZNTnNPC8PgpH1S",
"thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
},
{
"id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
"assistant_id": null,
"attachments": [],
"content": [
{
"text": {
"annotations": [],
"value": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
},
"type": "text"
}
],
"created_at": 1716397025,
"metadata": {},
"object": "thread.message",
"role": "user",
"run_id": null,
"thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
}
],
"object": "list",
"first_id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
"last_id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
"has_more": false
}
Az eredmények ismertetése
Ebben a példában létrehozunk egy asszisztenst, amely engedélyezve van a kódértelmezővel. Amikor matematikai kérdést teszünk fel az asszisztensnek, az python kódra fordítja le a kérdést, és tesztkörnyezetben hajtja végre a kódot a kérdésre adott válasz meghatározásához. A modell által létrehozott és a válaszhoz szükséges tesztek kódja a következő:
from sympy import symbols, Eq, solve
# Define the variable
x = symbols('x')
# Define the equation
equation = Eq(3*x + 11, 14)
# Solve the equation
solution = solve(equation, x)
solution
Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a Python-tesztkörnyezetben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ, hogy a modell helyesen lefordította-e a kérdést egy érvényes kódképre.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Lásd még
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták
Referenciadokumentáció Forráskódcsomag | (NuGet) |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- A .NET 8 SDK
- Egy támogatott régióban kompatibilis modellel rendelkező Azure OpenAI-erőforrás.
- Javasoljuk, hogy tekintse át a Felelős AI átláthatósági megjegyzését és más felelős AI-erőforrásokat az Azure OpenAI szolgáltatás képességeinek és korlátainak megismeréséhez.
- Ebben a példában egy Azure OpenAI-erőforrást használtunk a
gpt-4 (1106-preview)
modell üzembe helyezésével.
Beállítás
Egy új .NET Core-alkalmazás létrehozása
Egy konzolablakban (például parancsmag, PowerShell vagy Bash) a
dotnet new
paranccsal hozzon létre egy új konzolalkalmazást a következő névenazure-openai-quickstart
:dotnet new console -n azure-openai-assistants-quickstart
Váltson az újonnan létrehozott alkalmazásmappa könyvtárára, és hozza létre az alkalmazást a
dotnet build
következő paranccsal:dotnet build
A buildkimenet nem tartalmazhat figyelmeztetést vagy hibát.
... Build succeeded. 0 Warning(s) 0 Error(s) ...
Telepítse az OpenAI .NET ügyfélkódtárat a dotnet add package paranccsal:
dotnet add package Azure.AI.OpenAI --prerelease
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra van szükség.
Változó neve | Érték |
---|---|
ENDPOINT |
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Studio Üzembe helyezési lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
Nyissa meg az erőforrást az Azure Portalon. A Kulcsok > végpont szakasz az Erőforrás-kezelés szakaszban található. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Jelszó nélküli hitelesítés használata ajánlott
A jelszó nélküli hitelesítés biztonságosabb, mint a kulcsalapú alternatívák, és az Azure-szolgáltatásokhoz való csatlakozás ajánlott módszere. Ha jelszó nélküli hitelesítést választ, a következőket kell elvégeznie:
Vegye fel a
Azure.Identity
csomagot.dotnet add package Azure.Identity
Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Ez az OpenAI-erőforrás Azure Portalon, a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen végezhető el.Jelentkezzen be az Azure-ba a Visual Studióval vagy az Azure CLI-vel.
az login
Az asszisztens létrehozása
Frissítse a Program.cs
fájlt a következő kóddal egy asszisztens létrehozásához:
using Azure;
using Azure.AI.OpenAI.Assistants;
// Assistants is a beta API and subject to change
// Acknowledge its experimental status by suppressing the matching warning.
string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
var openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
// Use for passwordless auth
//var openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
FileClient fileClient = openAIClient.GetFileClient();
AssistantClient assistantClient = openAIClient.GetAssistantClient();
// First, let's contrive a document we'll use retrieval with and upload it.
using Stream document = BinaryData.FromString("""
{
"description": "This document contains the sale history data for Contoso products.",
"sales": [
{
"month": "January",
"by_product": {
"113043": 15,
"113045": 12,
"113049": 2
}
},
{
"month": "February",
"by_product": {
"113045": 22
}
},
{
"month": "March",
"by_product": {
"113045": 16,
"113055": 5
}
}
]
}
""").ToStream();
OpenAIFileInfo salesFile = await fileClient.UploadFileAsync(
document,
"monthly_sales.json",
FileUploadPurpose.Assistants);
// Now, we'll create a client intended to help with that data
AssistantCreationOptions assistantOptions = new()
{
Name = "Example: Contoso sales RAG",
Instructions =
"You are an assistant that looks up sales data and helps visualize the information based"
+ " on user queries. When asked to generate a graph, chart, or other visualization, use"
+ " the code interpreter tool to do so.",
Tools =
{
new FileSearchToolDefinition(),
new CodeInterpreterToolDefinition(),
},
ToolResources = new()
{
FileSearch = new()
{
NewVectorStores =
{
new VectorStoreCreationHelper([salesFile.Id]),
}
}
},
};
Assistant assistant = await assistantClient.CreateAssistantAsync(deploymentName, assistantOptions);
// Create and run a thread with a user query about the data already associated with the assistant
ThreadCreationOptions threadOptions = new()
{
InitialMessages = { "How well did product 113045 sell in February? Graph its trend over time." }
};
ThreadRun threadRun = await assistantClient.CreateThreadAndRunAsync(assistant.Id, threadOptions);
// Check back to see when the run is done
do
{
Thread.Sleep(TimeSpan.FromSeconds(1));
threadRun = assistantClient.GetRun(threadRun.ThreadId, threadRun.Id);
} while (!threadRun.Status.IsTerminal);
// Finally, we'll print out the full history for the thread that includes the augmented generation
AsyncCollectionResult<ThreadMessage> messages
= assistantClient.GetMessagesAsync(
threadRun.ThreadId,
new MessageCollectionOptions() { Order = MessageCollectionOrder.Ascending });
await foreach (ThreadMessage message in messages)
{
Console.Write($"[{message.Role.ToString().ToUpper()}]: ");
foreach (MessageContent contentItem in message.Content)
{
if (!string.IsNullOrEmpty(contentItem.Text))
{
Console.WriteLine($"{contentItem.Text}");
if (contentItem.TextAnnotations.Count > 0)
{
Console.WriteLine();
}
// Include annotations, if any.
foreach (TextAnnotation annotation in contentItem.TextAnnotations)
{
if (!string.IsNullOrEmpty(annotation.InputFileId))
{
Console.WriteLine($"* File citation, file ID: {annotation.InputFileId}");
}
if (!string.IsNullOrEmpty(annotation.OutputFileId))
{
Console.WriteLine($"* File output, new file ID: {annotation.OutputFileId}");
}
}
}
if (!string.IsNullOrEmpty(contentItem.ImageFileId))
{
OpenAIFileInfo imageInfo = await fileClient.GetFileAsync(contentItem.ImageFileId);
BinaryData imageBytes = await fileClient.DownloadFileAsync(contentItem.ImageFileId);
using FileStream stream = File.OpenWrite($"{imageInfo.Filename}.png");
imageBytes.ToStream().CopyTo(stream);
Console.WriteLine($"<image: {imageInfo.Filename}.png>");
}
}
Console.WriteLine();
}
Futtassa az alkalmazást a dotnet run
következő paranccsal:
dotnet run
A konzol kimenetének a következőhöz kell hasonlítania:
[USER]: How well did product 113045 sell in February? Graph its trend over time.
[ASSISTANT]: Product 113045 sold 22 units in February. Let's visualize its sales trend over the given months (January through March).
I'll create a graph to depict this trend.
[ASSISTANT]: <image: 553380b7-fdb6-49cf-9df6-e8e6700d69f4.png>
The graph above visualizes the sales trend for product 113045 from January to March. As seen, the sales peaked in February with 22 units sold, and fluctuated over the period from January (12 units) to March (16 units).
If you need further analysis or more details, feel free to ask!
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Lásd még
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták
Referenciadokumentáció Kódtár forráskódcsomagja | (npm) | |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Node.js LTS- vagy ESM-támogatást.
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Egy támogatott régióban kompatibilis modellel rendelkező Azure OpenAI-erőforrás.
- Javasoljuk, hogy tekintse át a Felelős AI átláthatósági megjegyzését és más felelős AI-erőforrásokat az Azure OpenAI szolgáltatás képességeinek és korlátainak megismeréséhez.
- Ebben a példában egy Azure OpenAI-erőforrást használtunk a
gpt-4 (1106-preview)
modell üzembe helyezésével.
A Microsoft Entra-azonosító hitelesítése ajánlott
Kulcs nélküli hitelesítéshez
- Használja a
@azure/identity
csomagot. - Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Ez az Azure Portal Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területén végezhető el. - Jelentkezzen be az Azure CLI-vel, például
az login
.
Beállítás
Hozzon létre egy új mappát
assistants-quickstart
, amely tartalmazza az alkalmazást, és nyissa meg a Visual Studio Code-ot abban a mappában a következő paranccsal:mkdir assistants-quickstart && code assistants-quickstart
Hozza létre a
package.json
következő paranccsal:npm init -y
Frissítse az
package.json
ECMAScriptet a következő paranccsal:npm pkg set type=module
Telepítse a JavaScripthez készült OpenAI Assistants ügyfélkódtárat a következőkkel:
npm install openai
Az ajánlott jelszó nélküli hitelesítéshez:
npm install @azure/identity
Erőforrásadatok lekérése
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Figyelemfelhívás
Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY
környezeti változó nincs beállítva.
Segéd létrehozása
A kódban a következő értékeket fogjuk megadni:
Név | Leírás |
---|---|
Segéd neve | Az Ön környezetének adott modellhez társított neve. |
Utasítások | Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre. |
Modell | Ez az üzembe helyezés neve. |
Kódértelmező | A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását. |
Eszközök
Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve a code interpreter
függvényekkel létrehozott egyéni eszközöket is.
Új JavaScript-alkalmazás létrehozása
Hozza létre a
index.js
fájlt a következő kóddal:const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider, } = require("@azure/identity"); // Get environment variables const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT; const azureOpenAIDeployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME; const azureOpenAIVersion = process.env.OPENAI_API_VERSION; // Check env variables if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !azureOpenAIVersion) { throw new Error( "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables." ); } // Get Azure SDK client const getClient = () => { const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const assistantsClient = new AzureOpenAI({ endpoint: azureOpenAIEndpoint, apiVersion: azureOpenAIVersion, azureADTokenProvider, }); return assistantsClient; }; const assistantsClient = getClient(); const options = { model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio name: "Math Tutor", instructions: "You are a personal math tutor. Write and run JavaScript code to answer math questions.", tools: [{ type: "code_interpreter" }], }; const role = "user"; const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?"; // Create an assistant const assistantResponse = await assistantsClient.beta.assistants.create( options ); console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`); // Create a thread const assistantThread = await assistantsClient.beta.threads.create({}); console.log(`Thread created: ${JSON.stringify(assistantThread)}`); // Add a user question to the thread const threadResponse = await assistantsClient.beta.threads.messages.create( assistantThread.id, { role, content: message, } ); console.log(`Message created: ${JSON.stringify(threadResponse)}`); // Run the thread and poll it until it is in a terminal state const runResponse = await assistantsClient.beta.threads.runs.createAndPoll( assistantThread.id, { assistant_id: assistantResponse.id, }, { pollIntervalMs: 500 } ); console.log(`Run created: ${JSON.stringify(runResponse)}`); // Get the messages const runMessages = await assistantsClient.beta.threads.messages.list( assistantThread.id ); for await (const runMessageDatum of runMessages) { for (const item of runMessageDatum.content) { // types are: "image_file" or "text" if (item.type === "text") { console.log(`Message content: ${JSON.stringify(item.text?.value)}`); } } }
Jelentkezzen be az Azure-ba a következő paranccsal:
az login
Futtassa a JavaScript-fájlt.
node index.js
Hozam
Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created: {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created: {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"
Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a JavaScriptben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ annak ellenőrzéséhez, hogy a modell helyesen lefordította-e a kérdést egy kódban szereplő érvényes reprezentációra.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Mintakód
Lásd még
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták
Referenciadokumentáció Kódtár forráskódcsomagja | (npm) | |
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Node.js LTS- vagy ESM-támogatást.
- Globálisan telepített TypeScript
- A helyi fejlesztési környezetben a jelszó nélküli hitelesítéshez használt Azure CLI az Azure CLI-vel való bejelentkezéssel hozza létre a szükséges környezetet.
- Egy támogatott régióban kompatibilis modellel rendelkező Azure OpenAI-erőforrás.
- Javasoljuk, hogy tekintse át a Felelős AI átláthatósági megjegyzését és más felelős AI-erőforrásokat az Azure OpenAI szolgáltatás képességeinek és korlátainak megismeréséhez.
- Ebben a példában egy Azure OpenAI-erőforrást használtunk a
gpt-4 (1106-preview)
modell üzembe helyezésével.
Jelszó nélküli hitelesítés használata ajánlott
A jelszó nélküli hitelesítéshez
- Használja a
@azure/identity
csomagot. - Rendelje hozzá a szerepkört
Cognitive Services User
a felhasználói fiókjához. Ez az Azure Portal Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területén végezhető el. - Jelentkezzen be az Azure CLI-vel, például
az login
.
Beállítás
Hozzon létre egy új mappát
assistants-quickstart
, amely tartalmazza az alkalmazást, és nyissa meg a Visual Studio Code-ot abban a mappában a következő paranccsal:mkdir assistants-quickstart && code assistants-quickstart
Hozza létre a
package.json
következő paranccsal:npm init -y
Frissítse az
package.json
ECMAScriptet a következő paranccsal:npm pkg set type=module
Telepítse a JavaScripthez készült OpenAI Assistants ügyfélkódtárat a következőkkel:
npm install openai
Az ajánlott jelszó nélküli hitelesítéshez:
npm install @azure/identity
Erőforrásadatok lekérése
További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.
Figyelemfelhívás
Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY
környezeti változó nincs beállítva.
Segéd létrehozása
A kódban a következő értékeket fogjuk megadni:
Név | Leírás |
---|---|
Segéd neve | Az Ön környezetének adott modellhez társított neve. |
Utasítások | Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre. |
Modell | Ez az üzembe helyezés neve. |
Kódértelmező | A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását. |
Eszközök
Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve a code interpreter
függvényekkel létrehozott egyéni eszközöket is.
Új TypeScript-alkalmazás létrehozása
Hozza létre a
index.ts
fájlt a következő kóddal:import { AzureOpenAI } from "openai"; import { Assistant, AssistantCreateParams, AssistantTool, } from "openai/resources/beta/assistants"; import { Message, MessagesPage } from "openai/resources/beta/threads/messages"; import { Run } from "openai/resources/beta/threads/runs/runs"; import { Thread } from "openai/resources/beta/threads/threads"; // Add `Cognitive Services User` to identity for Azure OpenAI resource import { DefaultAzureCredential, getBearerTokenProvider, } from "@azure/identity"; // Get environment variables const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string; const azureOpenAIDeployment = process.env .AZURE_OPENAI_DEPLOYMENT_NAME as string; const openAIVersion = process.env.OPENAI_API_VERSION as string; // Check env variables if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) { throw new Error( "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables." ); } // Get Azure SDK client const getClient = (): AzureOpenAI => { const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const assistantsClient = new AzureOpenAI({ endpoint: azureOpenAIEndpoint, apiVersion: openAIVersion, azureADTokenProvider, }); return assistantsClient; }; const assistantsClient = getClient(); const options: AssistantCreateParams = { model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio name: "Math Tutor", instructions: "You are a personal math tutor. Write and run JavaScript code to answer math questions.", tools: [{ type: "code_interpreter" } as AssistantTool], }; const role = "user"; const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?"; // Create an assistant const assistantResponse: Assistant = await assistantsClient.beta.assistants.create(options); console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`); // Create a thread const assistantThread: Thread = await assistantsClient.beta.threads.create({}); console.log(`Thread created: ${JSON.stringify(assistantThread)}`); // Add a user question to the thread const threadResponse: Message = await assistantsClient.beta.threads.messages.create(assistantThread.id, { role, content: message, }); console.log(`Message created: ${JSON.stringify(threadResponse)}`); // Run the thread and poll it until it is in a terminal state const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll( assistantThread.id, { assistant_id: assistantResponse.id, }, { pollIntervalMs: 500 } ); console.log(`Run created: ${JSON.stringify(runResponse)}`); // Get the messages const runMessages: MessagesPage = await assistantsClient.beta.threads.messages.list(assistantThread.id); for await (const runMessageDatum of runMessages) { for (const item of runMessageDatum.content) { // types are: "image_file" or "text" if (item.type === "text") { console.log(`Message content: ${JSON.stringify(item.text?.value)}`); } } }
Hozza létre a fájlt a
tsconfig.json
TypeScript-kód fordításához, és másolja a következő kódot az ECMAScripthez.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
Transpile TypeScriptről JavaScriptre.
tsc
Jelentkezzen be az Azure-ba a következő paranccsal:
az login
Futtassa a kódot a következő paranccsal:
node index.js
Hozam
Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created: {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created: {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"
Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a JavaScriptben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ annak ellenőrzéséhez, hogy a modell helyesen lefordította-e a kérdést egy kódban szereplő érvényes reprezentációra.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Mintakód
Lásd még
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták
Előfeltételek
- Azure-előfizetés – Ingyenes létrehozás
- Python 3.8 vagy újabb verzió
- Egy támogatott régióban kompatibilis modellel rendelkező Azure OpenAI-erőforrás.
- Javasoljuk, hogy tekintse át a Felelős AI átláthatósági megjegyzését és más felelős AI-erőforrásokat az Azure OpenAI szolgáltatás képességeinek és korlátainak megismeréséhez.
- Ebben a példában egy Azure OpenAI-erőforrást használtunk a
gpt-4 (1106-preview)
modell üzembe helyezésével.
Beállítás
Kulcs és végpont lekérése
Az Azure OpenAI-ra való sikeres híváshoz a következőkre lesz szüksége:
Változó neve | Érték |
---|---|
ENDPOINT |
A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Studio Üzembe helyezési lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2 . |
DEPLOYMENT-NAME |
Ez az érték a modell üzembe helyezésekor az üzembe helyezéshez választott egyéni névnek felel meg. Ez az érték az Azure Portal erőforrás-kezelési üzembe helyezései alatt vagy az Azure AI Studio Üzembe helyezési lapján található.> |
Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1
vagy KEY2
. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.
Környezeti változók
Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.
Fontos
HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.
Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Segéd létrehozása
Feljegyzés
Az Azure OpenAI-ban a model
paraméterhez modelltelepítési név szükséges. Ha a modell központi telepítési neve eltér az alapul szolgáló modell nevéétől, akkor a kódot a következőre "model": "{your-custom-model-deployment-name}"
kell módosítania: .
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instructions": "You are an AI assistant that can write code to help answer math questions.",
"name": "Math Assist",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4-1106-preview"
}'
Eszközök
Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve code interpreter
a függvényekkel létrehozott egyéni eszközöket is.
Szál létrehozása
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d ''
Felhasználói kérdés hozzáadása a szálhoz
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{
"role": "user",
"content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
}'
A szál futtatása
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "asst_abc123",
}'
A futtatás állapotának lekérése
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Asszisztens válasza
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Az eredmények ismertetése
Ebben a példában létrehozunk egy asszisztenst, amely engedélyezve van a kódértelmezővel. Amikor matematikai kérdést teszünk fel az asszisztensnek, az python kódra fordítja le a kérdést, és tesztkörnyezetben hajtja végre a kódot a kérdésre adott válasz meghatározásához. A modell által létrehozott és a válaszhoz szükséges tesztek kódja a következő:
from sympy import symbols, Eq, solve
# Define the variable
x = symbols('x')
# Define the equation
equation = Eq(3*x + 11, 14)
# Solve the equation
solution = solve(equation, x)
solution
Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a Python-tesztkörnyezetben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ, hogy a modell helyesen lefordította-e a kérdést egy érvényes kódképre.
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.
Lásd még
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták