Dokumentacja interfejsu API asystentów (wersja zapoznawcza)
Uwaga
- Wyszukiwanie plików może pozyskiwać maksymalnie 10 000 plików na asystenta — 500 razy więcej niż wcześniej. Jest szybki, obsługuje zapytania równoległe za pośrednictwem wyszukiwania wielowątkowego i oferuje ulepszone ponowne korbowanie i ponowne zapisywanie zapytań.
- Magazyn wektorowy to nowy obiekt w interfejsie API. Po dodaniu pliku do magazynu wektorów jest on automatycznie analizowany, fragmentowany i osadzony, gotowy do wyszukiwania. Magazyny wektorowe mogą być używane między asystentami i wątkami, upraszczając zarządzanie plikami i rozliczenia.
- Dodaliśmy obsługę parametru
tool_choice
, który może służyć do wymuszenia użycia określonego narzędzia (takiego jak wyszukiwanie plików, interpreter kodu lub funkcja) w określonym uruchomieniu.
Ten artykuł zawiera dokumentację referencyjną dla języka Python i interfejsu API REST dla nowego interfejsu API Asystentów (wersja zapoznawcza). Więcej szczegółowych wskazówek krok po kroku znajduje się w przewodniku wprowadzającym.
Tworzenie asystenta
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
Utwórz asystenta przy użyciu modelu i instrukcji.
Treść żądania
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
model | string | Wymagania | Nazwa wdrożenia modelu do użycia. |
name | ciąg lub wartość null | Opcjonalnie | Nazwa asystenta. Maksymalna długość to 256 znaków. |
opis | ciąg lub wartość null | Opcjonalnie | Opis asystenta. Maksymalna długość to 512 znaków. |
instrukcje | ciąg lub wartość null | Opcjonalnie | Instrukcje systemowe używane przez asystenta. Maksymalna długość to 256 000 znaków. |
tools | tablica | Opcjonalnie | Wartości domyślne to []. Lista narzędzi włączonych w asystencie. Może istnieć maksymalnie 128 narzędzi na asystenta. Narzędzia mogą być obecnie typami code_interpreter , lub function . |
file_ids | tablica | Opcjonalnie | Wartości domyślne to []. Lista identyfikatorów plików dołączonych do tego asystenta. Może istnieć maksymalnie 20 plików dołączonych do asystenta. Pliki są uporządkowane według daty utworzenia w kolejności rosnącej. |
metadane | map | Opcjonalnie | Zestaw 16 par klucz-wartość, które można dołączyć do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w formacie ustrukturyzowanym. Klucze mogą mieć długość maksymalnie 64 znaków, a wartości mogą mieć długość maksymalnie 512 znaków. |
temperature | liczba lub wartość null | Opcjonalnie | Wartość domyślna to 1. Określa temperaturę próbkowania do użycia z zakresu od 0 do 2. Wyższe wartości, takie jak 0,8, sprawią, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak 0,2, sprawią, że będzie bardziej skoncentrowany i deterministyczny. |
top_p | liczba lub wartość null | Opcjonalnie | Wartość domyślna to 1. Alternatywą dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, gdzie model uwzględnia wyniki tokenów z top_p masą prawdopodobieństwa. Dlatego 0,1 oznacza, że uwzględniane są tylko tokeny składające się z pierwszej masy prawdopodobieństwa o 10%. Ogólnie zalecamy zmianę tej wartości lub temperatury, ale nie obu. |
response_format | ciąg lub obiekt | Opcjonalnie | Określa format, który model musi wyświetlić. Zgodny z GPT-4 Turbo i wszystkimi modelami GPT-3.5 Turbo od gpt-3.5-turbo-1106. Ustawienie tego parametru w celu { "type": "json_object" } włączenia trybu JSON, co gwarantuje, że komunikat generowany przez model jest prawidłowym kodem JSON. Co ważne, w przypadku korzystania z trybu JSON należy również poinstruować model, aby samodzielnie wygenerował kod JSON przy użyciu komunikatu systemowego lub użytkownika. Bez tej instrukcji model może wygenerować niekończący się strumień białych znaków, dopóki generowanie nie osiągnie limitu tokenu, co skutkuje długotrwałym i pozornie "zablokowanym" żądaniem. Ponadto zawartość wiadomości może zostać częściowo odcięta w przypadku użycia finish_reason="length" elementu , co oznacza przekroczenie max_tokens generacji lub przekroczenie maksymalnej długości kontekstu konwersacji. |
Zwraca
Przykładowe żądanie asystenta tworzenia
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-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"}]
)
Tworzenie pliku asystenta
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}/files?api-version=2024-05-01-preview
Utwórz plik asystenta, dołączając element File
do elementu assistant
.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id |
string | Wymagania | Identyfikator asystenta, do którego powinien zostać dołączony plik. |
Treść żądania
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
File_id | string | Wymagania | Identyfikator pliku (z identyfikatorem purpose="asystentami"), którego powinien używać asystent. Przydatne w przypadku narzędzi, takich jak code_interpreter, które mogą uzyskiwać dostęp do plików. |
Zwraca
Obiekt pliku asystenta.
Przykładowe żądanie utworzenia pliku asystenta
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant_file = client.beta.assistants.files.create(
assistant_id="asst_abc123",
file_id="assistant-abc123"
)
print(assistant_file)
Asystentzy listy
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
Zwraca listę wszystkich asystentów.
Parametry zapytań
Parametr | Type | Wymagania | opis |
---|---|---|---|
limit |
integer | Opcjonalnie | Limit liczby zwracanych obiektów. Limit może mieścić się w zakresie od 1 do 100, a wartość domyślna to 20. |
order |
string | Opcjonalne — wartości domyślne do desc | Kolejność sortowania według znacznika czasu created_at obiektów. asc dla kolejności rosnącej i desc dla kolejności malejącej. |
after |
string | Opcjonalnie | Kursor do użycia w stronicowaniu. after jest identyfikatorem obiektu definiującym miejsce na liście. Jeśli na przykład wykonasz żądanie listy i otrzymasz 100 obiektów, kończąc się obj_foo, kolejne wywołanie może obejmować polecenie after=obj_foo w celu pobrania następnej strony listy. |
before |
string | Opcjonalnie | Kursor do użycia w stronicowaniu. before jest identyfikatorem obiektu definiującym miejsce na liście. Jeśli na przykład wykonasz żądanie listy i otrzymasz 100 obiektów, kończąc się obj_foo, kolejne wywołanie może zawierać wartość before=obj_foo w celu pobrania poprzedniej strony listy. |
Zwraca
Przykładowe asystenty listy
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistants = client.beta.assistants.list(
order="desc",
limit="20",
)
print(my_assistants.data)
Wyświetlanie listy plików asystenta
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}/files?api-version=2024-05-01-preview
Zwraca listę plików asystenta.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id | string | Wymagania | Identyfikator asystenta, do którego należy plik. |
Parametry zapytań
Parametr | Type | Wymagania | opis |
---|---|---|---|
limit |
integer | Opcjonalnie | Limit liczby zwracanych obiektów. Limit może mieścić się w zakresie od 1 do 100, a wartość domyślna to 20. |
order |
string | Opcjonalne — wartości domyślne do desc | Kolejność sortowania według znacznika czasu created_at obiektów. asc dla kolejności rosnącej i desc dla kolejności malejącej. |
after |
string | Opcjonalnie | Kursor do użycia w stronicowaniu. after jest identyfikatorem obiektu definiującym miejsce na liście. Jeśli na przykład wykonasz żądanie listy i otrzymasz 100 obiektów, kończąc się obj_foo, kolejne wywołanie może obejmować polecenie after=obj_foo w celu pobrania następnej strony listy. |
before |
string | Opcjonalnie | Kursor do użycia w stronicowaniu. before jest identyfikatorem obiektu definiującym miejsce na liście. Jeśli na przykład wykonasz żądanie listy i otrzymasz 100 obiektów, kończąc się obj_foo, kolejne wywołanie może zawierać wartość before=obj_foo w celu pobrania poprzedniej strony listy. |
Zwraca
Lista obiektów plików asystenta
Przykładowe pliki asystenta listy
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant_files = client.beta.assistants.files.list(
assistant_id="asst_abc123"
)
print(assistant_files)
Pobieranie asystenta
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-05-01-preview
Pobiera asystenta.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id |
string | Wymagania | Identyfikator asystenta do pobrania. |
Zwroty
Obiekt asystenta pasujący do określonego identyfikatora.
Przykładowy asystent pobierania
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistant = client.beta.assistants.retrieve("asst_abc123")
print(my_assistant)
Pobieranie pliku asystenta
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}/files/{file-id}?api-version=2024-05-01-preview
Pobiera plik Asystenta.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id | string | Wymagania | Identyfikator asystenta, do którego należy plik. |
File_id | string | Wymagania | Identyfikator pliku, który otrzymujemy |
Zwraca
Obiekt pliku asystenta pasujący do określonego identyfikatora
Przykład pobierania pliku asystenta
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant_file = client.beta.assistants.files.retrieve(
assistant_id="asst_abc123",
file_id="assistant-abc123"
)
print(assistant_file)
Modyfikowanie asystenta
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-05-01-preview
Modyfikuje asystenta.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id | string | Wymagania | Identyfikator asystenta, do którego należy plik. |
Treść żądania
Parametr | Type | Wymagania | opis |
---|---|---|---|
model |
Opcjonalnie | Nazwa wdrożenia modelu do użycia. | |
name |
ciąg lub wartość null | Opcjonalnie | Nazwa asystenta. Maksymalna długość to 256 znaków. |
description |
ciąg lub wartość null | Opcjonalnie | Opis asystenta. Maksymalna długość to 512 znaków. |
instructions |
ciąg lub wartość null | Opcjonalnie | Instrukcje systemowe używane przez asystenta. Maksymalna długość to 32768 znaków. |
tools |
tablica | Opcjonalnie | Wartości domyślne to []. Lista narzędzi włączonych w asystencie. Może istnieć maksymalnie 128 narzędzi na asystenta. Narzędzia mogą być typami code_interpreter lub funkcjami. |
file_ids |
tablica | Opcjonalnie | Wartości domyślne to []. Lista identyfikatorów plików dołączonych do tego asystenta. Może istnieć maksymalnie 20 plików dołączonych do asystenta. Pliki są uporządkowane według daty utworzenia w kolejności rosnącej. Jeśli plik został wcześniej dołączony do listy, ale nie zostanie wyświetlony na liście, zostanie usunięty z asystenta. |
metadata |
map | Opcjonalnie | Zestaw 16 par klucz-wartość, które można dołączyć do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w formacie ustrukturyzowanym. Klucze mogą mieć długość maksymalnie 64 znaków, a wartości mogą mieć długość maksymalnie 512 znaków. |
Zwroty
Zmodyfikowany obiekt asystenta.
Przykładowy asystent modyfikacji
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-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
file_ids=["assistant-abc123", "assistant-abc456"],
)
print(my_updated_assistant)
Usuwanie asystenta
DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-05-01-preview
Usuń asystenta.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id |
string | Wymagania | Identyfikator asystenta, do którego należy plik. |
Zwroty
Stan usunięcia.
Przykładowy asystent usuwania
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
response = client.beta.assistants.delete("asst_abc123")
print(response)
Usuń plik asystenta
DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}/files/{file-id}?api-version=2024-05-01-preview
Usuń plik asystenta.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
assistant_id |
string | Wymagania | Identyfikator asystenta, do którego należy plik. |
file_id |
string | Wymagania | Identyfikator pliku do usunięcia |
Zwroty
Stan usunięcia pliku
Przykładowy plik asystenta usuwania
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
deleted_assistant_file = client.beta.assistants.files.delete(
assistant_id="asst_abc123",
file_id="assistant-abc123"
)
print(deleted_assistant_file)
Dokumentacja interfejsu API przekazywania plików
Asystenci używają tego samego interfejsu API do przekazywania plików jako dostrajania. Podczas przekazywania pliku należy określić odpowiednią wartość dla parametru purpose.
Obiekt Asystenta
Pole | Typ | opis |
---|---|---|
id |
string | Identyfikator, do którego można odwoływać się w punktach końcowych interfejsu API. |
object |
string | Typ obiektu, który jest zawsze asystentem. |
created_at |
integer | Sygnatura czasowa systemu Unix (w sekundach) dla momentu utworzenia asystenta. |
name |
ciąg lub wartość null | Nazwa asystenta. Maksymalna długość to 256 znaków. |
description |
ciąg lub wartość null | Opis asystenta. Maksymalna długość to 512 znaków. |
model |
string | Nazwa nazwy wdrożenia modelu do użycia. |
instructions |
ciąg lub wartość null | Instrukcje systemowe używane przez asystenta. Maksymalna długość to 32768 znaków. |
tools |
tablica | Lista narzędzi włączona w asystencie. Może istnieć maksymalnie 128 narzędzi na asystenta. Narzędzia mogą być typami code_interpreter lub funkcjami. |
file_ids |
tablica | Lista identyfikatorów plików dołączonych do tego asystenta. Może istnieć maksymalnie 20 plików dołączonych do asystenta. Pliki są uporządkowane według daty utworzenia w kolejności rosnącej. |
metadata |
map | Zestaw 16 par klucz-wartość, które można dołączyć do obiektu. Może to być przydatne do przechowywania dodatkowych informacji o obiekcie w formacie ustrukturyzowanym. Klucze mogą mieć długość maksymalnie 64 znaków, a wartości mogą mieć długość maksymalnie 512 znaków. |
Obiekt pliku Asystenta
Pole | Typ | opis |
---|---|---|
id |
string | Identyfikator, do którego można odwoływać się w punktach końcowych interfejsu API. |
object |
string | Typ obiektu, który jest zawsze assistant.file |
created_at |
integer | Sygnatura czasowa systemu Unix (w sekundach) dla momentu utworzenia pliku asystenta. |
assistant_id |
string | Identyfikator asystenta, do którego jest dołączony plik. |