Referenční informace k rozhraní API asistentů (Preview)
Poznámka:
- Hledání souborů může ingestovat až 10 000 souborů na asistenta – 500krát více než dříve. Je to rychlý způsob, podporuje paralelní dotazy prostřednictvím vícevláknového vyhledávání a vylepšeného řazení a přepisování dotazů.
- Vektorové úložiště je nový objekt v rozhraní API. Jakmile se soubor přidá do úložiště vektorů, automaticky se parsuje, zachytá a vloží a připraví k hledání. Vektorová úložiště se dají používat napříč asistenty a vlákny, což zjednodušuje správu souborů a fakturaci.
- Přidali jsme podporu parametru
tool_choice
, který se dá použít k vynucení použití konkrétního nástroje (například vyhledávání souborů, interpret kódu nebo funkce) v určitém spuštění.
Tento článek obsahuje referenční dokumentaci pro Python a REST pro nové rozhraní API asistentů (Preview). Podrobnější podrobné pokyny najdete v úvodní příručce.
Vytvoření asistenta
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
Vytvořte asistenta s modelem a pokyny.
Text požadavku
Name | Type | Požadováno | Popis |
---|---|---|---|
model | řetězec | Požaduje se | Název nasazení modelu, který se má použít. |
name | řetězec nebo null | Volitelné | Jméno asistenta. Maximální délka je 256 znaků. |
description | řetězec nebo null | Volitelné | Popis asistenta. Maximální délka je 512 znaků. |
pokyny | řetězec nebo null | Volitelné | Systémové pokyny, které asistent používá. Maximální délka je 256 000 znaků. |
tools | pole | Volitelné | Výchozí hodnota je []. Seznam nástrojů povolených v asistentovi. Na asistenta může být maximálně 128 nástrojů. Nástroje mohou být aktuálně typu code_interpreter , nebo function . Popis function může být maximálně 1 024 znaků. |
metadata | map | Volitelné | Sada 16 párů klíč-hodnota, které lze připojit k objektu. To může být užitečné pro ukládání dalších informací o objektu ve strukturovaném formátu. Klíče můžou mít maximálně 64 znaků a hodnoty můžou mít maximálně 512 znaků. |
Teplota | číslo nebo null | Volitelné | Výchozí hodnota je 1. Určuje, jakou teplotu vzorkování se má použít, mezi 0 a 2. Vyšší hodnoty jako 0,8 způsobí, že výstup bude náhodnější, zatímco nižší hodnoty, jako je 0,2, zajistí větší zaměření a deterministiku. |
top_p | číslo nebo null | Volitelné | Výchozí hodnota je 1. Alternativou k odběru vzorků s teplotou, označovanou jako vzorkování jádra, kde model bere v úvahu výsledky tokenů s top_p hmotností pravděpodobnosti. Hodnota 0,1 tedy znamená, že se považují pouze tokeny, které tvoří 10% hmotnost pravděpodobnosti. Obecně doporučujeme změnit tuto nebo teplotu, ale ne obojí. |
response_format | řetězec nebo objekt | Volitelné | Určuje formát, který musí model vypíše. Kompatibilní s GPT-4 Turbo a všemi modely GPT-3.5 Turbo od gpt-3.5-turbo-1106. Nastavením tohoto parametru { "type": "json_object" } povolíte režim JSON, který zaručuje, že zpráva, kterou model vygeneruje, je platný JSON. Důležité je, že pokud používáte režim JSON, musíte také dát modelu pokyn, aby vygeneroval JSON sami pomocí systémové nebo uživatelské zprávy. Bez této instrukce může model vygenerovat nede-endový proud prázdných znaků, dokud generace nedosáhne limitu tokenu, což vede k dlouhotrvajícímu a zdánlivě zablokovanému požadavku. Kromě toho může být obsah zprávy částečně oříznutý, pokud použijete finish_reason="length" , což znamená, že generování překročilo max_tokens nebo konverzace překročila maximální délku kontextu. |
tool_resources | objekt | Volitelné | Sada prostředků, které používají nástroje asistenta. Prostředky jsou specifické pro typ nástroje. Nástroj například code_interpreter vyžaduje seznam ID souborů, zatímco file_search nástroj vyžaduje seznam ID úložiště vektorů. |
typy response_format
string
auto
je výchozí hodnota.
object
Možné type
hodnoty: text
, json_object
, json_schema
.
json_schema
Name | Typ | Popis | Výchozí | Povinné/volitelné |
---|---|---|---|---|
description |
string | Popis formátu odpovědi, který model používá k určení způsobu reakce ve formátu. | Volitelné | |
name |
string | Název formátu odpovědi. Musí být a-z, A-Z, 0-9 nebo obsahovat podtržítka a pomlčky s maximální délkou 64. | Požaduje se | |
schema |
objekt | Schéma pro formát odpovědi popsané jako objekt schématu JSON. | Volitelné | |
strict |
logická hodnota nebo hodnota null | Zda povolit přísné dodržování schématu při generování výstupu. Pokud je nastavená hodnota true, model bude vždy dodržovat přesné schéma definované v schema poli. Pouze podmnožina schématu JSON je podporována, pokud strict je true . |
false (nepravda) | Volitelné |
tool_resources vlastnosti
code_interpreter
Name | Typ | Popis | Výchozí |
---|---|---|---|
file_ids |
pole | Seznam ID souborů zpřístupněných nástroji code_interpreter K nástroji může být přidruženo maximálně 20 souborů. | [] |
file_search
Name | Typ | Popis | Povinné/volitelné |
---|---|---|---|
vector_store_ids |
pole | Vektorové úložiště připojené k tomuto vláknu. K vláknu může být připojeno maximálně 1 vektorové úložiště. | Volitelné |
vector_stores |
pole | Pomocná rutina pro vytvoření vektorového úložiště s file_ids a jeho připojení k tomuto vláknu. K vláknu může být připojeno maximálně 1 vektorové úložiště. | Volitelné |
vector_stores
Name | Typ | Popis | Povinné/volitelné |
---|---|---|---|
file_ids |
pole | Seznam ID souborů, které se mají přidat do úložiště vektorů. V úložišti vektorů může být maximálně 1 0000 souborů. | Volitelné |
chunking_strategy |
objekt | Strategie vytváření bloků dat použitá k vytvoření bloků souborů. Pokud není nastavená, použije se automatická strategie. | Volitelné |
metadata |
map | Sada 16 párů klíč-hodnota, které lze připojit k úložišti vektorů. To může být užitečné pro ukládání dalších informací o vektorovém úložišti ve strukturovaném formátu. Klíče můžou mít maximálně 64 znaků a hodnoty můžou mít maximálně 512 znaků. | Volitelné |
chunking_strategy
Name | Typ | Popis | Povinné nebo volitelné |
---|---|---|---|
Auto Chunking Strategy |
objekt | Výchozí strategie. Tato strategie v současné době používá max_chunk_size_tokens 800 chunk_overlap_tokens 400 type je vždycky auto . |
Požaduje se |
Static Chunking Strategy |
objekt | type Vždy static |
Požaduje se |
Strategie statického vytváření bloků dat
Name | Typ | Popis | Povinné/volitelné |
---|---|---|---|
max_chunk_size_tokens |
integer | Maximální počet tokenů v každém bloku dat. Výchozí hodnota je 800 . Minimální hodnota je 100 a maximální hodnota je 4096 . |
Požaduje se |
chunk_overlap_tokens |
integer | Počet tokenů, které se překrývají mezi bloky dat. Výchozí hodnota je 400 . Všimněte si, že překrytí nesmí překročit polovinu .max_chunk_size_tokens |
Požaduje se |
Návraty
Příklad žádosti o vytvoření asistenta
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
instructions="You are an AI assistant that can write code to help answer math questions",
model="<REPLACE WITH MODEL DEPLOYMENT NAME>", # replace with model deployment name.
tools=[{"type": "code_interpreter"}]
)
Seznam asistentů
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
Vrátí seznam všech asistentů.
Parametry dotazů
Parametr | Type | Požadováno | Popis |
---|---|---|---|
limit |
integer | Volitelné | Omezení počtu vrácených objektů. Limit může být v rozsahu 1 až 100 a výchozí hodnota je 20. |
order |
string | Volitelné – výchozí hodnoty pro desc | Seřaďte pořadí podle časového razítka created_at objektů. asc pro vzestupné pořadí a desc pro sestupné pořadí. |
after |
řetězec | Volitelné | Kurzor pro použití ve stránkování after je ID objektu, které definuje vaše místo v seznamu. Pokud například vytvoříte požadavek na seznam a obdržíte 100 objektů, končící na obj_foo, může následující volání zahrnovat after=obj_foo, aby se načte další stránka seznamu. |
before |
řetězec | Volitelné | Kurzor pro použití ve stránkování before je ID objektu, které definuje vaše místo v seznamu. Pokud například vytvoříte požadavek na seznam a obdržíte 100 objektů, končící na obj_foo, může následující volání zahrnovat před=obj_foo, aby bylo možné načíst předchozí stránku seznamu. |
Návraty
Příklady pomocníků se seznamem
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistants = client.beta.assistants.list(
order="desc",
limit="20",
)
print(my_assistants.data)
Načíst asistenta
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
Načte asistenta.
Parametry cesty
Parametr | Type | Požadováno | Popis |
---|---|---|---|
assistant_id |
string | Požaduje se | ID asistenta, který se má načíst. |
Vrácení
Objekt asistenta odpovídající zadanému ID.
Příklad pomocníka pro načtení
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistant = client.beta.assistants.retrieve("asst_abc123")
print(my_assistant)
Úprava asistenta
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
Upraví asistenta.
Parametry cesty
Parametr | Type | Požadováno | Popis |
---|---|---|---|
assistant_id | řetězec | Požaduje se | ID asistenta, do které soubor patří. |
Text požadavku
Parametr | Type | Požadováno | Popis |
---|---|---|---|
model |
Volitelné | Název nasazení modelu, který se má použít. | |
name |
řetězec nebo null | Volitelné | Jméno asistenta. Maximální délka je 256 znaků. |
description |
řetězec nebo null | Volitelné | Popis asistenta. Maximální délka je 512 znaků. |
instructions |
řetězec nebo null | Volitelné | Systémové pokyny, které asistent používá. Maximální délka je 32768 znaků. |
tools |
pole | Volitelné | Výchozí hodnota je []. Seznam nástrojů povolených v asistentovi. Na asistenta může být maximálně 128 nástrojů. Nástroje můžou být typu code_interpreter nebo funkce. Popis function může být maximálně 1 024 znaků. |
metadata |
map | Volitelné | Sada 16 párů klíč-hodnota, které lze připojit k objektu. To může být užitečné pro ukládání dalších informací o objektu ve strukturovaném formátu. Klíče můžou mít maximálně 64 znaků a hodnoty můžou mít maximálně 512 znaků. |
temperature |
číslo nebo null | Volitelné | Výchozí hodnota je 1. Určuje, jakou teplotu vzorkování se má použít, mezi 0 a 2. Vyšší hodnoty jako 0,8 způsobí, že výstup bude náhodnější, zatímco nižší hodnoty, jako je 0,2, zajistí větší zaměření a deterministiku. |
top_p |
číslo nebo null | Volitelné | Výchozí hodnota je 1. Alternativou k odběru vzorků s teplotou, označovanou jako vzorkování jádra, kde model bere v úvahu výsledky tokenů s top_p hmotností pravděpodobnosti. Hodnota 0,1 tedy znamená, že se považují pouze tokeny, které tvoří 10% hmotnost pravděpodobnosti. Obecně doporučujeme změnit tuto nebo teplotu, ale ne obojí. |
response_format |
řetězec nebo objekt | Volitelné | Určuje formát, který musí model vypíše. Kompatibilní s GPT-4 Turbo a všemi modely GPT-3.5 Turbo od gpt-3.5-turbo-1106. Nastavením tohoto parametru { "type": "json_object" } povolíte režim JSON, který zaručuje, že zpráva, kterou model vygeneruje, je platný JSON. Důležité je, že pokud používáte režim JSON, musíte také dát modelu pokyn, aby vygeneroval JSON sami pomocí systémové nebo uživatelské zprávy. Bez této instrukce může model vygenerovat nede-endový proud prázdných znaků, dokud generace nedosáhne limitu tokenu, což vede k dlouhotrvajícímu a zdánlivě zablokovanému požadavku. Kromě toho může být obsah zprávy částečně oříznutý, pokud použijete finish_reason="length" , což znamená, že generování překročilo max_tokens nebo konverzace překročila maximální délku kontextu. |
tool_resources |
objekt | Volitelné | Sada prostředků, které používají nástroje asistenta. Prostředky jsou specifické pro typ nástroje. Nástroj například code_interpreter vyžaduje seznam ID souborů, zatímco file_search nástroj vyžaduje seznam ID úložiště vektorů. |
Vrácení
Upravený objekt pomocníka.
Příklad úpravy asistenta
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_updated_assistant = client.beta.assistants.update(
"asst_abc123",
instructions="You are an HR bot, and you have access to files to answer employee questions about company policies. Always respond with info from either of the files.",
name="HR Helper",
tools=[{"type": "code-interpreter"}],
model="gpt-4", #model = model deployment name
)
print(my_updated_assistant)
Odstranit asistenta
DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
Odstraňte asistenta.
Parametry cesty
Parametr | Type | Požadováno | Popis |
---|---|---|---|
assistant_id |
string | Požaduje se | ID asistenta, do které soubor patří. |
Vrácení
Stav odstranění
Příklad pomocníka pro odstranění
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
response = client.beta.assistants.delete("asst_abc123")
print(response)
Referenční informace k rozhraní API pro nahrání souborů
Asistenti používají stejné rozhraní API pro nahrávání souborů jako vyladění. Při nahrávání souboru musíte zadat odpovídající hodnotu pro parametr účelu.
Objekt Pomocníka
Pole | Typ | Description |
---|---|---|
id |
string | Identifikátor, na který se dá odkazovat v koncových bodech rozhraní API. |
object |
string | Typ objektu, který je vždy pomocníkem. |
created_at |
integer | Časové razítko unixu (v sekundách) pro vytvoření asistenta. |
name |
řetězec nebo null | Jméno asistenta. Maximální délka je 256 znaků. |
description |
řetězec nebo null | Popis asistenta. Maximální délka je 512 znaků. |
model |
string | Název názvu nasazení modelu, který se má použít. |
instructions |
řetězec nebo null | Systémové pokyny, které asistent používá. Maximální délka je 32768 znaků. |
tools |
pole | Seznam nástrojů povolených v asistentovi. Na asistenta může být maximálně 128 nástrojů. Nástroje můžou být typu code_interpreter nebo funkce. Popis function může být maximálně 1 024 znaků. |
metadata |
map | Sada 16 párů klíč-hodnota, které lze připojit k objektu. To může být užitečné pro ukládání dalších informací o objektu ve strukturovaném formátu. Klíče můžou mít maximálně 64 znaků a hodnoty můžou mít maximálně 512 znaků. |
temperature |
číslo nebo null | Výchozí hodnota je 1. Určuje, jakou teplotu vzorkování se má použít, mezi 0 a 2. Vyšší hodnoty jako 0,8 způsobí, že výstup bude náhodnější, zatímco nižší hodnoty, jako je 0,2, zajistí větší zaměření a deterministiku. |
top_p |
číslo nebo null | Výchozí hodnota je 1. Alternativou k odběru vzorků s teplotou, označovanou jako vzorkování jádra, kde model bere v úvahu výsledky tokenů s top_p hmotností pravděpodobnosti. Hodnota 0,1 tedy znamená, že se považují pouze tokeny, které tvoří 10% hmotnost pravděpodobnosti. Obecně doporučujeme změnit tuto nebo teplotu, ale ne obojí. |
response_format |
řetězec nebo objekt | Určuje formát, který musí model vypíše. Kompatibilní s GPT-4 Turbo a všemi modely GPT-3.5 Turbo od gpt-3.5-turbo-1106. Nastavením tohoto parametru { "type": "json_object" } povolíte režim JSON, který zaručuje, že zpráva, kterou model vygeneruje, je platný JSON. Důležité je, že pokud používáte režim JSON, musíte také dát modelu pokyn, aby vygeneroval JSON sami pomocí systémové nebo uživatelské zprávy. Bez této instrukce může model vygenerovat nede-endový proud prázdných znaků, dokud generace nedosáhne limitu tokenu, což vede k dlouhotrvajícímu a zdánlivě zablokovanému požadavku. Kromě toho může být obsah zprávy částečně oříznutý, pokud použijete finish_reason="length" , což znamená, že generování překročilo max_tokens nebo konverzace překročila maximální délku kontextu. |
tool_resources |
objekt | Sada prostředků, které používají nástroje asistenta. Prostředky jsou specifické pro typ nástroje. Nástroj například code_interpreter vyžaduje seznam ID souborů, zatímco file_search nástroj vyžaduje seznam ID úložiště vektorů. |