Rychlý start: Začínáme používat pomocníky Azure OpenAI (Preview)
Asistenti Azure OpenAI (Náhled) umožňují vytvářet asistenty umělé inteligence přizpůsobené vašim potřebám prostřednictvím vlastních pokynů a jsou rozšířené o pokročilé nástroje, jako je interpret kódu a vlastní funkce.
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.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Prostředek centra Azure AI s nasazeným modelem. Další informace o nasazení modelu najdete v tématu Průvodce nasazením prostředku.
- Projekt Azure AI v Azure AI Studiu.
Přechod na Azure AI Studio (Preview)
Azure AI Studio umožňuje používat Asistenty v2, které poskytují několik upgradů, jako je nástroj pro vyhledávání souborů, který je rychlejší a podporuje více souborů.
Přihlaste se k Azure AI Studiu.
Přejděte do projektu nebo vytvořte nový projekt v Azure AI Studiu.
V přehledu projektu vyberte Asistenty umístěné pod dětskými hřištěmi.
Dětské hřiště Asistenti vám umožní zkoumat, prototypovat a testovat asistenty AI, aniž byste museli spouštět jakýkoli kód. Na této stránce můžete rychle iterovat a experimentovat s novými nápady.
Dětské hřiště nabízí několik možností konfigurace pomocníka. V následujících krocích použijete podokno nastavení k vytvoření nového asistenta AI.
Název Popis Jméno asistenta Název nasazení, který je přidružený ke konkrétnímu modelu. Pokyny Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy. Nasazení Tady nastavíte nasazení modelu, které se má použít s vaším asistentem. Functions Vytvořte pro modely definice vlastních funkcí, které budou formulovat volání rozhraní API a strukturovat výstupy dat na základě vašich specifikací. V tomto rychlém startu se nepoužívá. Interpret kódu Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód. Soubory Můžete nahrát až 10 000 souborů s maximální velikostí souboru 512 MB pro použití s nástroji. V tomto rychlém startu se nepoužívá.
Vytvoření prvního asistenta
V rozevíracím seznamu Nasazení vyberte své nasazení.
V rozevíracím seznamu Nastavení Pomocníka vyberte Nový asistent.
Pojmenujte svého asistenta.
Zadejte následující pokyny: "Jste asistent AI, který může psát kód, který pomáhá zodpovědět matematické otázky"
Vyberte nasazení modelu. Doporučujeme testovat s jedním z nejnovějších modelů gpt-4.
Vyberte přepínač pro povolení interpretu kódu.
Zvolte Uložit.
Zadejte otázku, na kterou má asistent odpovědět: "Potřebuji vyřešit rovnici
3x + 11 = 14
. Můžeš mi pomoct?"Vyberte tlačítko Přidat a spustit.
The solution to the equation (3x + 11 = 14) is (x = 1).
I když vidíme, že odpověď je správná, abychom potvrdili, že model použil interpret kódu k získání této odpovědi a že kód, který napsal, je platný, a ne jen opakování odpovědi z trénovacích dat modelu, položíme další otázku.
Zadejte následující otázku: "Show me the code you ran to get this solution" (Ukaž mi kód, který jste spustili pro získání tohoto řešení).
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.
Můžete také zkontrolovat protokoly na pravém panelu, abyste potvrdili, že se použil interpret kódu, a ověřit kód, který se spustil pro vygenerování odpovědi. Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější matematické otázky tím, že převádí otázky na kód a běží v prostředí Pythonu v izolovaném prostoru(sandbox), stále potřebujete ověřit odpověď, abyste ověřili, že model správně přeložil vaši otázku do platné reprezentace v kódu.
Klíčové koncepty
Při používání dětského hřiště Asistentů mějte na paměti následující koncepty.
Nástroje
Jednotlivý asistent má přístup až k 128 nástrojům, včetně code interpreter
nástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.
Relace chatu
Chatovací relace označovaná také jako vlákno v rozhraní API asistenta je místo, kde probíhá konverzace mezi uživatelem a asistentem. Na rozdíl od tradičních volání dokončení chatu není nijak omezený počet zpráv ve vlákně. Pomocník automaticky zkomprimuje požadavky tak, aby odpovídal limitu vstupního tokenu modelu.
To také znamená, že během každé konverzace nekontrolujete, kolik tokenů se modelu předá. Správa tokenů se abstrahuje a zpracovává zcela pomocí rozhraní API asistentů.
Pokud chcete odstranit aktuální historii konverzací, vyberte tlačítko Vymazat chat.
Pod textovým vstupním polem jsou dvě tlačítka:
- Přidejte zprávu bez spuštění.
- Přidejte a spusťte.
Protokoly
Protokoly poskytují podrobný snímek aktivity rozhraní API asistenta.
Zobrazit panely
Ve výchozím nastavení existují tři panely: nastavení asistenta, chatovací relace a protokoly. Zobrazení panelů umožňuje přidávat, odebírat a měnit uspořádání panelů. Pokud někdy panel zavřete a potřebujete ho vrátit zpět, obnovte ztracený panel pomocí panelu Zobrazit.
Vyčištění prostředků
Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.
Případně můžete pomocníka odstranit nebo vlákno prostřednictvím rozhraní API asistenta.
Viz také
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI
Referenční dokumentace | – Balíček zdrojového kódu | knihovny (PyPi) |
Požadavky
- Předplatné Azure – Vytvoření předplatného zdarma
- Python 3.8 nebo novější verze
- Následující knihovny Pythonu: os, openai (vyžaduje se verze 1.x)
- Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.
- Prostředek Azure OpenAI s kompatibilním modelem v podporované oblasti.
- Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.
- V tomto příkladu
gpt-4 (1106-preview)
se použil prostředek Azure OpenAI s nasazeným modelem.
Doporučuje se ověřování bez hesla.
Pro ověřování bez hesla musíte
- Použijte balíček azure-identity.
- Přiřaďte roli k uživatelskému
Cognitive Services User
účtu. Můžete to udělat na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role. - Přihlaste se pomocí Azure CLI, například
az login
.
Nastavení
- Nainstalujte klientskou knihovnu OpenAI Pythonu pomocí:
pip install openai
- Pro doporučené ověřování bez hesla:
pip install azure-identity
Poznámka:
- Hledání souborů může ingestovat až 10 000 souborů na asistenta – 500krát více než dříve. Je to rychlý způsob, podporuje paralelní dotazy prostřednictvím vícevláknového vyhledávání a vylepšeného řazení a přepisování dotazů.
- Vektorové úložiště je nový objekt v rozhraní API. Jakmile se soubor přidá do úložiště vektorů, automaticky se parsuje, zachytá a vloží a připraví k hledání. Vektorová úložiště se dají používat napříč asistenty a vlákny, což zjednodušuje správu souborů a fakturaci.
- Přidali jsme podporu parametru
tool_choice
, který se dá použít k vynucení použití konkrétního nástroje (například vyhledávání souborů, interpret kódu nebo funkce) v určitém spuštění.
Poznámka:
Tuto knihovnu udržuje OpenAI. Informace o nejnovějších aktualizacích knihovny najdete v historii verzí.
Načtení klíče a koncového bodu
K úspěšnému volání služby Azure OpenAI budete potřebovat následující:
Název proměnné | Hodnota |
---|---|
ENDPOINT |
Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení v Azure AI Studiu. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2 . |
DEPLOYMENT-NAME |
Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal nebo na stránce Nasazení v Azure AI Studiu. |
Na webu Azure Portal přejděte ke svému prostředku. Klíče a koncový bod najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1
nebo KEY2
. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.
Proměnné prostředí
Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.
Důležité
Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.
Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Vytvoření asistenta
V našem kódu určíme následující hodnoty:
Název | Popis |
---|---|
Jméno asistenta | Název nasazení, který je přidružený ke konkrétnímu modelu. |
Pokyny | Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy. |
Model | Tady nastavíte název nasazení modelu, který se má použít s vaším asistentem. Nástroj pro načítání vyžaduje gpt-35-turbo (1106) nebo gpt-4 (1106-preview) model. Tuto hodnotu nastavte na název nasazení, ne na název modelu, pokud není stejný. |
Interpret kódu | Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód. |
Nástroje
Jednotlivý asistent má přístup až k 128 nástrojům, včetně code interpreter
nástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.
Vytvoření aplikace v Pythonu
Přihlaste se k Azure a az login
pak vytvořte a spusťte asistenta s následujícím doporučeným příkladem Pythonu bez hesla:
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))
Pokud chcete použít klíč rozhraní API služby pro ověřování, můžete vytvořit a spustit asistenta s následujícím příkladem Pythonu:
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))
Výstup
Spuštění dokončeno se stavem: dokončeno
{
"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
}
Porozumění výsledkům
V tomto příkladu vytvoříme asistenta s povoleným interpretem kódu. Když položíme asistentovi matematickou otázku, přeloží ji do kódu Pythonu a spustí kód v prostředí izolovaného prostoru (sandbox), aby se určila odpověď na otázku. Kód, který model vytvoří a otestuje, aby přišel na odpověď, je:
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
Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v sandboxu Pythonu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.
Vyčištění prostředků
Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.
Viz také
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI
Referenční dokumentace | – Balíček zdrojového kódu | (NuGet)
Požadavky
- Předplatné Azure – Vytvoření předplatného zdarma
- Sada .NET 8 SDK
- Prostředek Azure OpenAI s kompatibilním modelem v podporované oblasti.
- Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.
- V tomto příkladu
gpt-4 (1106-preview)
se použil prostředek Azure OpenAI s nasazeným modelem.
Nastavení
Vytvoření nové aplikace .NET Core
V okně konzoly (například cmd, PowerShell nebo Bash) pomocí
dotnet new
příkazu vytvořte novou konzolovou aplikaci s názvemazure-openai-quickstart
:dotnet new console -n azure-openai-assistants-quickstart
Přejděte do adresáře nově vytvořené složky aplikace a aplikaci sestavte pomocí
dotnet build
příkazu:dotnet build
Výstup sestavení by neměl obsahovat žádná upozornění ani chyby.
... Build succeeded. 0 Warning(s) 0 Error(s) ...
Nainstalujte klientskou knihovnu OpenAI .NET pomocí příkazu dotnet add package:
dotnet add package Azure.AI.OpenAI --prerelease
Načtení klíče a koncového bodu
K úspěšnému volání azure OpenAI potřebujete koncový bod a klíč.
Název proměnné | Hodnota |
---|---|
ENDPOINT |
Koncový bod služby najdete v části Klíče a koncový bod při zkoumání vašeho prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení v Azure AI Studiu. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2 . |
Na webu Azure Portal přejděte ke svému prostředku. Oddíl Klíče a koncový bod najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1
nebo KEY2
. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.
Proměnné prostředí
Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.
Důležité
Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.
Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Doporučuje se ověřování bez hesla.
Ověřování bez hesla je bezpečnější než alternativy založené na klíčích a je doporučeným přístupem pro připojení ke službám Azure. Pokud zvolíte ověřování bez hesla, budete muset provést následující:
Přidejte balíček
Azure.Identity
.dotnet add package Azure.Identity
Přiřaďte roli k uživatelskému
Cognitive Services User
účtu. Můžete to udělat na webu Azure Portal na vašem prostředku OpenAI v části Řízení přístupu (IAM)>Přidání přiřazení role.Přihlaste se k Azure pomocí sady Visual Studio nebo Azure CLI přes
az login
.
Vytvoření asistenta
Program.cs
Aktualizujte soubor následujícím kódem a vytvořte asistenta:
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();
}
Spusťte aplikaci pomocí dotnet run
příkazu:
dotnet run
Výstup konzoly by měl vypadat přibližně takto:
[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!
Vyčištění prostředků
Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.
Viz také
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI
Referenční dokumentace | – Balíček zdrojového kódu | knihovny (npm) |
Požadavky
- Předplatné Azure – Vytvoření předplatného zdarma
- Node.js podpory LTS nebo ESM.
- Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.
- Prostředek Azure OpenAI s kompatibilním modelem v podporované oblasti.
- Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.
- V tomto příkladu
gpt-4 (1106-preview)
se použil prostředek Azure OpenAI s nasazeným modelem.
Doporučuje se ověřování Microsoft Entra ID.
Pro ověřování bez klíčů musíte
@azure/identity
Použijte balíček.- Přiřaďte roli k uživatelskému
Cognitive Services User
účtu. Můžete to udělat na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role. - Přihlaste se pomocí Azure CLI, například
az login
.
Nastavení
Vytvořte novou složku
assistants-quickstart
, která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:mkdir assistants-quickstart && code assistants-quickstart
Vytvořte následující
package.json
příkaz:npm init -y
package.json
Aktualizujte na ECMAScript následujícím příkazem:npm pkg set type=module
Nainstalujte klientskou knihovnu OpenAI Assistants pro JavaScript pomocí:
npm install openai
Pro doporučené ověřování bez hesla:
npm install @azure/identity
Načtení informací o prostředcích
Název proměnné | Hodnota |
---|---|
AZURE_OPENAI_ENDPOINT |
Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal. |
OPENAI_API_VERSION |
Přečtěte si další informace o verzích rozhraní API. |
Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.
Upozornění
Pokud chcete používat doporučené ověřování bez klíčů se sadou SDK, ujistěte se, že AZURE_OPENAI_API_KEY
proměnná prostředí není nastavená.
Vytvoření asistenta
V našem kódu určíme následující hodnoty:
Název | Popis |
---|---|
Jméno asistenta | Název nasazení, který je přidružený ke konkrétnímu modelu. |
Pokyny | Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy. |
Model | Toto je název nasazení. |
Interpret kódu | Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód. |
Nástroje
Jednotlivý asistent má přístup až k 128 nástrojům včetně code interpreter
a všech vlastních nástrojů, které vytvoříte prostřednictvím funkcí.
Vytvoření nové javascriptové aplikace
index.js
Vytvořte soubor s následujícím kódem: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)}`); } } }
Přihlaste se k Azure pomocí následujícího příkazu:
az login
Spusťte javascriptový soubor.
node index.js
Výstup
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?"
Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v JavaScriptu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.
Vyčištění prostředků
Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.
Ukázkový kód
Viz také
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI
Referenční dokumentace | – Balíček zdrojového kódu | knihovny (npm) |
Požadavky
- Předplatné Azure – Vytvoření předplatného zdarma
- Node.js podpory LTS nebo ESM.
- TypeScript nainstalovaný globálně
- Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.
- Prostředek Azure OpenAI s kompatibilním modelem v podporované oblasti.
- Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.
- V tomto příkladu
gpt-4 (1106-preview)
se použil prostředek Azure OpenAI s nasazeným modelem.
Doporučuje se ověřování bez hesla.
Pro ověřování bez hesla musíte
@azure/identity
Použijte balíček.- Přiřaďte roli k uživatelskému
Cognitive Services User
účtu. Můžete to udělat na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role. - Přihlaste se pomocí Azure CLI, například
az login
.
Nastavení
Vytvořte novou složku
assistants-quickstart
, která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:mkdir assistants-quickstart && code assistants-quickstart
Vytvořte následující
package.json
příkaz:npm init -y
package.json
Aktualizujte na ECMAScript následujícím příkazem:npm pkg set type=module
Nainstalujte klientskou knihovnu OpenAI Assistants pro JavaScript pomocí:
npm install openai
Pro doporučené ověřování bez hesla:
npm install @azure/identity
Načtení informací o prostředcích
Název proměnné | Hodnota |
---|---|
AZURE_OPENAI_ENDPOINT |
Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal. |
OPENAI_API_VERSION |
Přečtěte si další informace o verzích rozhraní API. |
Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.
Upozornění
Pokud chcete používat doporučené ověřování bez klíčů se sadou SDK, ujistěte se, že AZURE_OPENAI_API_KEY
proměnná prostředí není nastavená.
Vytvoření asistenta
V našem kódu určíme následující hodnoty:
Název | Popis |
---|---|
Jméno asistenta | Název nasazení, který je přidružený ke konkrétnímu modelu. |
Pokyny | Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy. |
Model | Toto je název nasazení. |
Interpret kódu | Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód. |
Nástroje
Jednotlivý asistent má přístup až k 128 nástrojům včetně code interpreter
a všech vlastních nástrojů, které vytvoříte prostřednictvím funkcí.
Vytvoření nové aplikace TypeScript
index.ts
Vytvořte soubor s následujícím kódem: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)}`); } } }
tsconfig.json
Vytvořte soubor pro transpilování kódu TypeScript a zkopírujte následující kód pro ECMAScript.{ "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"] }
Transpilovat z TypeScriptu do JavaScriptu.
tsc
Přihlaste se k Azure pomocí následujícího příkazu:
az login
Spusťte kód pomocí následujícího příkazu:
node index.js
Výstup
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?"
Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v JavaScriptu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.
Vyčištění prostředků
Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.
Ukázkový kód
Viz také
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI
Požadavky
- Předplatné Azure – Vytvoření předplatného zdarma
- Python 3.8 nebo novější verze
- Prostředek Azure OpenAI s kompatibilním modelem v podporované oblasti.
- Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.
- V tomto příkladu
gpt-4 (1106-preview)
se použil prostředek Azure OpenAI s nasazeným modelem.
Nastavení
Načtení klíče a koncového bodu
K úspěšnému volání azure OpenAI budete potřebovat následující:
Název proměnné | Hodnota |
---|---|
ENDPOINT |
Koncový bod služby najdete v části Klíče a koncový bod při zkoumání vašeho prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení v Azure AI Studiu. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2 . |
DEPLOYMENT-NAME |
Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení správy>prostředků na webu Azure Portal nebo na stránce Nasazení v Azure AI Studiu. |
Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1
nebo KEY2
. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.
Proměnné prostředí
Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.
Důležité
Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.
Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Vytvoření asistenta
Poznámka:
U Azure OpenAI parametr model
vyžaduje název nasazení modelu. Pokud se název nasazení modelu liší od základního názvu modelu, upravte kód na "model": "{your-custom-model-deployment-name}"
.
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"
}'
Nástroje
Jednotlivý asistent má přístup až k 128 nástrojům, včetně code interpreter
nástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.
Vytvoření vlákna
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d ''
Přidání otázky uživatele do vlákna
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?"
}'
Spuštění vlákna
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",
}'
Načtení stavu spuštění
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Odpověď asistenta
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" \
Porozumění výsledkům
V tomto příkladu vytvoříme asistenta s povoleným interpretem kódu. Když položíme asistentovi matematickou otázku, přeloží ji do kódu Pythonu a spustí kód v prostředí izolovaného prostoru (sandbox), aby se určila odpověď na otázku. Kód, který model vytvoří a otestuje, aby přišel na odpověď, je:
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
Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v sandboxu Pythonu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.
Vyčištění prostředků
Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.
Viz také
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI