Quickstart: Aan de slag met Azure OpenAI-assistenten (preview)
Met Azure OpenAI-assistenten (preview) kunt u AI-assistenten maken die zijn afgestemd op uw behoeften via aangepaste instructies en uitgebreid met geavanceerde hulpprogramma's zoals code-interpreter en aangepaste functies.
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
Vereisten
- Een Azure-abonnement: maak er gratis een.
- Een Azure AI Hub-resource met een model dat is geïmplementeerd. Zie de gids implementatiemodellen voor meer informatie over de implementatiemodellen.
- Een Azure AI-project in de Azure AI Foundry-portal.
Ga naar de Azure AI Foundry-portal
Met Azure AI Foundry kunt u Assistenten v2 gebruiken die verschillende upgrades biedt, zoals het hulpprogramma voor het zoeken van bestanden, wat sneller is en meer bestanden ondersteunt.
Meld u aan bij Azure AI Foundry.
Ga naar uw project of maak een nieuw project in de Azure AI Foundry-portal.
Selecteer assistenten in uw projectoverzicht, gelegen onder speeltuinen.
Met de assistentspeeltuin kunt u AI-assistenten verkennen, prototypen en testen zonder dat u code hoeft uit te voeren. Op deze pagina kunt u snel nieuwe ideeën herhalen en experimenteren.
De speeltuin biedt verschillende opties om uw assistent te configureren. In de volgende stappen gebruikt u het installatievenster om een nieuwe AI-assistent te maken.
Naam Beschrijving Naam assistent Uw implementatienaam die is gekoppeld aan een specifiek model. Instructies Instructies zijn vergelijkbaar met systeemberichten. Hier geeft u de modelrichtlijnen over het gedrag en de context waarnaar wordt verwezen bij het genereren van een antwoord. U kunt de persoonlijkheid van de assistent beschrijven, vertellen wat het wel en niet moet beantwoorden en hoe u antwoorden kunt opmaken. U kunt ook voorbeelden geven van de stappen die moeten worden uitgevoerd bij het beantwoorden van antwoorden. Implementatie Hier stelt u in welke modelimplementatie u wilt gebruiken met uw assistent. Functies Maak aangepaste functiedefinities voor de modellen om API-aanroepen te formuleren en gegevensuitvoer te structuren op basis van uw specificaties. Niet gebruikt in deze quickstart. Code-interpreter Code-interpreter biedt toegang tot een Python-omgeving in de sandbox die kan worden gebruikt om het model toe te staan code te testen en uit te voeren. Bestanden U kunt maximaal 10.000 bestanden uploaden, met een maximale bestandsgrootte van 512 MB voor gebruik met hulpprogramma's. Niet gebruikt in deze quickstart.
Uw eerste assistent maken
Selecteer uw implementatie in de vervolgkeuzelijst Implementaties .
Selecteer nieuwe assistent in de vervolgkeuzelijst Configuratieassistent.
Geef uw assistent een naam.
Voer de volgende instructies in: 'U bent een AI-assistent die code kan schrijven om wiskundige vragen te beantwoorden'
Selecteer een modelimplementatie. We raden u aan te testen met een van de nieuwste gpt-4-modellen.
Selecteer de wisselknop voor het inschakelen van de code-interpreter.
Selecteer Opslaan.
Voer een vraag in voor de assistent die moet worden beantwoord: "Ik moet de vergelijking
3x + 11 = 14
oplossen. Kun je me helpen?"Selecteer de knop Toevoegen en uitvoeren
The solution to the equation (3x + 11 = 14) is (x = 1).
Hoewel we kunnen zien dat het antwoord juist is, om te bevestigen dat het model code-interpreter heeft gebruikt om dit antwoord te bereiken en dat de code die het heeft geschreven, geldig is in plaats van alleen een antwoord te herhalen op basis van de trainingsgegevens van het model, stellen we een andere vraag.
Voer de vervolgvraag in: 'Toon de code die u hebt uitgevoerd om deze oplossing op te halen'.
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.
U kunt ook de logboeken in het rechterdeelvenster raadplegen om te bevestigen dat de code-interpreter is gebruikt en om de code te valideren die is uitgevoerd om het antwoord te genereren. Het is belangrijk te onthouden dat terwijl code-interpreter het model de mogelijkheid biedt om te reageren op complexere wiskundige vragen door de vragen te converteren naar code en uit te voeren in een Python-omgeving in een sandbox, moet u nog steeds het antwoord valideren om te bevestigen dat het model uw vraag correct heeft vertaald in een geldige weergave in code.
Belangrijke concepten
Houd bij het gebruik van de assistentspeeltuin rekening met de volgende concepten.
Hulpprogramma's
Een individuele assistent heeft toegang tot maximaal 128 hulpprogramma's, waaronder code interpreter
, evenals eventuele aangepaste hulpprogramma's die u maakt via functies.
Chatsessie
Chatsessie ook wel een thread genoemd in de API van de assistent is waar het gesprek tussen de gebruiker en assistent plaatsvindt. In tegenstelling tot traditionele chat-voltooiingsgesprekken is er geen limiet voor het aantal berichten in een thread. De assistent comprimeert automatisch aanvragen om aan de limiet voor het invoertoken van het model te voldoen.
Dit betekent ook dat u niet controleert hoeveel tokens tijdens elke keer van het gesprek aan het model worden doorgegeven. Het beheren van tokens wordt weggeabstraheerd en volledig afgehandeld door de Assistants-API.
Selecteer de knop Chat wissen om de huidige gespreksgeschiedenis te verwijderen.
Onder het tekstvak voor tekstinvoer bevinden zich twee knoppen:
- Voeg een bericht toe zonder uitvoering.
- Toevoegen en uitvoeren.
Logboeken
Logboeken bieden een gedetailleerde momentopname van wat de API-activiteit van de assistent is.
Panelen weergeven
Standaard zijn er drie panelen: configuratie van assistent, chatsessie en logboeken. Met deelvensters kunt u de panelen toevoegen, verwijderen en opnieuw rangschikken. Als u ooit een paneel sluit en het terug moet krijgen, gebruikt u Deelvensters weergeven om het verloren paneel te herstellen.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
U kunt de assistent of thread ook verwijderen via de API van de assistent.
Zie ook
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure OpenAI Assistants API-voorbeelden
Referentiedocumentatiebibliotheek | broncodepakket | (PyPi) |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Python 3.8 of nieuwere versie
- De volgende Python-bibliotheken: os, openai (versie 1.x is vereist)
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-resource met een compatibel model in een ondersteunde regio.
- We raden u aan de notitie over verantwoordelijke AI-transparantie en andere verantwoordelijke AI-resources te bekijken om vertrouwd te raken met de mogelijkheden en beperkingen van de Azure OpenAI-service.
- Er is een Azure OpenAI-resource met het
gpt-4 (1106-preview)
geïmplementeerde model gebruikt om dit voorbeeld te testen.
Verificatie zonder wachtwoord wordt aanbevolen
Voor verificatie zonder wachtwoord moet u het volgende doen:
- Gebruik het azure-identity-pakket .
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. Dit kan worden gedaan in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen. - Meld u aan met de Azure CLI, zoals
az login
.
Instellingen
- Installeer de OpenAI Python-clientbibliotheek met:
pip install openai
- Voor de aanbevolen verificatie zonder wachtwoord:
pip install azure-identity
Notitie
- Bestanden zoeken kan maximaal 10.000 bestanden per assistent opnemen - 500 keer meer dan voorheen. Het is snel, ondersteunt parallelle query's via zoekopdrachten met meerdere threads en biedt uitgebreide herrankering en herschrijven van query's.
- Vectoropslag is een nieuw object in de API. Zodra een bestand is toegevoegd aan een vectoropslag, wordt het automatisch geparseerd, gesegmenteerd en ingesloten, zodat het kan worden doorzocht. Vectoropslag kunnen worden gebruikt voor assistenten en threads, waardoor bestandsbeheer en facturering worden vereenvoudigd.
- We hebben ondersteuning toegevoegd voor de
tool_choice
parameter die kan worden gebruikt om het gebruik van een specifiek hulpprogramma (zoals het zoeken van bestanden, code-interpreter of een functie) in een bepaalde uitvoering af te dwingen.
Notitie
Deze bibliotheek wordt onderhouden door OpenAI. Raadpleeg de releasegeschiedenis om de meest recente updates voor de bibliotheek bij te houden.
Sleutel en eindpunt ophalen
Als u een aanroep wilt maken op basis van de Azure OpenAI-service, hebt u het volgende nodig:
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
DEPLOYMENT-NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal of via de pagina Implementaties in de Azure AI Foundry-portal. |
Ga naar uw resource in Azure Portal. De sleutels en het eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Een assistent maken
In onze code gaan we de volgende waarden opgeven:
Naam | Beschrijving |
---|---|
Naam assistent | Uw implementatienaam die is gekoppeld aan een specifiek model. |
Instructies | Instructies zijn vergelijkbaar met systeemberichten. Hier geeft u de modelrichtlijnen over het gedrag en de context waarnaar wordt verwezen bij het genereren van een antwoord. U kunt de persoonlijkheid van de assistent beschrijven, vertellen wat het wel en niet moet beantwoorden en hoe u antwoorden kunt opmaken. U kunt ook voorbeelden geven van de stappen die moeten worden uitgevoerd bij het beantwoorden van antwoorden. |
Model | Hier stelt u in welke modelimplementatienaam u wilt gebruiken met uw assistent. Het hulpprogramma voor ophalen vereist gpt-35-turbo (1106) of gpt-4 (1106-preview) model. Stel deze waarde in op uw implementatienaam, niet op de naam van het model, tenzij deze hetzelfde is. |
Code-interpreter | Code-interpreter biedt toegang tot een Python-omgeving in de sandbox die kan worden gebruikt om het model toe te staan code te testen en uit te voeren. |
Hulpprogramma's
Een individuele assistent heeft toegang tot maximaal 128 hulpprogramma's, waaronder code interpreter
, evenals eventuele aangepaste hulpprogramma's die u maakt via functies.
De Python-app maken
Meld u aan bij Azure en az login
maak en voer een assistent uit met het volgende aanbevolen python-voorbeeld zonder wachtwoord:
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))
Als u de service-API-sleutel voor verificatie wilt gebruiken, kunt u een assistent maken en uitvoeren met het volgende Python-voorbeeld:
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))
Uitvoer
Uitvoeren voltooid met status: voltooid
{
"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
}
Inzicht in uw resultaten
In dit voorbeeld maken we een assistent waarvoor code-interpreter is ingeschakeld. Wanneer we de assistent een wiskundige vraag stellen, wordt de vraag omgezet in Python-code en wordt de code uitgevoerd in een sandboxomgeving om het antwoord op de vraag te bepalen. De code die het model maakt en test om een antwoord te bereiken, is:
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
Het is belangrijk te onthouden dat terwijl code-interpreter het model de mogelijkheid biedt om te reageren op complexere query's door de vragen te converteren naar code en die code iteratief uit te voeren in de Python-sandbox totdat deze een oplossing bereikt, moet u nog steeds het antwoord valideren om te bevestigen dat het model uw vraag correct heeft vertaald in een geldige weergave in code.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Zie ook
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure OpenAI Assistants API-voorbeelden
Broncodepakket voor referentiedocumentatie | | (NuGet)
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- De .NET 8 SDK
- Een Azure OpenAI-resource met een compatibel model in een ondersteunde regio.
- We raden u aan de notitie over verantwoordelijke AI-transparantie en andere verantwoordelijke AI-resources te bekijken om vertrouwd te raken met de mogelijkheden en beperkingen van de Azure OpenAI-service.
- Er is een Azure OpenAI-resource met het
gpt-4 (1106-preview)
geïmplementeerde model gebruikt om dit voorbeeld te testen.
Instellingen
Een nieuwe .NET Core-app maken
Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de
dotnet new
opdracht om een nieuwe console-app te maken met de naamazure-openai-quickstart
:dotnet new console -n azure-openai-assistants-quickstart
Ga naar de map van de zojuist gemaakte app-map en bouw de app met de
dotnet build
opdracht:dotnet build
De build-uitvoer mag geen waarschuwingen of fouten bevatten.
... Build succeeded. 0 Warning(s) 0 Error(s) ...
Installeer de OpenAI .NET-clientbibliotheek met de opdracht dotnet add package :
dotnet add package Azure.AI.OpenAI --prerelease
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u een eindpunt en een sleutel nodig.
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
Ga naar uw resource in Azure Portal. De sectie Sleutels en eindpunt vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Verificatie zonder wachtwoord wordt aanbevolen
Verificatie zonder wachtwoord is veiliger dan alternatieven op basis van sleutels en is de aanbevolen methode voor het maken van verbinding met Azure-services. Als u verificatie zonder wachtwoord kiest, moet u het volgende voltooien:
Voeg het pakket
Azure.Identity
toe.dotnet add package Azure.Identity
Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. Dit kan worden gedaan in Azure Portal op uw OpenAI-resource onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.Meld u via Visual Studio of de Azure CLI
az login
aan bij Azure.
De assistent maken
Werk het Program.cs
bestand bij met de volgende code om een assistent te maken:
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();
}
Voer de app uit met behulp van de dotnet run
opdracht:
dotnet run
De console-uitvoer moet er ongeveer als volgt uitzien:
[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!
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Zie ook
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure OpenAI Assistants API-voorbeelden
Referentiedocumentatiebibliotheek | broncodepakket | (npm) |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Node.js LTS- of ESM-ondersteuning.
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-resource met een compatibel model in een ondersteunde regio.
- We raden u aan de notitie over verantwoordelijke AI-transparantie en andere verantwoordelijke AI-resources te bekijken om vertrouwd te raken met de mogelijkheden en beperkingen van de Azure OpenAI-service.
- Er is een Azure OpenAI-resource met het
gpt-4 (1106-preview)
geïmplementeerde model gebruikt om dit voorbeeld te testen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Instellingen
Maak een nieuwe map
assistants-quickstart
die de toepassing bevat en open Visual Studio Code in die map met de volgende opdracht:mkdir assistants-quickstart && code assistants-quickstart
Maak de
package.json
opdracht met de volgende opdracht:npm init -y
Werk de
package.json
app bij naar ECMAScript met de volgende opdracht:npm pkg set type=module
Installeer de OpenAI Assistant-clientbibliotheek voor JavaScript met:
npm install openai
Voor de aanbevolen verificatie zonder wachtwoord:
npm install @azure/identity
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Weergegeven als |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
Let op
Als u de aanbevolen sleutelloze verificatie met de SDK wilt gebruiken, moet u ervoor zorgen dat de AZURE_OPENAI_API_KEY
omgevingsvariabele niet is ingesteld.
Een assistent maken
In onze code geven we de volgende waarden op:
Naam | Beschrijving |
---|---|
Naam assistent | Uw implementatienaam die is gekoppeld aan een specifiek model. |
Instructies | Instructies zijn vergelijkbaar met systeemberichten. Hier geeft u de modelrichtlijnen over het gedrag en de context waarnaar wordt verwezen bij het genereren van een antwoord. U kunt de persoonlijkheid van de assistent beschrijven, vertellen wat het wel en niet moet beantwoorden en hoe u antwoorden kunt opmaken. U kunt ook voorbeelden geven van de stappen die moeten worden uitgevoerd bij het beantwoorden van antwoorden. |
Model | Dit is de implementatienaam. |
Code-interpreter | Code-interpreter biedt toegang tot een Python-omgeving in de sandbox die kan worden gebruikt om het model toe te staan code te testen en uit te voeren. |
Hulpprogramma's
Een afzonderlijke assistent heeft toegang tot maximaal 128 hulpprogramma's, inclusief code interpreter
en eventuele aangepaste hulpprogramma's die u maakt via functies.
Een nieuwe JavaScript-toepassing maken
Maak het
index.js
bestand met de volgende code: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 Foundry portal 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)}`); } } }
Meld u aan bij Azure met de volgende opdracht:
az login
Voer het JavaScript-bestand uit.
node index.js
Uitvoer
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?"
Het is belangrijk te onthouden dat terwijl de code-interpreter het model de mogelijkheid biedt om te reageren op complexere query's door de vragen te converteren naar code en die code iteratief uit te voeren in JavaScript totdat deze een oplossing bereikt, moet u nog steeds het antwoord valideren om te bevestigen dat het model uw vraag correct heeft vertaald in een geldige weergave in code.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Voorbeeldcode
Zie ook
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure OpenAI Assistants API-voorbeelden
Referentiedocumentatiebibliotheek | broncodepakket | (npm) |
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Node.js LTS- of ESM-ondersteuning.
- TypeScript globaal geïnstalleerd
- Azure CLI die wordt gebruikt voor verificatie zonder wachtwoord in een lokale ontwikkelomgeving, maakt de benodigde context door u aan te melden met de Azure CLI.
- Een Azure OpenAI-resource met een compatibel model in een ondersteunde regio.
- We raden u aan de notitie over verantwoordelijke AI-transparantie en andere verantwoordelijke AI-resources te bekijken om vertrouwd te raken met de mogelijkheden en beperkingen van de Azure OpenAI-service.
- Er is een Azure OpenAI-resource met het
gpt-4 (1106-preview)
geïmplementeerde model gebruikt om dit voorbeeld te testen.
Vereisten voor Microsoft Entra-id
Voor de aanbevolen sleutelloze verificatie met Microsoft Entra-id moet u het volgende doen:
- Installeer de Azure CLI die wordt gebruikt voor sleutelloze verificatie met Microsoft Entra-id.
- Wijs de
Cognitive Services User
rol toe aan uw gebruikersaccount. U kunt rollen toewijzen in Azure Portal onder Toegangsbeheer (IAM)>Roltoewijzing toevoegen.
Instellingen
Maak een nieuwe map
assistants-quickstart
die de toepassing bevat en open Visual Studio Code in die map met de volgende opdracht:mkdir assistants-quickstart && code assistants-quickstart
Maak de
package.json
opdracht met de volgende opdracht:npm init -y
Werk de
package.json
app bij naar ECMAScript met de volgende opdracht:npm pkg set type=module
Installeer de OpenAI Assistant-clientbibliotheek voor JavaScript met:
npm install openai
Voor de aanbevolen verificatie zonder wachtwoord:
npm install @azure/identity
Resourcegegevens ophalen
U moet de volgende informatie ophalen om uw toepassing te verifiëren met uw Azure OpenAI-resource:
Naam van de variabele | Weergegeven als |
---|---|
AZURE_OPENAI_ENDPOINT |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het controleren van uw resource vanuit Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder Resource Management>Model Deployments in Azure Portal. |
OPENAI_API_VERSION |
Meer informatie over API-versies. |
Meer informatie over sleutelloze verificatie en het instellen van omgevingsvariabelen.
Let op
Als u de aanbevolen sleutelloze verificatie met de SDK wilt gebruiken, moet u ervoor zorgen dat de AZURE_OPENAI_API_KEY
omgevingsvariabele niet is ingesteld.
Een assistent maken
In onze code geven we de volgende waarden op:
Naam | Beschrijving |
---|---|
Naam assistent | Uw implementatienaam die is gekoppeld aan een specifiek model. |
Instructies | Instructies zijn vergelijkbaar met systeemberichten. Hier geeft u de modelrichtlijnen over het gedrag en de context waarnaar wordt verwezen bij het genereren van een antwoord. U kunt de persoonlijkheid van de assistent beschrijven, vertellen wat het wel en niet moet beantwoorden en hoe u antwoorden kunt opmaken. U kunt ook voorbeelden geven van de stappen die moeten worden uitgevoerd bij het beantwoorden van antwoorden. |
Model | Dit is de implementatienaam. |
Code-interpreter | Code-interpreter biedt toegang tot een Python-omgeving in de sandbox die kan worden gebruikt om het model toe te staan code te testen en uit te voeren. |
Hulpprogramma's
Een afzonderlijke assistent heeft toegang tot maximaal 128 hulpprogramma's, inclusief code interpreter
en eventuele aangepaste hulpprogramma's die u maakt via functies.
Een nieuwe TypeScript-toepassing maken
Maak het
index.ts
bestand met de volgende code: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 Foundry portal 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)}`); } } }
Maak het
tsconfig.json
bestand om de TypeScript-code te transpileren en kopieer de volgende code voor 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"] }
Transpile van TypeScript naar JavaScript.
tsc
Meld u aan bij Azure met de volgende opdracht:
az login
Voer de code uit met de volgende opdracht:
node index.js
Uitvoer
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?"
Het is belangrijk te onthouden dat terwijl de code-interpreter het model de mogelijkheid biedt om te reageren op complexere query's door de vragen te converteren naar code en die code iteratief uit te voeren in JavaScript totdat deze een oplossing bereikt, moet u nog steeds het antwoord valideren om te bevestigen dat het model uw vraag correct heeft vertaald in een geldige weergave in code.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Voorbeeldcode
Zie ook
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure OpenAI Assistants API-voorbeelden
Vereisten
- Een Azure-abonnement - Een gratis abonnement maken
- Python 3.8 of nieuwere versie
- Een Azure OpenAI-resource met een compatibel model in een ondersteunde regio.
- We raden u aan de notitie over verantwoordelijke AI-transparantie en andere verantwoordelijke AI-resources te bekijken om vertrouwd te raken met de mogelijkheden en beperkingen van de Azure OpenAI-service.
- Er is een Azure OpenAI-resource met het
gpt-4 (1106-preview)
geïmplementeerde model gebruikt om dit voorbeeld te testen.
Instellingen
Sleutel en eindpunt ophalen
Als u azure OpenAI wilt aanroepen, hebt u het volgende nodig:
Naam van de variabele | Weergegeven als |
---|---|
ENDPOINT |
Het service-eindpunt vindt u in de sectie Sleutels en eindpunten bij het controleren van uw resource vanuit Azure Portal. U kunt het eindpunt ook vinden via de pagina Implementaties in de Azure AI Foundry-portal. Een voorbeeldeindpunt is: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Deze waarde vindt u in de sectie Sleutels en eindpunt bij het onderzoeken van uw resource vanuit de Azure Portal. U kunt KEY1 of KEY2 gebruiken. |
DEPLOYMENT-NAME |
Deze waarde komt overeen met de aangepaste naam die u hebt gekozen voor uw implementatie toen u een model hebt geïmplementeerd. Deze waarde vindt u onder ResourceBeheer-implementaties> in Azure Portal of via de pagina Implementaties in de Azure AI Foundry-portal. |
Ga naar uw resource in Azure Portal. Het eindpunt en de sleutels vindt u in de sectie Resourcebeheer . Kopieer uw eindpunt en toegangssleutel, omdat u beide nodig hebt voor het verifiëren van uw API-aanroepen. U kunt KEY1
of KEY2
gebruiken. Als u altijd twee sleutels hebt, kunt u sleutels veilig roteren en opnieuw genereren zonder een serviceonderbreking te veroorzaken.
Omgevingsvariabelen
Maak en wijs permanente omgevingsvariabelen toe voor uw sleutel en eindpunt.
Belangrijk
Als u een API-sleutel gebruikt, slaat u deze veilig op ergens anders op, zoals in Azure Key Vault. Neem de API-sleutel niet rechtstreeks in uw code op en plaats deze nooit openbaar.
Zie Aanvragen verifiëren bij Azure AI-services voor meer informatie over beveiliging van AI-services.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST-API
Een assistent maken
Notitie
Bij Azure OpenAI is voor de parameter de naam van de model
modelimplementatie vereist. Als de naam van uw modelimplementatie anders is dan de naam van het onderliggende model, past u de code aan. "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"
}'
Hulpprogramma's
Een individuele assistent heeft toegang tot maximaal 128 hulpprogramma's, waaronder code interpreter
, evenals eventuele aangepaste hulpprogramma's die u maakt via functies.
Een thread maken
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d ''
Een gebruikersvraag toevoegen aan de thread
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?"
}'
De thread uitvoeren
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",
}'
De status van de uitvoering ophalen
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Antwoord van assistent
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" \
Inzicht in uw resultaten
In dit voorbeeld maken we een assistent waarvoor code-interpreter is ingeschakeld. Wanneer we de assistent een wiskundige vraag stellen, wordt de vraag omgezet in Python-code en wordt de code uitgevoerd in een sandboxomgeving om het antwoord op de vraag te bepalen. De code die het model maakt en test om een antwoord te bereiken, is:
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
Het is belangrijk te onthouden dat terwijl code-interpreter het model de mogelijkheid biedt om te reageren op complexere query's door de vragen te converteren naar code en die code iteratief uit te voeren in de Python-sandbox totdat deze een oplossing bereikt, moet u nog steeds het antwoord valideren om te bevestigen dat het model uw vraag correct heeft vertaald in een geldige weergave in code.
Resources opschonen
Als u een Azure OpenAI-resource wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.
Zie ook
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure OpenAI Assistants API-voorbeelden