Sdílet prostřednictvím


Rychlý start: Začínáme používat pomocníky Azure OpenAI (Preview)

Asistenti Azure OpenAI (Náhled) umožňují vytvářet asistenty umělé inteligence přizpůsobené vašim potřebám prostřednictvím vlastních pokynů a jsou rozšířené o pokročilé nástroje, jako je interpret kódu a vlastní funkce.

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

Přechod na Azure AI Studio (Preview)

Azure AI Studio umožňuje používat Asistenty v2, které poskytují několik upgradů, jako je nástroj pro vyhledávání souborů, který je rychlejší a podporuje více souborů.

  1. Přihlaste se k Azure AI Studiu.

  2. Přejděte do projektu nebo vytvořte nový projekt v Azure AI Studiu.

  3. V přehledu projektu vyberte Asistenty umístěné pod dětskými hřištěmi.

    Dětské hřiště Asistenti vám umožní zkoumat, prototypovat a testovat asistenty AI, aniž byste museli spouštět jakýkoli kód. Na této stránce můžete rychle iterovat a experimentovat s novými nápady.

    Dětské hřiště nabízí několik možností konfigurace pomocníka. V následujících krocích použijete podokno nastavení k vytvoření nového asistenta AI.

    Název Popis
    Jméno asistenta Název nasazení, který je přidružený ke konkrétnímu modelu.
    Pokyny Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy.
    Nasazení Tady nastavíte nasazení modelu, které se má použít s vaším asistentem.
    Functions Vytvořte pro modely definice vlastních funkcí, které budou formulovat volání rozhraní API a strukturovat výstupy dat na základě vašich specifikací. V tomto rychlém startu se nepoužívá.
    Interpret kódu Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód.
    Soubory Můžete nahrát až 10 000 souborů s maximální velikostí souboru 512 MB pro použití s nástroji. V tomto rychlém startu se nepoužívá.

    Snímek obrazovky s konfigurací Pomocníka bez vyplněných hodnot

Vytvoření prvního asistenta

  1. V rozevíracím seznamu Nasazení vyberte své nasazení.

  2. V rozevíracím seznamu Nastavení Pomocníka vyberte Nový asistent.

  3. Pojmenujte svého asistenta.

  4. Zadejte následující pokyny: "Jste asistent AI, který může psát kód, který pomáhá zodpovědět matematické otázky"

  5. Vyberte nasazení modelu. Doporučujeme testovat s jedním z nejnovějších modelů gpt-4.

  6. Vyberte přepínač pro povolení interpretu kódu.

  7. Zvolte Uložit.

    Snímek obrazovky asistenta se zadanými podrobnostmi konfigurace

  8. Zadejte otázku, na kterou má asistent odpovědět: "Potřebuji vyřešit rovnici 3x + 11 = 14. Můžeš mi pomoct?"

  9. Vyberte tlačítko Přidat a spustit.

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

    I když vidíme, že odpověď je správná, abychom potvrdili, že model použil interpret kódu k získání této odpovědi a že kód, který napsal, je platný, a ne jen opakování odpovědi z trénovacích dat modelu, položíme další otázku.

  10. Zadejte následující otázku: "Show me the code you ran to get this solution" (Ukaž mi kód, který jste spustili pro získání tohoto řešení).

    Sure. The code is very straightforward
    
    # calculation
    x = (14 - 11) / 3
    x
    
    
    First, we subtract 11 from 14, then divide the result by 3. This gives us the value of x which is 1.0.
    

    Snímek obrazovky s konverzací v dětském hřišti Pomocníka

Můžete také zkontrolovat protokoly na pravém panelu, abyste potvrdili, že se použil interpret kódu, a ověřit kód, který se spustil pro vygenerování odpovědi. Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější matematické otázky tím, že převádí otázky na kód a běží v prostředí Pythonu v izolovaném prostoru(sandbox), stále potřebujete ověřit odpověď, abyste ověřili, že model správně přeložil vaši otázku do platné reprezentace v kódu.

Klíčové koncepty

Při používání dětského hřiště Asistentů mějte na paměti následující koncepty.

Nástroje

Jednotlivý asistent má přístup až k 128 nástrojům, včetně code interpreternástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.

Relace chatu

Chatovací relace označovaná také jako vlákno v rozhraní API asistenta je místo, kde probíhá konverzace mezi uživatelem a asistentem. Na rozdíl od tradičních volání dokončení chatu není nijak omezený počet zpráv ve vlákně. Pomocník automaticky zkomprimuje požadavky tak, aby odpovídal limitu vstupního tokenu modelu.

To také znamená, že během každé konverzace nekontrolujete, kolik tokenů se modelu předá. Správa tokenů se abstrahuje a zpracovává zcela pomocí rozhraní API asistentů.

Pokud chcete odstranit aktuální historii konverzací, vyberte tlačítko Vymazat chat.

Pod textovým vstupním polem jsou dvě tlačítka:

  • Přidejte zprávu bez spuštění.
  • Přidejte a spusťte.

Protokoly

Protokoly poskytují podrobný snímek aktivity rozhraní API asistenta.

Zobrazit panely

Ve výchozím nastavení existují tři panely: nastavení asistenta, chatovací relace a protokoly. Zobrazení panelů umožňuje přidávat, odebírat a měnit uspořádání panelů. Pokud někdy panel zavřete a potřebujete ho vrátit zpět, obnovte ztracený panel pomocí panelu Zobrazit.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Případně můžete pomocníka odstranit nebo vlákno prostřednictvím rozhraní API asistenta.

Viz také

Referenční dokumentace | – Balíček zdrojového kódu | knihovny (PyPi) |

Požadavky

Pro ověřování bez hesla musíte

  1. Použijte balíček azure-identity.
  2. Přiřaďte roli k uživatelskému Cognitive Services User účtu. Můžete to udělat na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role.
  3. Přihlaste se pomocí Azure CLI, například az login.

Nastavení

  1. Nainstalujte klientskou knihovnu OpenAI Pythonu pomocí:
pip install openai
  1. Pro doporučené ověřování bez hesla:
pip install azure-identity

Poznámka:

  • Hledání souborů může ingestovat až 10 000 souborů na asistenta – 500krát více než dříve. Je to rychlý způsob, podporuje paralelní dotazy prostřednictvím vícevláknového vyhledávání a vylepšeného řazení a přepisování dotazů.
    • Vektorové úložiště je nový objekt v rozhraní API. Jakmile se soubor přidá do úložiště vektorů, automaticky se parsuje, zachytá a vloží a připraví k hledání. Vektorová úložiště se dají používat napříč asistenty a vlákny, což zjednodušuje správu souborů a fakturaci.
  • Přidali jsme podporu parametru tool_choice , který se dá použít k vynucení použití konkrétního nástroje (například vyhledávání souborů, interpret kódu nebo funkce) v určitém spuštění.

Poznámka:

Tuto knihovnu udržuje OpenAI. Informace o nejnovějších aktualizacích knihovny najdete v historii verzí.

Načtení klíče a koncového bodu

K úspěšnému volání služby Azure OpenAI budete potřebovat následující:

Název proměnné Hodnota
ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení v Azure AI Studiu. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/.
API-KEY Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.
DEPLOYMENT-NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal nebo na stránce Nasazení v Azure AI Studiu.

Na webu Azure Portal přejděte ke svému prostředku. Klíče a koncový bod najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Snímek obrazovky s oknem přehledu pro prostředek Azure OpenAI na webu Azure Portal s červeným kruhem umístění přístupových klíčů koncového bodu

Proměnné prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Vytvoření asistenta

V našem kódu určíme následující hodnoty:

Název Popis
Jméno asistenta Název nasazení, který je přidružený ke konkrétnímu modelu.
Pokyny Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy.
Model Tady nastavíte název nasazení modelu, který se má použít s vaším asistentem. Nástroj pro načítání vyžaduje gpt-35-turbo (1106) nebo gpt-4 (1106-preview) model. Tuto hodnotu nastavte na název nasazení, ne na název modelu, pokud není stejný.
Interpret kódu Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód.

Nástroje

Jednotlivý asistent má přístup až k 128 nástrojům, včetně code interpreternástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.

Vytvoření aplikace v Pythonu

Přihlaste se k Azure a az login pak vytvořte a spusťte asistenta s následujícím doporučeným příkladem Pythonu bez hesla:

import os
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI

token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_ad_token_provider=token_provider,
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version="2024-05-01-preview",
)

# Create an assistant
assistant = client.beta.assistants.create(
    name="Math Assist",
    instructions="You are an AI assistant that can write code to help answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)

# Create a thread
thread = client.beta.threads.create()

# Add a user question to the thread
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="Please address the user as Jane Doe. The user has a premium account.",
)

print("Run completed with status: " + run.status)

if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.to_json(indent=2))

Pokud chcete použít klíč rozhraní API služby pro ověřování, můžete vytvořit a spustit asistenta s následujícím příkladem Pythonu:

import os
from openai import AzureOpenAI

client = AzureOpenAI(
    api_key=os.environ["AZURE_OPENAI_API_KEY"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version="2024-05-01-preview",
)

# Create an assistant
assistant = client.beta.assistants.create(
    name="Math Assist",
    instructions="You are an AI assistant that can write code to help answer math questions.",
    tools=[{"type": "code_interpreter"}],
    model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)

# Create a thread
thread = client.beta.threads.create()

# Add a user question to the thread
message = client.beta.threads.messages.create(
    thread_id=thread.id,
    role="user",
    content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)

# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
    thread_id=thread.id,
    assistant_id=assistant.id,
    instructions="Please address the user as Jane Doe. The user has a premium account.",
)

print("Run completed with status: " + run.status)

if run.status == "completed":
    messages = client.beta.threads.messages.list(thread_id=thread.id)
    print(messages.to_json(indent=2))

Výstup

Spuštění dokončeno se stavem: dokončeno

{
  "data": [
    {
      "id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
      "assistant_id": "asst_cYqL1RuwLyFV3HU1gkaE2k0K",
      "attachments": [],
      "content": [
        {
          "text": {
            "annotations": [],
            "value": "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
          },
          "type": "text"
        }
      ],
      "created_at": 1716397091,
      "metadata": {},
      "object": "thread.message",
      "role": "assistant",
      "run_id": "run_hFgBPbUtO8ZNTnNPC8PgpH1S",
      "thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
    },
    {
      "id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
      "assistant_id": null,
      "attachments": [],
      "content": [
        {
          "text": {
            "annotations": [],
            "value": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
          },
          "type": "text"
        }
      ],
      "created_at": 1716397025,
      "metadata": {},
      "object": "thread.message",
      "role": "user",
      "run_id": null,
      "thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
    }
  ],
  "object": "list",
  "first_id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
  "last_id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
  "has_more": false
}

Porozumění výsledkům

V tomto příkladu vytvoříme asistenta s povoleným interpretem kódu. Když položíme asistentovi matematickou otázku, přeloží ji do kódu Pythonu a spustí kód v prostředí izolovaného prostoru (sandbox), aby se určila odpověď na otázku. Kód, který model vytvoří a otestuje, aby přišel na odpověď, je:

from sympy import symbols, Eq, solve  
  
# Define the variable  
x = symbols('x')  
  
# Define the equation  
equation = Eq(3*x + 11, 14)  
  
# Solve the equation  
solution = solve(equation, x)  
solution  

Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v sandboxu Pythonu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Viz také

Referenční dokumentace | – Balíček zdrojového kódu | (NuGet)

Požadavky

Nastavení

Vytvoření nové aplikace .NET Core

  1. V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new příkazu vytvořte novou konzolovou aplikaci s názvem azure-openai-quickstart:

    dotnet new console -n azure-openai-assistants-quickstart
    
  2. Přejděte do adresáře nově vytvořené složky aplikace a aplikaci sestavte pomocí dotnet build příkazu:

    dotnet build
    

    Výstup sestavení by neměl obsahovat žádná upozornění ani chyby.

    ...
    Build succeeded.
     0 Warning(s)
     0 Error(s)
    ...
    
  3. Nainstalujte klientskou knihovnu OpenAI .NET pomocí příkazu dotnet add package:

    dotnet add package Azure.AI.OpenAI --prerelease
    

Načtení klíče a koncového bodu

K úspěšnému volání azure OpenAI potřebujete koncový bod a klíč.

Název proměnné Hodnota
ENDPOINT Koncový bod služby najdete v části Klíče a koncový bod při zkoumání vašeho prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení v Azure AI Studiu. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/.
API-KEY Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.

Na webu Azure Portal přejděte ke svému prostředku. Oddíl Klíče a koncový bod najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Snímek obrazovky s přehledovým uživatelským rozhraním pro prostředek Azure OpenAI na webu Azure Portal s červeným kruhem umístění koncového bodu a přístupových klíčů

Proměnné prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Ověřování bez hesla je bezpečnější než alternativy založené na klíčích a je doporučeným přístupem pro připojení ke službám Azure. Pokud zvolíte ověřování bez hesla, budete muset provést následující:

  1. Přidejte balíček Azure.Identity.

    dotnet add package Azure.Identity
    
  2. Přiřaďte roli k uživatelskému Cognitive Services User účtu. Můžete to udělat na webu Azure Portal na vašem prostředku OpenAI v části Řízení přístupu (IAM)>Přidání přiřazení role.

  3. Přihlaste se k Azure pomocí sady Visual Studio nebo Azure CLI přes az login.

Vytvoření asistenta

Program.cs Aktualizujte soubor následujícím kódem a vytvořte asistenta:

using Azure;
using Azure.AI.OpenAI.Assistants;

// Assistants is a beta API and subject to change
// Acknowledge its experimental status by suppressing the matching warning.
string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

var openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));

// Use for passwordless auth
//var openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); 

FileClient fileClient = openAIClient.GetFileClient();
AssistantClient assistantClient = openAIClient.GetAssistantClient();

// First, let's contrive a document we'll use retrieval with and upload it.
using Stream document = BinaryData.FromString("""
            {
                "description": "This document contains the sale history data for Contoso products.",
                "sales": [
                    {
                        "month": "January",
                        "by_product": {
                            "113043": 15,
                            "113045": 12,
                            "113049": 2
                        }
                    },
                    {
                        "month": "February",
                        "by_product": {
                            "113045": 22
                        }
                    },
                    {
                        "month": "March",
                        "by_product": {
                            "113045": 16,
                            "113055": 5
                        }
                    }
                ]
            }
            """).ToStream();

OpenAIFileInfo salesFile = await fileClient.UploadFileAsync(
    document,
    "monthly_sales.json",
    FileUploadPurpose.Assistants);

// Now, we'll create a client intended to help with that data
AssistantCreationOptions assistantOptions = new()
{
    Name = "Example: Contoso sales RAG",
    Instructions =
        "You are an assistant that looks up sales data and helps visualize the information based"
        + " on user queries. When asked to generate a graph, chart, or other visualization, use"
        + " the code interpreter tool to do so.",
    Tools =
            {
                new FileSearchToolDefinition(),
                new CodeInterpreterToolDefinition(),
            },
    ToolResources = new()
    {
        FileSearch = new()
        {
            NewVectorStores =
                    {
                        new VectorStoreCreationHelper([salesFile.Id]),
                    }
        }
    },
};

Assistant assistant = await assistantClient.CreateAssistantAsync(deploymentName, assistantOptions);

// Create and run a thread with a user query about the data already associated with the assistant
ThreadCreationOptions threadOptions = new()
{
    InitialMessages = { "How well did product 113045 sell in February? Graph its trend over time." }
};

ThreadRun threadRun = await assistantClient.CreateThreadAndRunAsync(assistant.Id, threadOptions);

// Check back to see when the run is done
do
{
    Thread.Sleep(TimeSpan.FromSeconds(1));
    threadRun = assistantClient.GetRun(threadRun.ThreadId, threadRun.Id);
} while (!threadRun.Status.IsTerminal);

// Finally, we'll print out the full history for the thread that includes the augmented generation
AsyncCollectionResult<ThreadMessage> messages
    = assistantClient.GetMessagesAsync(
        threadRun.ThreadId,
        new MessageCollectionOptions() { Order = MessageCollectionOrder.Ascending });

await foreach (ThreadMessage message in messages)
{
    Console.Write($"[{message.Role.ToString().ToUpper()}]: ");
    foreach (MessageContent contentItem in message.Content)
    {
        if (!string.IsNullOrEmpty(contentItem.Text))
        {
            Console.WriteLine($"{contentItem.Text}");

            if (contentItem.TextAnnotations.Count > 0)
            {
                Console.WriteLine();
            }

            // Include annotations, if any.
            foreach (TextAnnotation annotation in contentItem.TextAnnotations)
            {
                if (!string.IsNullOrEmpty(annotation.InputFileId))
                {
                    Console.WriteLine($"* File citation, file ID: {annotation.InputFileId}");
                }
                if (!string.IsNullOrEmpty(annotation.OutputFileId))
                {
                    Console.WriteLine($"* File output, new file ID: {annotation.OutputFileId}");
                }
            }
        }
        if (!string.IsNullOrEmpty(contentItem.ImageFileId))
        {
            OpenAIFileInfo imageInfo = await fileClient.GetFileAsync(contentItem.ImageFileId);
            BinaryData imageBytes = await fileClient.DownloadFileAsync(contentItem.ImageFileId);
            using FileStream stream = File.OpenWrite($"{imageInfo.Filename}.png");
            imageBytes.ToStream().CopyTo(stream);

            Console.WriteLine($"<image: {imageInfo.Filename}.png>");
        }
    }
    Console.WriteLine();
}

Spusťte aplikaci pomocí dotnet run příkazu:

dotnet run

Výstup konzoly by měl vypadat přibližně takto:

[USER]: How well did product 113045 sell in February? Graph its trend over time.

[ASSISTANT]: Product 113045 sold 22 units in February. Let's visualize its sales trend over the given months (January through March).

I'll create a graph to depict this trend.

[ASSISTANT]: <image: 553380b7-fdb6-49cf-9df6-e8e6700d69f4.png>
The graph above visualizes the sales trend for product 113045 from January to March. As seen, the sales peaked in February with 22 units sold, and fluctuated over the period from January (12 units) to March (16 units).

If you need further analysis or more details, feel free to ask!

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Viz také

Referenční dokumentace | – Balíček zdrojového kódu | knihovny (npm) |

Požadavky

Pro ověřování bez klíčů musíte

  1. @azure/identity Použijte balíček.
  2. Přiřaďte roli k uživatelskému Cognitive Services User účtu. Můžete to udělat na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role.
  3. Přihlaste se pomocí Azure CLI, například az login.

Nastavení

  1. Vytvořte novou složku assistants-quickstart , která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:

    mkdir assistants-quickstart && code assistants-quickstart
    
  2. Vytvořte následující package.json příkaz:

    npm init -y
    
  3. package.json Aktualizujte na ECMAScript následujícím příkazem:

    npm pkg set type=module
    
  4. Nainstalujte klientskou knihovnu OpenAI Assistants pro JavaScript pomocí:

    npm install openai
    
  5. Pro doporučené ověřování bez hesla:

    npm install @azure/identity
    

Načtení informací o prostředcích

Název proměnné Hodnota
AZURE_OPENAI_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal.
OPENAI_API_VERSION Přečtěte si další informace o verzích rozhraní API.

Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.

Upozornění

Pokud chcete používat doporučené ověřování bez klíčů se sadou SDK, ujistěte se, že AZURE_OPENAI_API_KEY proměnná prostředí není nastavená.

Vytvoření asistenta

V našem kódu určíme následující hodnoty:

Název Popis
Jméno asistenta Název nasazení, který je přidružený ke konkrétnímu modelu.
Pokyny Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy.
Model Toto je název nasazení.
Interpret kódu Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód.

Nástroje

Jednotlivý asistent má přístup až k 128 nástrojům včetně code interpretera všech vlastních nástrojů, které vytvoříte prostřednictvím funkcí.

Vytvoření nové javascriptové aplikace

  1. index.js Vytvořte soubor s následujícím kódem:

    const { AzureOpenAI } = require("openai");
    const {
      DefaultAzureCredential,
      getBearerTokenProvider,
    } = require("@azure/identity");
    
    // Get environment variables
    const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT;
    const azureOpenAIDeployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME;
    const azureOpenAIVersion = process.env.OPENAI_API_VERSION;
    
    // Check env variables
    if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !azureOpenAIVersion) {
      throw new Error(
        "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables."
      );
    }
    
    // Get Azure SDK client
    const getClient = () => {
      const credential = new DefaultAzureCredential();
      const scope = "https://cognitiveservices.azure.com/.default";
      const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
      const assistantsClient = new AzureOpenAI({
        endpoint: azureOpenAIEndpoint,
        apiVersion: azureOpenAIVersion,
        azureADTokenProvider,
      });
      return assistantsClient;
    };
    
    const assistantsClient = getClient();
    
    const options = {
      model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio
      name: "Math Tutor",
      instructions:
        "You are a personal math tutor. Write and run JavaScript code to answer math questions.",
      tools: [{ type: "code_interpreter" }],
    };
    const role = "user";
    const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?";
    
    // Create an assistant
    const assistantResponse = await assistantsClient.beta.assistants.create(
      options
    );
    console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`);
    
    // Create a thread
    const assistantThread = await assistantsClient.beta.threads.create({});
    console.log(`Thread created: ${JSON.stringify(assistantThread)}`);
    
    // Add a user question to the thread
    const threadResponse = await assistantsClient.beta.threads.messages.create(
      assistantThread.id,
      {
        role,
        content: message,
      }
    );
    console.log(`Message created:  ${JSON.stringify(threadResponse)}`);
    
    // Run the thread and poll it until it is in a terminal state
    const runResponse = await assistantsClient.beta.threads.runs.createAndPoll(
      assistantThread.id,
      {
        assistant_id: assistantResponse.id,
      },
      { pollIntervalMs: 500 }
    );
    console.log(`Run created:  ${JSON.stringify(runResponse)}`);
    
    // Get the messages
    const runMessages = await assistantsClient.beta.threads.messages.list(
      assistantThread.id
    );
    for await (const runMessageDatum of runMessages) {
      for (const item of runMessageDatum.content) {
        // types are: "image_file" or "text"
        if (item.type === "text") {
          console.log(`Message content: ${JSON.stringify(item.text?.value)}`);
        }
      }
    }
    
  2. Přihlaste se k Azure pomocí následujícího příkazu:

    az login
    
  3. Spusťte javascriptový soubor.

    node index.js
    

Výstup

Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created:  {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created:  {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"

Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v JavaScriptu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Ukázkový kód

Viz také

Referenční dokumentace | – Balíček zdrojového kódu | knihovny (npm) |

Požadavky

Pro ověřování bez hesla musíte

  1. @azure/identity Použijte balíček.
  2. Přiřaďte roli k uživatelskému Cognitive Services User účtu. Můžete to udělat na webu Azure Portal v části Řízení přístupu (IAM)>Přidat přiřazení role.
  3. Přihlaste se pomocí Azure CLI, například az login.

Nastavení

  1. Vytvořte novou složku assistants-quickstart , která bude obsahovat aplikaci, a otevřete v této složce Visual Studio Code pomocí následujícího příkazu:

    mkdir assistants-quickstart && code assistants-quickstart
    
  2. Vytvořte následující package.json příkaz:

    npm init -y
    
  3. package.json Aktualizujte na ECMAScript následujícím příkazem:

    npm pkg set type=module
    
  4. Nainstalujte klientskou knihovnu OpenAI Assistants pro JavaScript pomocí:

    npm install openai
    
  5. Pro doporučené ověřování bez hesla:

    npm install @azure/identity
    

Načtení informací o prostředcích

Název proměnné Hodnota
AZURE_OPENAI_ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal.
AZURE_OPENAI_DEPLOYMENT_NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení modelu správy>prostředků na webu Azure Portal.
OPENAI_API_VERSION Přečtěte si další informace o verzích rozhraní API.

Přečtěte si další informace o ověřování bez klíčů a nastavení proměnných prostředí.

Upozornění

Pokud chcete používat doporučené ověřování bez klíčů se sadou SDK, ujistěte se, že AZURE_OPENAI_API_KEY proměnná prostředí není nastavená.

Vytvoření asistenta

V našem kódu určíme následující hodnoty:

Název Popis
Jméno asistenta Název nasazení, který je přidružený ke konkrétnímu modelu.
Pokyny Pokyny jsou podobné systémovým zprávám, kde poskytujete pokyny modelu, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta, sdělit, co by měl a neměl odpovídat, a sdělit, jak formátovat odpovědi. Můžete také uvést příklady kroků, které by se měly provést při odpovídání na dotazy.
Model Toto je název nasazení.
Interpret kódu Interpret kódu poskytuje přístup k prostředí Python v izolovaném prostoru (sandbox), které je možné použít k tomu, aby model mohl testovat a spouštět kód.

Nástroje

Jednotlivý asistent má přístup až k 128 nástrojům včetně code interpretera všech vlastních nástrojů, které vytvoříte prostřednictvím funkcí.

Vytvoření nové aplikace TypeScript

  1. index.ts Vytvořte soubor s následujícím kódem:

    import { AzureOpenAI } from "openai";
    import {
      Assistant,
      AssistantCreateParams,
      AssistantTool,
    } from "openai/resources/beta/assistants";
    import { Message, MessagesPage } from "openai/resources/beta/threads/messages";
    import { Run } from "openai/resources/beta/threads/runs/runs";
    import { Thread } from "openai/resources/beta/threads/threads";
    
    // Add `Cognitive Services User` to identity for Azure OpenAI resource
    import {
      DefaultAzureCredential,
      getBearerTokenProvider,
    } from "@azure/identity";
    
    // Get environment variables
    const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string;
    const azureOpenAIDeployment = process.env
      .AZURE_OPENAI_DEPLOYMENT_NAME as string;
    const openAIVersion = process.env.OPENAI_API_VERSION as string;
    
    // Check env variables
    if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) {
      throw new Error(
        "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables."
      );
    }
    
    // Get Azure SDK client
    const getClient = (): AzureOpenAI => {
      const credential = new DefaultAzureCredential();
      const scope = "https://cognitiveservices.azure.com/.default";
      const azureADTokenProvider = getBearerTokenProvider(credential, scope);
      const assistantsClient = new AzureOpenAI({
        endpoint: azureOpenAIEndpoint,
        apiVersion: openAIVersion,
        azureADTokenProvider,
      });
      return assistantsClient;
    };
    
    const assistantsClient = getClient();
    
    const options: AssistantCreateParams = {
      model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio
      name: "Math Tutor",
      instructions:
        "You are a personal math tutor. Write and run JavaScript code to answer math questions.",
      tools: [{ type: "code_interpreter" } as AssistantTool],
    };
    const role = "user";
    const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?";
    
    // Create an assistant
    const assistantResponse: Assistant =
      await assistantsClient.beta.assistants.create(options);
    console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`);
    
    // Create a thread
    const assistantThread: Thread = await assistantsClient.beta.threads.create({});
    console.log(`Thread created: ${JSON.stringify(assistantThread)}`);
    
    // Add a user question to the thread
    const threadResponse: Message =
      await assistantsClient.beta.threads.messages.create(assistantThread.id, {
        role,
        content: message,
      });
    console.log(`Message created:  ${JSON.stringify(threadResponse)}`);
    
    // Run the thread and poll it until it is in a terminal state
    const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll(
      assistantThread.id,
      {
        assistant_id: assistantResponse.id,
      },
      { pollIntervalMs: 500 }
    );
    console.log(`Run created:  ${JSON.stringify(runResponse)}`);
    
    // Get the messages
    const runMessages: MessagesPage =
      await assistantsClient.beta.threads.messages.list(assistantThread.id);
    for await (const runMessageDatum of runMessages) {
      for (const item of runMessageDatum.content) {
        // types are: "image_file" or "text"
        if (item.type === "text") {
          console.log(`Message content: ${JSON.stringify(item.text?.value)}`);
        }
      }
    }
    
  2. tsconfig.json Vytvořte soubor pro transpilování kódu TypeScript a zkopírujte následující kód pro ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpilovat z TypeScriptu do JavaScriptu.

    tsc
    
  4. Přihlaste se k Azure pomocí následujícího příkazu:

    az login
    
  5. Spusťte kód pomocí následujícího příkazu:

    node index.js
    

Výstup

Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created:  {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created:  {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"

Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v JavaScriptu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Ukázkový kód

Viz také

Požadavky

Nastavení

Načtení klíče a koncového bodu

K úspěšnému volání azure OpenAI budete potřebovat následující:

Název proměnné Hodnota
ENDPOINT Koncový bod služby najdete v části Klíče a koncový bod při zkoumání vašeho prostředku na webu Azure Portal. Koncový bod najdete také na stránce Nasazení v Azure AI Studiu. Ukázkový koncový bod je: https://docs-test-001.openai.azure.com/.
API-KEY Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Použít můžete předponu KEY1 nebo KEY2.
DEPLOYMENT-NAME Tato hodnota bude odpovídat vlastnímu názvu, který jste si zvolili pro své nasazení při nasazování modelu. Tuto hodnotu najdete v části Nasazení správy>prostředků na webu Azure Portal nebo na stránce Nasazení v Azure AI Studiu.

Na webu Azure Portal přejděte ke svému prostředku. Koncový bod a klíče najdete v části Správa prostředků. Zkopírujte koncový bod a přístupový klíč, protože budete potřebovat obojí pro ověřování volání rozhraní API. Použít můžete předponu KEY1 nebo KEY2. Vždy mít dva klíče vám umožní bezpečně otáčet a znovu vygenerovat klíče, aniž by to způsobilo přerušení služeb.

Snímek obrazovky s oknem přehledu pro prostředek Azure OpenAI na webu Azure Portal s červeným kruhem umístění přístupových klíčů koncového bodu

Proměnné prostředí

Vytvořte a přiřaďte trvalé proměnné prostředí pro klíč a koncový bod.

Důležité

Pokud používáte klíč rozhraní API, uložte ho bezpečně někam jinam, například ve službě Azure Key Vault. Nezahrnujte klíč rozhraní API přímo do kódu a nikdy ho nevštěvujte veřejně.

Další informace o zabezpečení služeb AI najdete v tématu Ověřování požadavků na služby Azure AI.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST API

Vytvoření asistenta

Poznámka:

U Azure OpenAI parametr model vyžaduje název nasazení modelu. Pokud se název nasazení modelu liší od základního názvu modelu, upravte kód na "model": "{your-custom-model-deployment-name}".

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "instructions": "You are an AI assistant that can write code to help answer math questions.",
    "name": "Math Assist",
    "tools": [{"type": "code_interpreter"}],
    "model": "gpt-4-1106-preview"
  }'

Nástroje

Jednotlivý asistent má přístup až k 128 nástrojům, včetně code interpreternástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.

Vytvoření vlákna

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

Přidání otázky uživatele do vlákna

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
      "role": "user",
      "content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
    }'

Spuštění vlákna

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assistant_id": "asst_abc123",
  }'

Načtení stavu spuštění

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

Odpověď asistenta

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

Porozumění výsledkům

V tomto příkladu vytvoříme asistenta s povoleným interpretem kódu. Když položíme asistentovi matematickou otázku, přeloží ji do kódu Pythonu a spustí kód v prostředí izolovaného prostoru (sandbox), aby se určila odpověď na otázku. Kód, který model vytvoří a otestuje, aby přišel na odpověď, je:

    from sympy import symbols, Eq, solve  
      
    # Define the variable  
    x = symbols('x')  
      
    # Define the equation  
    equation = Eq(3*x + 11, 14)  
      
    # Solve the equation  
    solution = solve(equation, x)  
    solution  

Je důležité si uvědomit, že zatímco interpret kódu dává modelu schopnost reagovat na složitější dotazy tím, že převede otázky na kód a spustí tento kód iterativním způsobem v sandboxu Pythonu, dokud nedosáhne řešení, stále potřebujete ověřit odpověď, abyste potvrdili, že model správně přeložil vaši otázku do platné reprezentace v kódu.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat prostředek Azure OpenAI, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Viz také