Udostępnij za pośrednictwem


Dokumentacja komunikatów 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 szybkie, obsługuje zapytania równoległe za pośrednictwem wyszukiwania wielowątkowego i oferuje ulepszone ponowne klasyfikowanie praz ponowne zapisywanie zapytań.
    • Magazyn wektorów to nowy obiekt w interfejsie API. Po dodaniu pliku do magazynu wektorów jest on automatycznie analizowany, fragmentowany i osadzany oraz przygotowywany do wyszukiwania. Magazyny wektorów 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.

Utwórz komunikat

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages?api-version=2024-08-01-preview

Utwórz wiadomość.

Parametr ścieżki

Parametr Type Wymagania opis
thread_id string Wymagania Identyfikator wątku do utworzenia komunikatu.

Treść żądania

Nazwisko Type Wymagania opis
role string Wymagania Rola jednostki tworzącej komunikat. Możliwe wartości to user i assistant. user wskazuje, że komunikat jest wysyłany przez rzeczywistego użytkownika i powinien być używany w większości przypadków do reprezentowania komunikatów generowanych przez użytkownika. assistant wskazuje, że komunikat jest generowany przez asystenta. Użyj tej wartości, aby wstawić wiadomości z asystenta do konwersacji.
content string Wymagania Zawartość wiadomości.
attachments tablica Opcjonalnie Lista plików dołączonych do wiadomości oraz narzędzia, do których należy je dodać.
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.

Zwraca

Obiekt komunikatu.

Przykładowe żądanie utworzenia komunikatu

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")
    )

thread_message = client.beta.threads.messages.create(
  "thread_abc123",
  role="user",
  content="How does AI work? Explain it in simple terms.",
)
print(thread_message)

Wyświetl listę komunikatów

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages?api-version=2024-08-01-preview

Zwraca listę komunikatów dla danego wątku.

Parametry ścieżki

Parametr Type Wymagania opis
thread_id string Wymagania Identyfikator wątku, do którego należą komunikaty.

Parametry zapytań

Nazwisko Type Wymagania opis
limit integer Opcjonalne — wartości domyślne do 20 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. po 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.
run_id string Opcjaanl Filtruj komunikaty według identyfikatora przebiegu, który je wygenerował.
before string Opcjonalnie Kursor do użycia w stronicowaniu. przed jest identyfikatorem obiektu, który definiuje 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 komunikatów.

Przykładowe żądanie komunikatów listy

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")
    )

thread_messages = client.beta.threads.messages.list("thread_abc123")
print(thread_messages.data)

Pobieranie komunikatu

GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

Pobiera plik komunikatu.

Parametry ścieżki

Parametr Type Wymagania opis
thread_id string Wymagania Identyfikator wątku, do którego należy komunikat.
message_id string Wymagania Identyfikator wiadomości do pobrania.

Zwraca

Obiekt komunikatu pasujący do określonego identyfikatora.

Przykładowe żądanie pobrania komunikatu

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")
    )

message = client.beta.threads.messages.retrieve(
  message_id="msg_abc123",
  thread_id="thread_abc123",
)
print(message)

Modyfikowanie komunikatu

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

Modyfikuje komunikat.

Parametry ścieżki

Parametr Type Wymagania opis
thread_id string Wymagania Identyfikator wątku, do którego należy komunikat.
message_id string Wymagania Identyfikator wiadomości do zmodyfikowania.

Treść żądania

Parametr Type Wymagania opis
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.

Zwraca

Zmodyfikowany obiekt komunikatu .

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")
    )

message = client.beta.threads.messages.update(
  message_id="msg_abc12",
  thread_id="thread_abc123",
  metadata={
    "modified": "true",
    "user": "abc123",
  },
)
print(message)

Usuwanie komunikatu

DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/messages/{message_id}?api-version=2024-08-01-preview

Usuwa komunikat.

Parametry ścieżki

Parametr Type Wymagania opis
thread_id string Wymagania Identyfikator wątku, do którego należy komunikat.
message_id string Wymagania Identyfikator wiadomości do zmodyfikowania.

Zwraca

Stan usunięcia obiektu komunikatu.

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")
    )

deleted_message = client.beta.threads.messages.delete(
  message_id="msg_abc12",
  thread_id="thread_abc123",
)
print(deleted_message)

Obiekt komunikatu

Reprezentuje komunikat w wątku.

Nazwisko Pisz 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 thread.message.
created_at integer Sygnatura czasowa systemu Unix (w sekundach) dla momentu utworzenia komunikatu.
thread_id string Identyfikator wątku, do którego należy ten komunikat.
role string Jednostka, która wygenerowała komunikat. Jeden z user lub assistant.
content tablica Zawartość wiadomości w tablicy tekstu i/lub obrazów.
assistant_id ciąg lub wartość null Jeśli ma to zastosowanie, identyfikator asystenta, który napisał tę wiadomość.
run_id ciąg lub wartość null Jeśli ma to zastosowanie, identyfikator przebiegu skojarzonego z tworzeniem tego komunikatu.
file_ids tablica Lista identyfikatorów plików, których powinien używać asystent. Przydatne w przypadku narzędzi, takich jak pobieranie i code_interpreter, które mogą uzyskiwać dostęp do plików. Do wiadomości można dołączyć maksymalnie 10 plików.
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.