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.

Požadavky

  • Předplatné Azure – Vytvořte si ho zdarma.

  • Přístup k Azure OpenAI je udělován v požadovaném předplatném Azure.

    V současné době je přístup k této službě udělován pouze aplikací. Pokud chcete získat přístup k Azure OpenAI, vyplňte formulář na adrese https://aka.ms/oai/access. Pokud máte problém, otevřete problém v tomto úložišti a kontaktujte nás.

  • Prostředek Azure OpenAI s nasazeným modelem gpt-4 (1106-preview) .

  • Asistenti Azure OpenAI jsou aktuálně k dispozici ve Švédsku – střed, USA – východ 2 a Austrálie – východ. Další informace o dostupnosti modelu v těchto oblastech najdete v průvodci modely.

  • Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.

Přechod na Azure OpenAI Studio

Přejděte na Azure OpenAI Studio https://oai.azure.com/ a přihlaste se pomocí přihlašovacích údajů, které mají přístup k vašemu prostředku OpenAI. Během nebo po přihlášení vyberte příslušný adresář, předplatné Azure a prostředek Azure OpenAI.

Z úvodní stránky Azure OpenAI Studio spusťte dětské hřiště Asistenta z pomocníků na levém navigačním hřišti>(Preview)

Snímek obrazovky s cílovou stránkou Azure OpenAI Studio

Hřiště

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.

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

Nastavení pomocníka

V podokně nastavení Pomocníka můžete vytvořit nového asistenta AI nebo vybrat existujícího asistenta.

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ření vlastních definic funkcí pro modely pro formulování volání rozhraní API a strukturování výstupů dat na základě vašich specifikací
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 Pro použití s nástroji můžete nahrát až 20 souborů s maximální velikostí souboru 512 MB.

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.

Vytvoření prvního asistenta

  1. V rozevíracím seznamu Nastavení pomocníka vyberte Nový.

  2. Pojmenujte svého asistenta.

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

  4. Vyberte nasazení .gpt-4 (1106-preview) V rozevíracím seznamu se zobrazí vlastní názvy nasazení, takže pokud se názvy modelu nebo nasazení liší, měli byste zvolit nasazení, ve kterém je podkladový model ekvivalentní modelu 1106-Preview.

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

  6. Zvolte Uložit.

    Snímek obrazovky asistenta se zadanými podrobnostmi konfigurace

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

  8. 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.

  9. 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í).

    Certainly! Here's the Python code I ran to find the solution for the equation (3x + 11 = 14):
    
    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  
    

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.

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é

Důležité

Některé funkce popsané v tomto článku můžou být dostupné jenom ve verzi 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)

  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 Asistenti, kteří se nacházejí v dětském hřišti Projectu.

    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í Pomocníka 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 Pro použití s nástroji můžete nahrát až 20 souborů s maximální velikostí souboru 512 MB. 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ý.

  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

  • Předplatné Azure – Vytvoření předplatného zdarma

  • Přístup udělený službě Azure OpenAI v požadovaném předplatném Azure

    V současné době je přístup k této službě udělován pouze aplikací. Pokud chcete získat přístup k Azure OpenAI, vyplňte formulář na adrese https://aka.ms/oai/access. Pokud máte problém, otevřete problém v tomto úložišti a kontaktujte nás.

  • Python 3.8 nebo novější verze

  • Následující knihovny Pythonu: os, openai (vyžaduje se verze 1.x)

  • Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.

  • Asistenti Azure OpenAI jsou aktuálně k dispozici ve Švédsku – střed, USA – východ 2 a Austrálie – východ. Další informace o dostupnosti modelu v těchto oblastech najdete v průvodci modely.

  • Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.

  • V tomto příkladu gpt-4 (1106-preview) se použil prostředek Azure OpenAI s nasazeným modelem.

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é, podporuje paralelní dotazy prostřednictvím vícevláknového vyhledávání a vylepšené ř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. Případně můžete hodnotu najít v kódu zobrazení Azure OpenAI Studio>Playground>. 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 v části Nasazení správy>v nástroji Azure OpenAI Studio.

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

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

Proměnné prostředí

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

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

  • Předplatné Azure – Vytvoření předplatného zdarma

  • Přístup udělený službě Azure OpenAI v požadovaném předplatném Azure

    V současné době je přístup k této službě udělován pouze aplikací. Pokud chcete získat přístup k Azure OpenAI, vyplňte formulář na adrese https://aka.ms/oai/access. Pokud máte problém, otevřete problém v tomto úložišti a kontaktujte nás.

  • Sada .NET 8 SDK

  • Asistenti Azure OpenAI jsou aktuálně k dispozici ve Švédsku – střed, USA – východ 2 a Austrálie – východ. Další informace o dostupnosti modelu v těchto oblastech najdete v průvodci modely.

  • Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.

  • V tomto příkladu gpt-4 (1106-preview) se použil prostředek Azure OpenAI s nasazeným modelem.

Nastavení

Vytvoření nové aplikace .NET Core

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new příkazu vytvořte novou konzolovou aplikaci s názvem azure-openai-quickstart. Tento příkaz vytvoří jednoduchý projekt Hello World s jedním zdrojovým souborem jazyka C#: Program.cs.

dotnet new console -n azure-openai-assistants-quickstart

Změňte adresář na nově vytvořenou složku aplikace. Aplikaci můžete sestavit pomocí následujících:

dotnet build

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

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Nainstalujte klientskou knihovnu OpenAI .NET pomocí:

dotnet add package Azure.AI.OpenAI.Assistants --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 Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Případně můžete hodnotu najít v zobrazení kódu Azure OpenAI Studio>Playground>. 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.

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řte a spusťte asistenta s následujícím kódem:

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

string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new ArgumentNullException("AZURE_OPENAI_ENDPOINT");
string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? throw new ArgumentNullException("AZURE_OPENAI_API_KEY");
AssistantsClient client = new AssistantsClient(new Uri(endpoint), new AzureKeyCredential(key));

// Create an assistant
Assistant assistant = await client.CreateAssistantAsync(
    new AssistantCreationOptions("gpt-4-1106-preview") // Replace this with the name of your model deployment
    {
        Name = "Math Tutor",
        Instructions = "You are a personal math tutor. Write and run code to answer math questions.",
        Tools = { new CodeInterpreterToolDefinition() }
    });

// Create a thread
AssistantThread thread = await client.CreateThreadAsync();

// Add a user question to the thread
ThreadMessage message = await client.CreateMessageAsync(
    thread.Id,
    MessageRole.User,
    "I need to solve the equation `3x + 11 = 14`. Can you help me?");

// Run the thread
ThreadRun run = await client.CreateRunAsync(
    thread.Id,
    new CreateRunOptions(assistant.Id)
);

// Wait for the assistant to respond
do
{
    await Task.Delay(TimeSpan.FromMilliseconds(500));
    run = await client.GetRunAsync(thread.Id, run.Id);
}
while (run.Status == RunStatus.Queued
    || run.Status == RunStatus.InProgress);

// Get the messages
PageableList<ThreadMessage> messagesPage = await client.GetMessagesAsync(thread.Id);
IReadOnlyList<ThreadMessage> messages = messagesPage.Data;

// Note: messages iterate from newest to oldest, with the messages[0] being the most recent
foreach (ThreadMessage threadMessage in messages.Reverse())
{
    Console.Write($"{threadMessage.CreatedAt:yyyy-MM-dd HH:mm:ss} - {threadMessage.Role,10}: ");
    foreach (MessageContent contentItem in threadMessage.ContentItems)
    {
        if (contentItem is MessageTextContent textItem)
        {
            Console.Write(textItem.Text);
        }
        Console.WriteLine();
    }
}

Výstup se vytiskne následujícím způsobem:

2024-03-05 03:38:17 -       user: I need to solve the equation `3x + 11 = 14`. Can you help me?
2024-03-05 03:38:25 -  assistant: The solution to the equation \(3x + 11 = 14\) is \(x = 1\).

Nové zprávy je možné vytvořit ve vlákně před opětovným spuštěním, což bude vidět, že asistent používá minulé zprávy jako kontext ve vlákně.

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

  • Předplatné Azure – Vytvoření předplatného zdarma

  • Přístup udělený službě Azure OpenAI v požadovaném předplatném Azure

    V současné době je přístup k této službě udělován pouze aplikací. Pokud chcete získat přístup k Azure OpenAI, vyplňte formulář na adrese https://aka.ms/oai/access. Pokud máte problém, otevřete problém v tomto úložišti a kontaktujte nás.

  • Node.js LTS s podporou TypeScriptu nebo ESM.

  • Azure CLI , které se používá k ověřování bez hesla v místním vývojovém prostředí, vytvořte potřebný kontext přihlášením pomocí Azure CLI.

  • Asistenti Azure OpenAI jsou aktuálně k dispozici ve Švédsku – střed, USA – východ 2 a Austrálie – východ. Další informace o dostupnosti modelu v těchto oblastech najdete v průvodci modely.

  • Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.

  • V tomto příkladu gpt-4 (1106-preview) se použil prostředek Azure OpenAI s nasazeným modelem.

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. Nainstalujte klientskou knihovnu OpenAI Assistants pro JavaScript pomocí:

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

    npm install @azure/identity
    

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. Případně můžete hodnotu najít v kódu zobrazení Azure OpenAI Studio>Playground>. 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 v části Nasazení správy>v nástroji Azure OpenAI Studio.

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 prostředku OpenAI na webu Azure Portal s červeným kruhem umístění koncových bodů a přístupových klíčů

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

Proměnné prostředí

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

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Přidejte další proměnnou prostředí pro název nasazení: AZURE_OPENAI_DEPLOYMENT_NAME.

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

setx AZURE_OPENAI_DEPLOYMENT_NAME "REPLACE_WITH_YOUR_DEPLOYMENT_NAME" 

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 interpreternástrojů a také vlastních nástrojů, které vytvoříte prostřednictvím funkcí.

Přihlaste se k Azure a az login pak vytvořte a spusťte asistenta s následujícím doporučeným modulem TypeScript bez hesla (index.ts):

import "dotenv/config";
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)}`);
    }
  }
}

Pokud chcete použít klíč služby pro ověřování, můžete vytvořit a spustit asistenta pomocí následujícího modulu TypeScript (index.ts):

import "dotenv/config";
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";

// Get environment variables
const azureOpenAIKey = process.env.AZURE_OPENAI_KEY as string;
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 (!azureOpenAIKey || !azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) {
  throw new Error(
    "Please set AZURE_OPENAI_KEY and AZURE_OPENAI_ENDPOINT and AZURE_OPENAI_DEPLOYMENT_NAME in your environment variables."
  );
}

// Get Azure SDK client
const getClient = (): AzureOpenAI => {
  const assistantsClient = new AzureOpenAI({
    endpoint: azureOpenAIEndpoint,
    apiVersion: openAIVersion,
    apiKey: azureOpenAIKey,
  });
  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)}`);
    }
  }
}

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

  • Předplatné Azure – Vytvoření předplatného zdarma

  • Přístup udělený službě Azure OpenAI v požadovaném předplatném Azure

    V současné době je přístup k této službě udělován pouze aplikací. Pokud chcete získat přístup ke službě Azure OpenAI, vyplňte formulář na adrese https://aka.ms/oai/access. Pokud máte problém, otevřete problém v tomto úložišti a kontaktujte nás.

  • Python 3.8 nebo novější verze

  • Asistenti Azure OpenAI jsou aktuálně k dispozici ve Švédsku – střed, USA – východ 2 a Austrálie – východ. Další informace o dostupnosti modelu v těchto oblastech najdete v průvodci modely.

  • Doporučujeme projít si poznámku o transparentnosti zodpovědné umělé inteligence a další zodpovědné prostředky AI, abyste se seznámili s možnostmi a omezeními služby Azure OpenAI.

  • V tomto příkladu gpt-4 (1106-preview) se použil prostředek Azure OpenAI s nasazeným modelem.

Nastavení

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

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

Název proměnné Hodnota
ENDPOINT Tuto hodnotu najdete v části Klíče a koncový bod při zkoumání prostředku na webu Azure Portal. Případně můžete tuto hodnotu najít v nabídce Azure OpenAI Studio>Hřiště>Zobrazení kódu. 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 nabídce Správa prostředků>Nasazení na webu Azure Portal nebo případně v nabídce Správa>Nasazení v Azure OpenAI Studio.

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

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

Proměnné prostředí

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

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é