Dela via


Snabbstart: Kom igång med Hjälp av Azure OpenAI-assistenter (förhandsversion)

Med Azure OpenAI Assistants (förhandsgranska) kan du skapa AI-assistenter som är skräddarsydda för dina behov med hjälp av anpassade instruktioner och utökade med avancerade verktyg som kodtolkare och anpassade funktioner.

Viktigt!

Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Förutsättningar

Gå till Azure AI Studio (förhandsversion)

Med Azure AI Studio kan du använda Assistants v2 som tillhandahåller flera uppgraderingar, till exempel filsökningsverktyget som går snabbare och har stöd för fler filer.

  1. Logga in på Azure AI Studio.

  2. Gå till projektet eller skapa ett nytt projekt i Azure AI Studio.

  3. I projektöversikten väljer du Assistenter, som finns under lekplatser.

    Med assistenternas lekplats kan du utforska, prototypa och testa AI-assistenter utan att behöva köra någon kod. Från den här sidan kan du snabbt iterera och experimentera med nya idéer.

    På lekplatsen finns flera alternativ för att konfigurera assistenten. I följande steg använder du installationsfönstret för att skapa en ny AI-assistent.

    Namn Beskrivning
    Assistentens namn Ditt distributionsnamn som är associerat med en specifik modell.
    Instruktioner Instruktioner liknar systemmeddelanden där du ger modellen vägledning om hur den ska bete sig och vilket sammanhang den bör referera till när du genererar ett svar. Du kan beskriva assistentens personlighet, berätta vad den ska och inte ska svara på och tala om för den hur svar ska formateras. Du kan också ge exempel på de steg som ska utföras när du svarar på svar.
    Distribution Det är här du anger vilken modelldistribution som ska användas med din assistent.
    Funktioner Skapa anpassade funktionsdefinitioner för modellerna för att formulera API-anrop och strukturera datautdata baserat på dina specifikationer. Används inte i den här snabbstarten.
    Kodtolkare Kodtolkare ger åtkomst till en python-miljö i sandbox-miljö som kan användas för att tillåta modellen att testa och köra kod.
    Filer Du kan ladda upp upp till 10 000 filer med en maximal filstorlek på 512 MB att använda med verktyg. Används inte i den här snabbstarten.

    Skärmbild av skärmen Assistentkonfiguration utan att alla värden har fyllts i.

Skapa din första assistent

  1. Välj din distribution i listrutan Distributioner .

  2. I listrutan Assistentkonfiguration väljer du Ny assistent.

  3. Ge assistenten ett namn.

  4. Ange följande instruktioner "Du är en AI-assistent som kan skriva kod för att besvara matematiska frågor"

  5. Välj en modelldistribution. Vi rekommenderar att du testar med en av de senaste gpt-4-modellerna.

  6. Välj växlingsknappen aktiverande kodtolkare.

  7. Välj Spara.

    Skärmbild av assistenten med konfigurationsinformation angiven.

  8. Ange en fråga som assistenten ska besvara: "Jag måste lösa ekvationen 3x + 11 = 14. Kan du hjälpa mig?"

  9. Välj knappen Lägg till och kör

    The solution to the equation (3x + 11 = 14) is (x = 1).
    

    Vi kan se att svaret är korrekt, men för att bekräfta att modellen använde kodtolk för att komma åt det här svaret och att koden den skrev är giltig i stället för att bara upprepa ett svar från modellens träningsdata ställer vi en annan fråga.

  10. Ange uppföljningsfrågan: "Visa den kod du körde för att hämta den här lösningen."

    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.
    

    Skärmbild av konversationssessionen i assistentens lekplats.

Du kan också läsa loggarna i den högra panelen för att bekräfta att kodtolkaren användes och verifiera koden som kördes för att generera svaret. Det är viktigt att komma ihåg att även om kodtolkaren ger modellen möjlighet att svara på mer komplexa matematiska frågor genom att konvertera frågorna till kod och köra i en python-miljö i begränsat läge, måste du fortfarande verifiera svaret för att bekräfta att modellen korrekt översatte din fråga till en giltig representation i kod.

Nyckelbegrepp

Tänk på följande begrepp när du använder assistenternas lekplats.

Verktyg

En enskild assistent kan komma åt upp till 128 verktyg, inklusive code interpreter, samt alla anpassade verktyg som du skapar via funktioner.

Chatt-session

Chattsessionen kallas även för en tråd i assistentens API där konversationen mellan användaren och assistenten sker. Till skillnad från traditionella samtal för chatten finns det ingen gräns för antalet meddelanden i en tråd. Assistenten komprimerar automatiskt begäranden för att passa indatatokens gräns för modellen.

Det innebär också att du inte styr hur många token som skickas till modellen under varje konversationsvändning. Hantering av token abstraheras bort och hanteras helt av API:et Assistants.

Välj knappen Rensa chatt för att ta bort den aktuella konversationshistoriken.

Under textrutan finns två knappar:

  • Lägg till ett meddelande utan körning.
  • Lägg till och kör.

Loggar

Loggar ger en detaljerad ögonblicksbild av vad api-aktiviteten för assistenten.

Visa paneler

Som standard finns det tre paneler: assistentkonfiguration, chattsession och loggar. Med Visa paneler kan du lägga till, ta bort och ordna om panelerna. Om du någonsin stänger en panel och behöver få tillbaka den använder du Visa paneler för att återställa den förlorade panelen.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Du kan också ta bort assistenten eller tråden via assistentens API.

Se även

ReferensdokumentationEns källkodspaket | för bibliotek (PyPi) | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Python 3.8 eller senare version
  • Följande Python-bibliotek: os, openai (version 1.x krävs)
  • Azure CLI används för lösenordslös autentisering i en lokal utvecklingsmiljö och skapar den nödvändiga kontexten genom att logga in med Azure CLI.
  • En Azure OpenAI-resurs med en kompatibel modell i en region som stöds.
  • Vi rekommenderar att du läser transparensanteckningen ansvarsfull AI och andra ansvarsfulla AI-resurser för att bekanta dig med funktionerna och begränsningarna i Azure OpenAI-tjänsten.
  • En Azure OpenAI-resurs med den gpt-4 (1106-preview) distribuerade modellen användes för att testa det här exemplet.

För lösenordslös autentisering måste du

  1. Använd azure-identity-paketet.
  2. Cognitive Services User Tilldela rollen till ditt användarkonto. Detta kan göras i Azure Portal under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
  3. Logga in med Azure CLI, till exempel az login.

Konfigurera

  1. Installera OpenAI Python-klientbiblioteket med:
pip install openai
  1. För den rekommenderade lösenordslösa autentiseringen:
pip install azure-identity

Kommentar

  • Filsökning kan mata in upp till 10 000 filer per assistent – 500 gånger mer än tidigare. Den är snabb, stöder parallella frågor via sökningar med flera trådar och funktioner för förbättrad omrankning och omskrivning av frågor.
    • Vector Store är ett nytt objekt i API:et. När en fil har lagts till i ett vektorlager parsas den automatiskt, segmenteras och bäddas in och görs redo att sökas igenom. Vektorlager kan användas mellan assistenter och trådar, vilket förenklar filhantering och fakturering.
  • Vi har lagt till stöd för parametern tool_choice som kan användas för att tvinga fram användningen av ett specifikt verktyg (till exempel filsökning, kodtolkare eller en funktion) i en viss körning.

Kommentar

Det här biblioteket underhålls av OpenAI. Se versionshistoriken för att spåra de senaste uppdateringarna i biblioteket.

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI-tjänsten behöver du följande:

Variabelnamn Värde
ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal. Du hittar även slutpunkten via sidan Distributioner i Azure AI Studio. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal. Du kan använda antingen KEY1 eller KEY2.
DEPLOYMENT-NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure Portal eller via sidan Distributioner i Azure AI Studio.

Gå till resursen i Azure Portal. Nycklar och slutpunkt finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsbladet för en Azure OpenAI-resurs i Azure Portal med platsen slutpunkt och åtkomstnycklar inringad i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Skapa en assistent

I vår kod ska vi ange följande värden:

Namn Beskrivning
Assistentens namn Ditt distributionsnamn som är associerat med en specifik modell.
Instruktioner Instruktioner liknar systemmeddelanden där du ger modellen vägledning om hur den ska bete sig och vilket sammanhang den bör referera till när du genererar ett svar. Du kan beskriva assistentens personlighet, berätta vad den ska och inte ska svara på och tala om för den hur svar ska formateras. Du kan också ge exempel på de steg som ska utföras när du svarar på svar.
Modell Det är här du anger vilket modelldistributionsnamn som ska användas med din assistent. Hämtningsverktyget kräver gpt-35-turbo (1106) eller gpt-4 (1106-preview) modellerar. Ange det här värdet till distributionsnamnet, inte modellnamnet om det inte är samma.
Kodtolkare Kodtolkare ger åtkomst till en python-miljö i sandbox-miljö som kan användas för att tillåta modellen att testa och köra kod.

Verktyg

En enskild assistent kan komma åt upp till 128 verktyg, inklusive code interpreter, samt alla anpassade verktyg som du skapar via funktioner.

Skapa Python-appen

Logga in på Azure med az login skapa och kör sedan en assistent med följande rekommenderade lösenordslösa Python-exempel:

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))

Om du vill använda tjänstens API-nyckel för autentisering kan du skapa och köra en assistent med följande Python-exempel:

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))

Output

Körningen har slutförts med status: slutförd

{
  "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
}

Förstå dina resultat

I det här exemplet skapar vi en assistent med kodtolkaren aktiverad. När vi ställer en matematisk fråga till assistenten översätter den frågan till python-kod och kör koden i sandbox-miljön för att fastställa svaret på frågan. Koden som modellen skapar och testar för att komma fram till ett svar är:

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  

Det är viktigt att komma ihåg att även om kodtolkaren ger modellen möjlighet att svara på mer komplexa frågor genom att konvertera frågorna till kod och köra koden iterativt i Python-sandbox-miljön tills den når en lösning, måste du fortfarande verifiera svaret för att bekräfta att modellen korrekt översatte din fråga till en giltig representation i kod.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Se även

Referensdokumentation Källkodspaket | (NuGet) |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • .NET 8 SDK
  • En Azure OpenAI-resurs med en kompatibel modell i en region som stöds.
  • Vi rekommenderar att du läser transparensanteckningen ansvarsfull AI och andra ansvarsfulla AI-resurser för att bekanta dig med funktionerna och begränsningarna i Azure OpenAI-tjänsten.
  • En Azure OpenAI-resurs med den gpt-4 (1106-preview) distribuerade modellen användes för att testa det här exemplet.

Konfigurera

Skapa en ny .NET Core-app

  1. I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du dotnet new kommandot för att skapa en ny konsolapp med namnet azure-openai-quickstart:

    dotnet new console -n azure-openai-assistants-quickstart
    
  2. Ändra till katalogen för den nyligen skapade appmappen och skapa appen med dotnet build kommandot :

    dotnet build
    

    Kompileringsutdata får inte innehålla några varningar eller fel.

    ...
    Build succeeded.
     0 Warning(s)
     0 Error(s)
    ...
    
  3. Installera OpenAI .NET-klientbiblioteket med kommandot dotnet add package:

    dotnet add package Azure.AI.OpenAI --prerelease
    

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du en slutpunkt och en nyckel.

Variabelnamn Värde
ENDPOINT Tjänstslutpunkten finns i avsnittet Nycklar och slutpunkter när du undersöker resursen från Azure Portal. Du kan också hitta slutpunkten via sidan Distributioner i Azure AI Studio. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.

Gå till resursen i Azure Portal. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsgränssnittet för en Azure OpenAI-resurs i Azure Portal med slutpunkten och åtkomstnycklarnas plats inringad i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Lösenordsfri autentisering är säkrare än nyckelbaserade alternativ och är den rekommenderade metoden för att ansluta till Azure-tjänster. Om du väljer Lösenordslös autentisering måste du slutföra följande:

  1. Lägg till paketet Azure.Identity.

    dotnet add package Azure.Identity
    
  2. Cognitive Services User Tilldela rollen till ditt användarkonto. Detta kan göras i Azure Portal på din OpenAI-resurs under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.

  3. Logga in på Azure med Visual Studio eller Azure CLI via az login.

Skapa assistenten

Program.cs Uppdatera filen med följande kod för att skapa en assistent:

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();
}

Kör appen med kommandot dotnet run :

dotnet run

Konsolens utdata bör likna följande:

[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!

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Se även

ReferensdokumentationEns källkodspaket | för bibliotek (npm) | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Node.js LTS- eller ESM-stöd.
  • Azure CLI används för lösenordslös autentisering i en lokal utvecklingsmiljö och skapar den nödvändiga kontexten genom att logga in med Azure CLI.
  • En Azure OpenAI-resurs med en kompatibel modell i en region som stöds.
  • Vi rekommenderar att du läser transparensanteckningen ansvarsfull AI och andra ansvarsfulla AI-resurser för att bekanta dig med funktionerna och begränsningarna i Azure OpenAI-tjänsten.
  • En Azure OpenAI-resurs med den gpt-4 (1106-preview) distribuerade modellen användes för att testa det här exemplet.

För nyckellös autentisering måste du

  1. Använd paketet @azure/identity .
  2. Cognitive Services User Tilldela rollen till ditt användarkonto. Detta kan göras i Azure Portal under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
  3. Logga in med Azure CLI, till exempel az login.

Konfigurera

  1. Skapa en ny mapp assistants-quickstart som ska innehålla programmet och öppna Visual Studio Code i mappen med följande kommando:

    mkdir assistants-quickstart && code assistants-quickstart
    
  2. package.json Skapa med följande kommando:

    npm init -y
    
  3. package.json Uppdatera till ECMAScript med följande kommando:

    npm pkg set type=module
    
  4. Installera OpenAI Assistants-klientbiblioteket för JavaScript med:

    npm install openai
    
  5. För den rekommenderade lösenordslösa autentiseringen:

    npm install @azure/identity
    

Hämta resursinformation

Variabelnamn Värde
AZURE_OPENAI_ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure Portal.
OPENAI_API_VERSION Läs mer om API-versioner.

Läs mer om nyckellös autentisering och inställning av miljövariabler.

Varning

Om du vill använda den rekommenderade nyckellösa autentiseringen med SDK:t kontrollerar du att AZURE_OPENAI_API_KEY miljövariabeln inte har angetts.

Skapa en assistent

I vår kod ska vi ange följande värden:

Namn Beskrivning
Assistentens namn Ditt distributionsnamn som är associerat med en specifik modell.
Instruktioner Instruktioner liknar systemmeddelanden där du ger modellen vägledning om hur den ska bete sig och vilket sammanhang den bör referera till när du genererar ett svar. Du kan beskriva assistentens personlighet, berätta vad den ska och inte ska svara på och tala om för den hur svar ska formateras. Du kan också ge exempel på de steg som ska utföras när du svarar på svar.
Modell Det här är distributionsnamnet.
Kodtolkare Kodtolkare ger åtkomst till en python-miljö i sandbox-miljö som kan användas för att tillåta modellen att testa och köra kod.

Verktyg

En enskild assistent kan komma åt upp till 128 verktyg, inklusive code interpreter, och alla anpassade verktyg som du skapar via funktioner.

Skapa ett nytt JavaScript-program

  1. index.js Skapa filen med följande kod:

    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)}`);
        }
      }
    }
    
  2. Logga in på Azure med följande kommando:

    az login
    
  3. Kör JavaScript-filen.

    node index.js
    

Output

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?"

Det är viktigt att komma ihåg att medan kodtolkaren ger modellen möjlighet att svara på mer komplexa frågor genom att konvertera frågorna till kod och köra koden iterativt i JavaScript tills den når en lösning, måste du fortfarande verifiera svaret för att bekräfta att modellen korrekt översatte din fråga till en giltig representation i kod.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Exempelkod

Se även

ReferensdokumentationEns källkodspaket | för bibliotek (npm) | |

Förutsättningar

  • En Azure-prenumeration – Skapa en kostnadsfritt
  • Node.js LTS- eller ESM-stöd.
  • TypeScript installerat globalt
  • Azure CLI används för lösenordslös autentisering i en lokal utvecklingsmiljö och skapar den nödvändiga kontexten genom att logga in med Azure CLI.
  • En Azure OpenAI-resurs med en kompatibel modell i en region som stöds.
  • Vi rekommenderar att du läser transparensanteckningen ansvarsfull AI och andra ansvarsfulla AI-resurser för att bekanta dig med funktionerna och begränsningarna i Azure OpenAI-tjänsten.
  • En Azure OpenAI-resurs med den gpt-4 (1106-preview) distribuerade modellen användes för att testa det här exemplet.

För lösenordslös autentisering måste du

  1. Använd paketet @azure/identity .
  2. Cognitive Services User Tilldela rollen till ditt användarkonto. Detta kan göras i Azure Portal under Åtkomstkontroll (IAM)>Lägg till rolltilldelning.
  3. Logga in med Azure CLI, till exempel az login.

Konfigurera

  1. Skapa en ny mapp assistants-quickstart som ska innehålla programmet och öppna Visual Studio Code i mappen med följande kommando:

    mkdir assistants-quickstart && code assistants-quickstart
    
  2. package.json Skapa med följande kommando:

    npm init -y
    
  3. package.json Uppdatera till ECMAScript med följande kommando:

    npm pkg set type=module
    
  4. Installera OpenAI Assistants-klientbiblioteket för JavaScript med:

    npm install openai
    
  5. För den rekommenderade lösenordslösa autentiseringen:

    npm install @azure/identity
    

Hämta resursinformation

Variabelnamn Värde
AZURE_OPENAI_ENDPOINT Det här värdet finns i avsnittet Nycklar och slutpunkter när du undersöker din resurs från Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsmodelldistributioner> i Azure Portal.
OPENAI_API_VERSION Läs mer om API-versioner.

Läs mer om nyckellös autentisering och inställning av miljövariabler.

Varning

Om du vill använda den rekommenderade nyckellösa autentiseringen med SDK:t kontrollerar du att AZURE_OPENAI_API_KEY miljövariabeln inte har angetts.

Skapa en assistent

I vår kod ska vi ange följande värden:

Namn Beskrivning
Assistentens namn Ditt distributionsnamn som är associerat med en specifik modell.
Instruktioner Instruktioner liknar systemmeddelanden där du ger modellen vägledning om hur den ska bete sig och vilket sammanhang den bör referera till när du genererar ett svar. Du kan beskriva assistentens personlighet, berätta vad den ska och inte ska svara på och tala om för den hur svar ska formateras. Du kan också ge exempel på de steg som ska utföras när du svarar på svar.
Modell Det här är distributionsnamnet.
Kodtolkare Kodtolkare ger åtkomst till en python-miljö i sandbox-miljö som kan användas för att tillåta modellen att testa och köra kod.

Verktyg

En enskild assistent kan komma åt upp till 128 verktyg, inklusive code interpreter, och alla anpassade verktyg som du skapar via funktioner.

Skapa ett nytt TypeScript-program

  1. index.ts Skapa filen med följande kod:

    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)}`);
        }
      }
    }
    
  2. tsconfig.json Skapa filen för att transpilera TypeScript-koden och kopiera följande kod för 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"]
    }
    
  3. Transpilera från TypeScript till JavaScript.

    tsc
    
  4. Logga in på Azure med följande kommando:

    az login
    
  5. Kör koden med följande kommando:

    node index.js
    

Output

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?"

Det är viktigt att komma ihåg att medan kodtolkaren ger modellen möjlighet att svara på mer komplexa frågor genom att konvertera frågorna till kod och köra koden iterativt i JavaScript tills den når en lösning, måste du fortfarande verifiera svaret för att bekräfta att modellen korrekt översatte din fråga till en giltig representation i kod.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Exempelkod

Se även

Förutsättningar

Konfigurera

Hämta nyckel och slutpunkt

Om du vill göra ett anrop mot Azure OpenAI behöver du följande:

Variabelnamn Värde
ENDPOINT Tjänstslutpunkten finns i avsnittet Nycklar och slutpunkter när du undersöker resursen från Azure Portal. Du kan också hitta slutpunkten via sidan Distributioner i Azure AI Studio. En exempelslutpunkt är: https://docs-test-001.openai.azure.com/.
API-KEY Det här värdet finns i avsnittet Nycklar och slutpunkt när du undersöker resursen från Azure-portalen. Du kan använda antingen KEY1 eller KEY2.
DEPLOYMENT-NAME Det här värdet motsvarar det anpassade namn som du valde för distributionen när du distribuerade en modell. Det här värdet finns under Resurshanteringsdistributioner> i Azure Portal eller via sidan Distributioner i Azure AI Studio.

Gå till resursen i Azure Portal. Slutpunkten och nycklarna finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.

Skärmbild av översiktsbladet för en Azure OpenAI-resurs i Azure Portal med platsen slutpunkt och åtkomstnycklar inringad i rött.

Miljövariabler

Skapa och tilldela beständiga miljövariabler för din nyckel och slutpunkt.

Viktigt!

Om du använder en API-nyckel lagrar du den på ett säkert sätt någon annanstans, till exempel i Azure Key Vault. Inkludera inte API-nyckeln direkt i koden och publicera den aldrig offentligt.

Mer information om säkerhet för AI-tjänster finns i Autentisera begäranden till Azure AI-tjänster.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST-API

Skapa en assistent

Kommentar

Med Azure OpenAI kräver parametern model modelldistributionsnamn. Om namnet på modelldistributionen skiljer sig från det underliggande modellnamnet justerar du koden till "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"
  }'

Verktyg

En enskild assistent kan komma åt upp till 128 verktyg, inklusive code interpreter, samt alla anpassade verktyg som du skapar via funktioner.

Skapa en tråd

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d ''

Lägg till en användarfråga i tråden

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?"
    }'

Kör tråden

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",
  }'

Hämta status för körningen

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
  -H "api-key: $AZURE_OPENAI_API_KEY" \

Assistentsvar

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" \

Förstå dina resultat

I det här exemplet skapar vi en assistent med kodtolkaren aktiverad. När vi ställer en matematisk fråga till assistenten översätter den frågan till python-kod och kör koden i sandbox-miljön för att fastställa svaret på frågan. Koden som modellen skapar och testar för att komma fram till ett svar är:

    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  

Det är viktigt att komma ihåg att även om kodtolkaren ger modellen möjlighet att svara på mer komplexa frågor genom att konvertera frågorna till kod och köra koden iterativt i Python-sandbox-miljön tills den når en lösning, måste du fortfarande verifiera svaret för att bekräfta att modellen korrekt översatte din fråga till en giltig representation i kod.

Rensa resurser

Om du vill rensa och ta bort en Azure OpenAI-resurs kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Se även