Megosztás a következőn keresztül:


Rövid útmutató: Az Azure OpenAI Assistants használatának első lépései (előzetes verzió)

Az Azure OpenAI segédek (előzetes verzió) lehetővé teszik az Ön igényeinek megfelelő AI-segédek létrehozását egyéni utasítások útján, speciális eszközökkel, mint például kódértelmezőkkel és egyéni funkciókkal kiegészítve.

Fontos

A cikkben megjelölt (előzetes verziójú) elemek jelenleg nyilvános előzetes verzióban érhetők el. Ez az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Előfeltételek

Ugrás az Azure AI Studióra (előzetes verzió)

Az Azure AI Studio lehetővé teszi az Assistants v2 használatát, amely számos frissítést biztosít, például a fájlkereső eszközt, amely gyorsabb és több fájlt támogat.

  1. Jelentkezzen be az Azure AI Studióba.

  2. Nyissa meg a projektet, vagy hozzon létre egy új projektet az Azure AI Studióban.

  3. A projekt áttekintésében válassza a Project-játszótér alatt található Asszisztensek lehetőséget.

    Az Asszisztensek játszótér lehetővé teszi az AI-asszisztensek felderítését, prototípusát és tesztelését anélkül, hogy bármilyen kódot kellene futtatnia. Ezen az oldalon gyorsan iterálhat és kísérletezhet új ötletekkel.

    A játszótér számos lehetőséget kínál az asszisztens konfigurálására. Az alábbi lépésekben az Asszisztens beállítási paneljén fog létrehozni egy új AI-asszisztenst.

    Név Leírás
    Segéd neve Az Ön környezetének adott modellhez társított neve.
    Utasítások Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre.
    Üzembe helyezés Itt állíthatja be, hogy melyik modellkörnyezetet szeretné használni a segédjével.
    Functions Hozzon létre egyéni függvénydefiníciókat a modellekhez, hogy api-hívásokat alakíthasson ki, és az adatok kimeneteit a specifikációk alapján strukturálja. Ebben a rövid útmutatóban nem használható.
    Kódértelmező A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását.
    Fájlok Legfeljebb 10 000 fájlt tölthet fel, és az eszközökkel használható maximális fájlméret 512 MB. Ebben a rövid útmutatóban nem használható.

    Az Asszisztens konfigurációs képernyőjének képernyőképe az összes érték kitöltése nélkül.

Az első asszisztens létrehozása

  1. Válassza ki az üzembe helyezést az Üzembe helyezések legördülő listából.

  2. Az Asszisztens beállítási legördülő menüjében válassza az Új lehetőséget.

  3. Adjon nevet az asszisztensének.

  4. Adja meg a következő utasításokat: "Ön egy AI-asszisztens, aki képes kódot írni a matematikai kérdések megválaszolásához"

  5. Válasszon ki egy modelltelepítést. Javasoljuk, hogy tesztelje az egyik legújabb gpt-4 modellt.

  6. Válassza ki a kódértelmezőt engedélyező kapcsolót.

  7. Válassza a Mentés lehetőséget.

    Képernyőkép az asszisztensről a megadott konfigurációs adatokkal.

  8. Adjon meg egy kérdést, amelyre az asszisztens válaszol: "Meg kell oldanunk az egyenletet 3x + 11 = 14. Tud nekem segíteni?"

  9. Válassza a Hozzáadás és futtatás gombot

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

    Bár láthatjuk, hogy a válasz helyes, annak ellenőrzéséhez, hogy a modell kódértelmezőt használt-e a válasz eléréséhez, és hogy az általa írt kód érvényes-e ahelyett, hogy a modell betanítási adataiból ismételnénk meg a választ, egy másik kérdést teszünk fel.

  10. Adja meg a következő kérdést: "A megoldás beszerzéséhez használt kód megjelenítése".

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

    Képernyőkép a beszélgetési munkamenetről az Asszisztens játszótéren.

A jobb oldali panelen található naplókban ellenőrizheti, hogy a kódértelmezőt használták-e, és ellenőrizheti a válasz létrehozásához futtatott kódot. Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb matematikai kérdésekre válaszoljon a kérdések kódmá alakításával és egy tesztkörnyezetben futó Python-környezetben, a választ továbbra is ellenőriznie kell, hogy a modell helyesen fordította-e le a kérdést érvényes kódbeli ábrázolásra.

Fő fogalmak

Az Asszisztensek játszótér használata során tartsa szem előtt az alábbi fogalmakat.

Eszközök

Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve code interpretera függvényekkel létrehozott egyéni eszközöket is.

Csevegési munkamenet

Az Asszisztens API-jában szálként is ismert csevegési munkamenetben zajlik a felhasználó és az asszisztens közötti beszélgetés. A hagyományos csevegésvégzítési hívásokkal ellentétben nincs korlátozva a szálon lévő üzenetek száma. Az asszisztens automatikusan tömöríti a kérelmeket a modell bemeneti jogkivonat-korlátjának megfelelően.

Ez azt is jelenti, hogy nem szabályozza, hogy hány jogkivonat legyen átadva a modellnek a beszélgetés minden egyes fordulója során. A jogkivonatok kezelését az Assistants API absztrakciója és teljes mértékben kezeli.

Válassza a Csevegés törlése gombot az aktuális beszélgetési előzmények törléséhez.

A szövegbeviteli mező alatt két gomb található:

  • Üzenet hozzáadása futtatás nélkül.
  • Hozzáadás és futtatás.

Naplók

A naplók részletes pillanatképet nyújtanak az asszisztens API-tevékenységéről.

Panelek megjelenítése

Alapértelmezés szerint három panel van: asszisztens beállítása, csevegési munkamenet és naplók. A panelek megjelenítése lehetővé teszi a panelek hozzáadását, eltávolítását és átrendeződését. Ha valaha bezár egy panelt, és vissza kell szereznie, a Panelek megjelenítése parancsot használva visszaállíthatja az elveszett panelt.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Másik lehetőségként törölheti az asszisztenst vagy a szálat az Asszisztens API-ján keresztül.

Lásd még

Referenciadokumentáció kódtár forráskódcsomagja | (PyPi) | |

Előfeltételek

A jelszó nélküli hitelesítéshez

  1. Használja az azure-identity csomagot.
  2. Rendelje hozzá a szerepkört Cognitive Services User a felhasználói fiókjához. Ez az Azure Portal Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területén végezhető el.
  3. Jelentkezzen be az Azure CLI-vel, például az login.

Beállítás

  1. Telepítse az OpenAI Python ügyfélkódtárat a következőkkel:
pip install openai
  1. Az ajánlott jelszó nélküli hitelesítéshez:
pip install azure-identity

Feljegyzés

  • A fájlkeresés asszisztensenként akár 10 000 fájlt is betölthet – 500-szor több, mint korábban. Gyors, többszálas keresésekkel támogatja a párhuzamos lekérdezéseket, és továbbfejlesztett újrarangsorolást és lekérdezés-újraírást is kínál.
    • A vektortároló egy új objektum az API-ban. Miután hozzáadnak egy fájlt egy vektortárolóhoz, a rendszer automatikusan elemzi, darabolja és beágyazza azt, és készen áll a keresésre. A vektortárolók segédeken és szálakon átnyúlóan is használhatók, így egyszerűbbé téve a fájlkezelést és a számlázást.
  • Hozzáadtuk a tool_choice paraméter támogatását, amely egy adott eszköz (például fájlkeresés, kódértelmező vagy függvény) egy adott futtatáshoz való kényszerítésére használható.

Kulcs és végpont lekérése

Az Azure OpenAI szolgáltatással való sikeres híváshoz a következőkre lesz szüksége:

Változó neve Érték
ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Studio Üzembe helyezések lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/.
API-KEY Ez az érték a Kulcsok és végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A következők bármelyikét használhatja: KEY1 vagy KEY2.
DEPLOYMENT-NAME Ez az érték a modell üzembe helyezésekor az üzembe helyezéshez választott egyéni névnek felel meg. Ez az érték az Azure Portal erőforrás-kezelési modell üzembe helyezései alatt vagy az Azure AI Studio Üzembe helyezések lapján található.>

Nyissa meg az erőforrást az Azure Portalon. A kulcsok és végpontok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Képernyőkép egy Azure OpenAI-erőforrás áttekintési paneljéről az Azure Portalon, a végpont és a hozzáférési kulcsok helye pirossal bekarikázva.

Környezeti változók

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Segéd létrehozása

A kódban a következő értékeket fogjuk megadni:

Név Leírás
Segéd neve Az Ön környezetének adott modellhez társított neve.
Utasítások Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre.
Modell Itt adhatja meg, hogy melyik modell üzembehelyezési nevét használja az asszisztensével. A lekérési eszközhöz szükség van vagy gpt-4 (1106-preview) modellre van szükséggpt-35-turbo (1106). Állítsa ezt az értéket az üzemelő példány nevére, és ne a modell nevére, hacsak nem ugyanaz.
Kódértelmező A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását.

Eszközök

Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve code interpretera függvényekkel létrehozott egyéni eszközöket is.

A Python-alkalmazás létrehozása

Jelentkezzen be az Azure-ba az login , majd hozzon létre és futtasson egy asszisztenst a következő ajánlott jelszó nélküli Python-példával:

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

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

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

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

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

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

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

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

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

A szolgáltatás API-kulcsának hitelesítéshez való használatához létrehozhat és futtathat egy asszisztenst a következő Python-példával:

import os
from openai import AzureOpenAI

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

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

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

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

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

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

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

Hozam

Futtatás befejezve állapottal: befejezve

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

Az eredmények ismertetése

Ebben a példában létrehozunk egy asszisztenst, amely engedélyezve van a kódértelmezővel. Amikor matematikai kérdést teszünk fel az asszisztensnek, az python kódra fordítja le a kérdést, és tesztkörnyezetben hajtja végre a kódot a kérdésre adott válasz meghatározásához. A modell által létrehozott és a válaszhoz szükséges tesztek kódja a következő:

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

Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a Python-tesztkörnyezetben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ, hogy a modell helyesen lefordította-e a kérdést egy érvényes kódképre.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Lásd még

Referenciadokumentáció Forráskódcsomag | (NuGet) |

Előfeltételek

Beállítás

Egy új .NET Core-alkalmazás létrehozása

  1. Egy konzolablakban (például parancsmag, PowerShell vagy Bash) a dotnet new paranccsal hozzon létre egy új konzolalkalmazást a következő néven azure-openai-quickstart:

    dotnet new console -n azure-openai-assistants-quickstart
    
  2. Váltson az újonnan létrehozott alkalmazásmappa könyvtárára, és hozza létre az alkalmazást a dotnet build következő paranccsal:

    dotnet build
    

    A buildkimenet nem tartalmazhat figyelmeztetést vagy hibát.

    ...
    Build succeeded.
     0 Warning(s)
     0 Error(s)
    ...
    
  3. Telepítse az OpenAI .NET ügyfélkódtárat a dotnet add package paranccsal:

    dotnet add package Azure.AI.OpenAI --prerelease
    

Kulcs és végpont lekérése

Az Azure OpenAI-ra való sikeres híváshoz egy végpontra és egy kulcsra van szükség.

Változó neve Érték
ENDPOINT A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Studio Üzembe helyezési lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/.
API-KEY Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2.

Nyissa meg az erőforrást az Azure Portalon. A Kulcsok > végpont szakasz az Erőforrás-kezelés szakaszban található. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Képernyőkép egy Azure OpenAI-erőforrás áttekintő felhasználói felületéről az Azure Portalon, a végpont és a hozzáférési kulcsok helye pirossal bekarikázva.

Környezeti változók

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

A jelszó nélküli hitelesítés biztonságosabb, mint a kulcsalapú alternatívák, és az Azure-szolgáltatásokhoz való csatlakozás ajánlott módszere. Ha jelszó nélküli hitelesítést választ, a következőket kell elvégeznie:

  1. Vegye fel a Azure.Identity csomagot.

    dotnet add package Azure.Identity
    
  2. Rendelje hozzá a szerepkört Cognitive Services User a felhasználói fiókjához. Ez az OpenAI-erőforrás Azure Portalon, a Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területen végezhető el.

  3. Jelentkezzen be az Azure-ba a Visual Studióval vagy az Azure CLI-vel.az login

Az asszisztens létrehozása

Frissítse a Program.cs fájlt a következő kóddal egy asszisztens létrehozásához:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Futtassa az alkalmazást a dotnet run következő paranccsal:

dotnet run

A konzol kimenetének a következőhöz kell hasonlítania:

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

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

I'll create a graph to depict this trend.

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

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

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Lásd még

Referenciadokumentáció Kódtár forráskódcsomagja | (npm) | |

Előfeltételek

Kulcs nélküli hitelesítéshez

  1. Használja a @azure/identity csomagot.
  2. Rendelje hozzá a szerepkört Cognitive Services User a felhasználói fiókjához. Ez az Azure Portal Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területén végezhető el.
  3. Jelentkezzen be az Azure CLI-vel, például az login.

Beállítás

  1. Hozzon létre egy új mappát assistants-quickstart , amely tartalmazza az alkalmazást, és nyissa meg a Visual Studio Code-ot abban a mappában a következő paranccsal:

    mkdir assistants-quickstart && code assistants-quickstart
    
  2. Hozza létre a package.json következő paranccsal:

    npm init -y
    
  3. Frissítse az package.json ECMAScriptet a következő paranccsal:

    npm pkg set type=module
    
  4. Telepítse a JavaScripthez készült OpenAI Assistants ügyfélkódtárat a következőkkel:

    npm install openai
    
  5. Az ajánlott jelszó nélküli hitelesítéshez:

    npm install @azure/identity
    

Erőforrásadatok lekérése

Változó neve Érték
AZURE_OPENAI_ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja.
AZURE_OPENAI_DEPLOYMENT_NAME Ez az érték a modell üzembe helyezésekor az üzembe helyezéshez választott egyéni névnek felel meg. Ez az érték az Azure Portal Resource Management Model Deployments (Erőforrás-kezelési modell üzembe helyezései) területén található.>
OPENAI_API_VERSION További információ az API-verziókról.

További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.

Figyelemfelhívás

Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY környezeti változó nincs beállítva.

Segéd létrehozása

A kódban a következő értékeket fogjuk megadni:

Név Leírás
Segéd neve Az Ön környezetének adott modellhez társított neve.
Utasítások Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre.
Modell Ez az üzembe helyezés neve.
Kódértelmező A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását.

Eszközök

Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve a code interpreterfüggvényekkel létrehozott egyéni eszközöket is.

Új JavaScript-alkalmazás létrehozása

  1. Hozza létre a index.js fájlt a következő kóddal:

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

    az login
    
  3. Futtassa a JavaScript-fájlt.

    node index.js
    

Hozam

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

Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a JavaScriptben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ annak ellenőrzéséhez, hogy a modell helyesen lefordította-e a kérdést egy kódban szereplő érvényes reprezentációra.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Mintakód

Lásd még

Referenciadokumentáció Kódtár forráskódcsomagja | (npm) | |

Előfeltételek

A jelszó nélküli hitelesítéshez

  1. Használja a @azure/identity csomagot.
  2. Rendelje hozzá a szerepkört Cognitive Services User a felhasználói fiókjához. Ez az Azure Portal Hozzáférés-vezérlés (IAM)>Szerepkör-hozzárendelés hozzáadása területén végezhető el.
  3. Jelentkezzen be az Azure CLI-vel, például az login.

Beállítás

  1. Hozzon létre egy új mappát assistants-quickstart , amely tartalmazza az alkalmazást, és nyissa meg a Visual Studio Code-ot abban a mappában a következő paranccsal:

    mkdir assistants-quickstart && code assistants-quickstart
    
  2. Hozza létre a package.json következő paranccsal:

    npm init -y
    
  3. Frissítse az package.json ECMAScriptet a következő paranccsal:

    npm pkg set type=module
    
  4. Telepítse a JavaScripthez készült OpenAI Assistants ügyfélkódtárat a következőkkel:

    npm install openai
    
  5. Az ajánlott jelszó nélküli hitelesítéshez:

    npm install @azure/identity
    

Erőforrásadatok lekérése

Változó neve Érték
AZURE_OPENAI_ENDPOINT Ez az érték a Kulcsok és végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja.
AZURE_OPENAI_DEPLOYMENT_NAME Ez az érték a modell üzembe helyezésekor az üzembe helyezéshez választott egyéni névnek felel meg. Ez az érték az Azure Portal Resource Management Model Deployments (Erőforrás-kezelési modell üzembe helyezései) területén található.>
OPENAI_API_VERSION További információ az API-verziókról.

További információ a kulcs nélküli hitelesítésről és a környezeti változók beállításáról.

Figyelemfelhívás

Ha az ajánlott kulcs nélküli hitelesítést szeretné használni az SDK-val, győződjön meg arról, hogy a AZURE_OPENAI_API_KEY környezeti változó nincs beállítva.

Segéd létrehozása

A kódban a következő értékeket fogjuk megadni:

Név Leírás
Segéd neve Az Ön környezetének adott modellhez társított neve.
Utasítások Az utasítások hasonlóak a rendszerüzenetekhez – ez az a rész, ahol Ön útmutatást ad a modellnek arról, hogyan kellene viselkednie, és milyen összefüggéseket kellene figyelembe vennie a válasz létrehozásakor. Leírhatja a segéd személyiségét, megmondhatja, hogy mit kell és mit nem szabad megválaszolnia, és megadhatja, hogyan formázza a válaszokat. Példákat is megadhat neki a válaszadáskor követendő lépésekre.
Modell Ez az üzembe helyezés neve.
Kódértelmező A kódértelmező hozzáférést biztosít egy Python demókörnyezethez, amelyben lehetővé teheti a modell számára kód tesztelését és végrehajtását.

Eszközök

Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve a code interpreterfüggvényekkel létrehozott egyéni eszközöket is.

Új TypeScript-alkalmazás létrehozása

  1. Hozza létre a index.ts fájlt a következő kóddal:

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

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Transpile TypeScriptről JavaScriptre.

    tsc
    
  4. Jelentkezzen be az Azure-ba a következő paranccsal:

    az login
    
  5. Futtassa a kódot a következő paranccsal:

    node index.js
    

Hozam

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

Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a JavaScriptben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ annak ellenőrzéséhez, hogy a modell helyesen lefordította-e a kérdést egy kódban szereplő érvényes reprezentációra.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Mintakód

Lásd még

Előfeltételek

Beállítás

Kulcs és végpont lekérése

Az Azure OpenAI-ra való sikeres híváshoz a következőkre lesz szüksége:

Változó neve Érték
ENDPOINT A szolgáltatásvégpont a Kulcsok > Végpont szakaszban található, amikor az erőforrást az Azure Portalról vizsgálja. A végpontot az Azure AI Studio Üzembe helyezési lapján is megtalálhatja. Példavégpont: https://docs-test-001.openai.azure.com/.
API-KEY Ez az érték a Kulcsok és végpont szakaszban található meg, amikor megvizsgálja az erőforrást az Azure Portalon. A következők bármelyikét használhatja: KEY1 vagy KEY2.
DEPLOYMENT-NAME Ez az érték a modell üzembe helyezésekor az üzembe helyezéshez választott egyéni névnek felel meg. Ez az érték az Azure Portal erőforrás-kezelési üzembe helyezései alatt vagy az Azure AI Studio Üzembe helyezési lapján található.>

Nyissa meg az erőforrást az Azure Portalon. A végpont és a kulcsok az Erőforrás-kezelés szakaszban találhatók. Másolja ki a végpontot és a hozzáférési kulcsot, mivel mindkettőre szüksége lesz az API-hívások hitelesítéséhez. A következők bármelyikét használhatja: KEY1 vagy KEY2. A két kulcs mindig lehetővé teszi a kulcsok biztonságos elforgatását és újragenerálását anélkül, hogy szolgáltatáskimaradást okoz.

Képernyőkép egy Azure OpenAI-erőforrás áttekintési paneljéről az Azure Portalon, a végpont és a hozzáférési kulcsok helye pirossal bekarikázva.

Környezeti változók

Állandó környezeti változók létrehozása és hozzárendelése a kulcshoz és a végponthoz.

Fontos

HA API-kulcsot használ, biztonságosan tárolja valahol máshol, például az Azure Key Vaultban. Ne foglalja bele közvetlenül az API-kulcsot a kódba, és soha ne tegye közzé nyilvánosan.

Az AI-szolgáltatások biztonságáról további információt az Azure AI-szolgáltatásokhoz érkező kérelmek hitelesítése című témakörben talál.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST API

Segéd létrehozása

Feljegyzés

Az Azure OpenAI-ban a model paraméterhez modelltelepítési név szükséges. Ha a modell központi telepítési neve eltér az alapul szolgáló modell nevéétől, akkor a kódot a következőre "model": "{your-custom-model-deployment-name}"kell módosítania: .

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

Eszközök

Az egyéni asszisztensek legfeljebb 128 eszközt érhetnek el, beleértve code interpretera függvényekkel létrehozott egyéni eszközöket is.

Szál létrehozása

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

Felhasználói kérdés hozzáadása a szálhoz

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

A szál futtatása

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

A futtatás állapotának lekérése

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

Asszisztens válasza

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

Az eredmények ismertetése

Ebben a példában létrehozunk egy asszisztenst, amely engedélyezve van a kódértelmezővel. Amikor matematikai kérdést teszünk fel az asszisztensnek, az python kódra fordítja le a kérdést, és tesztkörnyezetben hajtja végre a kódot a kérdésre adott válasz meghatározásához. A modell által létrehozott és a válaszhoz szükséges tesztek kódja a következő:

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

Fontos megjegyezni, hogy bár a kódértelmező lehetővé teszi a modell számára, hogy összetettebb lekérdezésekre válaszoljon a kérdések kóddá alakításával és a kód iteratív futtatásával a Python-tesztkörnyezetben, amíg el nem éri a megoldást, továbbra is ellenőriznie kell a választ, hogy a modell helyesen lefordította-e a kérdést egy érvényes kódképre.

Az erőforrások eltávolítása

Ha törölni és eltávolítani szeretne egy Azure OpenAI-erőforrást, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli.

Lásd még