Dokumentacja przebiegó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.
Tworzenie przebiegu
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview
Utwórz przebieg.
Parametr ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator wątku do utworzenia komunikatu. |
Treść żądania
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
assistant_id |
string | Wymagania | Identyfikator asystenta do wykonania tego przebiegu. |
model |
ciąg lub wartość null | Opcjonalnie | Nazwa wdrożenia modelu, która ma być używana do wykonania tego przebiegu. Jeśli w tym miejscu zostanie podana wartość, zastąpi ona nazwę wdrożenia modelu skojarzoną z asystentem. Jeśli nie, zostanie użyta nazwa wdrożenia modelu skojarzona z asystentem. |
instructions |
ciąg lub wartość null | Opcjonalnie | Zastępuje instrukcje asystenta. Jest to przydatne w przypadku modyfikowania zachowania dla poszczególnych przebiegów. |
additional_instructions |
string | Opcjonalnie | Dołącza dodatkowe instrukcje na końcu instrukcji dotyczących przebiegu. Jest to przydatne w przypadku modyfikowania zachowania dla poszczególnych przebiegów bez zastępowania innych instrukcji. |
additional_messages |
tablica | Opcjonalnie | Dodaje dodatkowe komunikaty do wątku przed utworzeniem przebiegu. |
tools |
tablica lub wartość null | Opcjonalnie | Zastąpić narzędzia, których asystent może użyć na potrzeby tego przebiegu. Jest to przydatne w przypadku modyfikowania zachowania dla poszczególnych przebiegów. |
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. |
temperature |
Liczba | Opcjonalnie | Jaka temperatura próbkowania ma być używana 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. Wartość domyślna to 1. |
top_p |
Liczba | Opcjonalnie | 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. Wartość domyślna to 1. |
stream |
boolean | optional | Jeśli true program zwraca strumień zdarzeń, które występują podczas zdarzeń Uruchom jako serwer, kończy się po wprowadzeniu stanu terminalu z komunikatem data: [DONE] . |
max_prompt_tokens |
integer | optional | Maksymalna liczba tokenów ukończenia, które mogą być używane w trakcie przebiegu. Uruchomienie zapewni najlepsze wysiłki, aby użyć tylko określonej liczby tokenów ukończenia w wielu zakrętach przebiegu. Jeśli przebieg przekroczy określoną liczbę tokenów ukończenia, przebieg zakończy się stanem incomplete . |
max_completion_tokens |
integer | optional | Maksymalna liczba tokenów ukończenia, które mogą być używane w trakcie przebiegu. Uruchomienie zapewni najlepsze wysiłki, aby użyć tylko określonej liczby tokenów ukończenia w wielu zakrętach przebiegu. Jeśli przebieg przekroczy określoną liczbę tokenów ukończenia, przebieg zakończy się stanem incomplete . |
truncation_strategy |
obcięcie obiektuObject | optional | Określa sposób obcinania wątku przed uruchomieniem. Służy do kontrolowania początkowego okna kontekstu przebiegu. |
tool_choice |
ciąg lub obiekt | optional | Określa, które narzędzie (jeśli istnieje) jest wywoływane przez model. Wartość none oznacza, że model nie wywoła żadnych narzędzi i zamiast tego generuje komunikat. auto jest wartością domyślną i oznacza, że model może wybierać między generowaniem komunikatu lub wywoływaniem narzędzia. Określenie określonego narzędzia, takiego jak {"type": "file_search"} lub {"type": "function", "function": {"name": "my_function"}} wymusza wywołanie tego narzędzia przez model. |
response_format |
ciąg lub obiekt | optional | Określa format, który model musi wyświetlić. Zgodność z GPT-4 Turbo i wszystkimi modelami GPT-3.5 Turbo od gpt-3.5-turbo-1106 . Ustawienie w celu { "type": "json_object" } włączenia trybu JSON, co gwarantuje, że komunikat generowany przez model jest prawidłowym kodem JSON. Ważne: w przypadku korzystania z trybu JSON należy również poinstruować model, aby samodzielnie wygenerował kod JSON za pośrednictwem komunikatu systemowego lub użytkownika. Bez tego model może wygenerować niekończący się strumień białych znaków do momentu osiągnięcia limitu tokenu przez generację, co skutkuje długotrwałym i pozornie "zablokowanym" żądaniem. Należy również pamiętać, że zawartość wiadomości może być częściowo odcięta, jeśli finish_reason="length" , co wskazuje, że generacja przekroczyła max_tokens lub konwersacja przekroczyła maksymalną długość kontekstu. |
Zwraca
Obiekt przebiegu.
Przykład tworzenia żądania uruchomienia
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")
)
run = client.beta.threads.runs.create(
thread_id="thread_abc123",
assistant_id="asst_abc123"
)
print(run)
Tworzenie wątku i uruchamianie
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview
Utwórz wątek i uruchom go w jednym żądaniu.
Treść żądania
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
assistant_id |
string | Wymagania | Identyfikator asystenta do wykonania tego przebiegu. |
thread |
obiekt | Opcjonalnie | |
model |
ciąg lub wartość null | Opcjonalnie | Identyfikator nazwy wdrożenia modelu, który ma być używany do wykonania tego przebiegu. Jeśli w tym miejscu zostanie podana wartość, zastąpi ona nazwę wdrożenia modelu skojarzoną z asystentem. Jeśli nie, zostanie użyta nazwa wdrożenia modelu skojarzona z asystentem. |
instructions |
ciąg lub wartość null | Opcjonalnie | Zastąpi domyślny komunikat systemowy asystenta. Jest to przydatne w przypadku modyfikowania zachowania dla poszczególnych przebiegów. |
tools |
tablica lub wartość null | Opcjonalnie | Zastąpić narzędzia, których asystent może użyć na potrzeby tego przebiegu. Jest to przydatne w przypadku modyfikowania zachowania dla poszczególnych przebiegów. |
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. |
temperature |
Liczba | Opcjonalnie | Jaka temperatura próbkowania ma być używana 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. Wartość domyślna to 1. |
top_p |
Liczba | Opcjonalnie | 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. Wartość domyślna to 1. |
stream |
boolean | optional | Jeśli true program zwraca strumień zdarzeń, które występują podczas zdarzeń Uruchom jako serwer, kończy się po wprowadzeniu stanu terminalu z komunikatem data: [DONE] . |
max_prompt_tokens |
integer | optional | Maksymalna liczba tokenów ukończenia, które mogą być używane w trakcie przebiegu. Uruchomienie zapewni najlepsze wysiłki, aby użyć tylko określonej liczby tokenów ukończenia w wielu zakrętach przebiegu. Jeśli przebieg przekroczy określoną liczbę tokenów ukończenia, przebieg zakończy się stanem incomplete . |
max_completion_tokens |
integer | optional | Maksymalna liczba tokenów ukończenia, które mogą być używane w trakcie przebiegu. Uruchomienie zapewni najlepsze wysiłki, aby użyć tylko określonej liczby tokenów ukończenia w wielu zakrętach przebiegu. Jeśli przebieg przekroczy określoną liczbę tokenów ukończenia, przebieg zakończy się stanem incomplete . |
truncation_strategy |
obcięcie obiektuObject | optional | Określa sposób obcinania wątku przed uruchomieniem. Służy do kontrolowania początkowego okna kontekstu przebiegu. |
tool_choice |
ciąg lub obiekt | optional | Określa, które narzędzie (jeśli istnieje) jest wywoływane przez model. Wartość none oznacza, że model nie wywoła żadnych narzędzi i zamiast tego generuje komunikat. auto jest wartością domyślną i oznacza, że model może wybierać między generowaniem komunikatu lub wywoływaniem narzędzia. Określenie określonego narzędzia, takiego jak {"type": "file_search"} lub {"type": "function", "function": {"name": "my_function"}} wymusza wywołanie tego narzędzia przez model. |
response_format |
ciąg lub obiekt | optional | Określa format, który model musi wyświetlić. Zgodność z GPT-4 Turbo i wszystkimi modelami GPT-3.5 Turbo od gpt-3.5-turbo-1106 . Ustawienie w celu { "type": "json_object" } włączenia trybu JSON, co gwarantuje, że komunikat generowany przez model jest prawidłowym kodem JSON. Ważne: w przypadku korzystania z trybu JSON należy również poinstruować model, aby samodzielnie wygenerował kod JSON za pośrednictwem komunikatu systemowego lub użytkownika. Bez tego model może wygenerować niekończący się strumień białych znaków do momentu osiągnięcia limitu tokenu przez generację, co skutkuje długotrwałym i pozornie "zablokowanym" żądaniem. Należy również pamiętać, że zawartość wiadomości może być częściowo odcięta, jeśli finish_reason="length" , co wskazuje, że generacja przekroczyła max_tokens lub konwersacja przekroczyła maksymalną długość kontekstu. |
Zwraca
Obiekt przebiegu.
Przykład tworzenia wątku i uruchamiania żądania
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")
)
run = client.beta.threads.create_and_run(
assistant_id="asst_abc123",
thread={
"messages": [
{"role": "user", "content": "Explain deep learning to a 5 year old."}
]
}
)
Wyświetlanie listy przebiegów
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs?api-version=2024-08-01-preview
Zwraca listę przebiegów należących do wątku.
Parametr ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator wątku, do którego należy przebieg. |
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. |
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
Przykładowe żądanie uruchomienia 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")
)
runs = client.beta.threads.runs.list(
"thread_abc123"
)
print(runs)
Wyświetlanie listy kroków uruchamiania
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps?api-version=2024-08-01-preview
Zwraca listę kroków należących do przebiegu.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator wątku, do którego należy przebieg. |
run_id |
string | Wymagania | Identyfikator przebiegu skojarzonego z krokami uruchamiania do wykonania zapytania. |
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. |
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 kroków uruchamiania.
Przykładowe żądanie kroków uruchamiania 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")
)
run_steps = client.beta.threads.runs.steps.list(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run_steps)
Pobieranie przebiegu
from openai import OpenAI
client = OpenAI()
run = client.beta.threads.runs.retrieve(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Pobiera przebieg.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator uruchomionego wątku. |
run_id |
string | Wymagania | Identyfikator przebiegu do pobrania. |
Zwraca
Obiekt run pasujący do określonego identyfikatora przebiegu.
Przykładowe żądanie kroków uruchamiania 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")
)
run = client.beta.threads.runs.retrieve(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Pobieranie kroku uruchamiania
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/steps/{step_id}?api-version=2024-08-01-preview
Pobiera krok uruchomienia.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator wątku, do którego należy uruchomienie i krok uruchomienia. |
run_id |
string | Wymagania | Identyfikator przebiegu, do którego należy krok uruchamiania. |
step_id |
string | Wymagania | Identyfikator kroku uruchamiania do pobrania. |
Zwraca
Obiekt kroku przebiegu zgodny z określonym identyfikatorem.
Przykład żądania pobierania kroków uruchamiania
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")
)
run_step = client.beta.threads.runs.steps.retrieve(
thread_id="thread_abc123",
run_id="run_abc123",
step_id="step_abc123"
)
print(run_step)
Modyfikowanie przebiegu
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}?api-version=2024-08-01-preview
Modyfikuje przebieg.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator uruchomionego wątku. |
run_id |
string | Wymagania | Identyfikator przebiegu do zmodyfikowania. |
Treść żądania
Nazwisko | 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 przebiegu zgodny z określonym identyfikatorem.
Przykład modyfikowania żądania uruchomienia
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")
)
run = client.beta.threads.runs.update(
thread_id="thread_abc123",
run_id="run_abc123",
metadata={"user_id": "user_abc123"},
)
print(run)
Przesyłanie danych wyjściowych narzędzia do uruchomienia
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/submit_tool_outputs?api-version=2024-08-01-preview
Gdy przebieg ma stan: "requires_action" i required_action.typem jest submit_tool_outputs, ten punkt końcowy może służyć do przesyłania danych wyjściowych z wywołań narzędzia po zakończeniu ich wszystkich. Wszystkie dane wyjściowe muszą zostać przesłane w jednym żądaniu.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator wątku, do którego należy ten przebieg. |
run_id |
string | Wymagania | Identyfikator przebiegu, który wymaga przesłania danych wyjściowych narzędzia. |
Treść żądania
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
tool_outputs |
tablica | Wymagania | Lista narzędzi, dla których są przesyłane dane wyjściowe. |
stream |
boolean | Opcjonalnie | Jeśli true program zwraca strumień zdarzeń, które występują podczas zdarzeń Uruchom jako serwer, kończy się po wprowadzeniu stanu terminalu z komunikatem data: [DONE] . |
Zwraca
Zmodyfikowany obiekt przebiegu zgodny z określonym identyfikatorem.
Przykładowe dane wyjściowe narzędzia przesyłania w celu uruchomienia żądania
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")
)
run = client.beta.threads.runs.submit_tool_outputs(
thread_id="thread_abc123",
run_id="run_abc123",
tool_outputs=[
{
"tool_call_id": "call_abc123",
"output": "28C"
}
]
)
print(run)
Anulowanie przebiegu
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/{thread_id}/runs/{run_id}/cancel?api-version=2024-08-01-preview
Anuluje przebieg, który jest in_progress.
Parametry ścieżki
Parametr | Type | Wymagania | opis |
---|---|---|---|
thread_id |
string | Wymagania | Identyfikator wątku, do którego należy ten przebieg. |
run_id |
string | Wymagania | Identyfikator przebiegu do anulowania. |
Zwraca
Zmodyfikowany obiekt przebiegu zgodny z określonym identyfikatorem.
Przykładowe dane wyjściowe narzędzia przesyłania w celu uruchomienia żądania
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")
)
run = client.beta.threads.runs.cancel(
thread_id="thread_abc123",
run_id="run_abc123"
)
print(run)
Uruchom obiekt
Reprezentuje przebieg wykonywania 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.run. |
created_at |
integer | Sygnatura czasowa systemu Unix (w sekundach) dla momentu utworzenia przebiegu. |
thread_id |
string | Identyfikator wątku, który został wykonany w ramach tego przebiegu. |
assistant_id |
string | Identyfikator asystenta używanego do wykonywania tego przebiegu. |
status |
string | Stan przebiegu, który może mieć queued wartość , , in_progress , cancelled cancelling failed requires_action , completed lub .expired |
required_action |
obiekt lub wartość null | Szczegółowe informacje na temat akcji wymaganej do kontynuowania przebiegu. Jeśli żadna akcja nie jest wymagana, będzie mieć wartość null. |
last_error |
obiekt lub wartość null | Ostatni błąd skojarzony z tym przebiegiem. Wartość null będzie mieć wartość null, jeśli nie ma żadnych błędów. |
expires_at |
integer | Sygnatura czasowa systemu Unix (w sekundach) dla czasu wygaśnięcia przebiegu. |
started_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla momentu uruchomienia przebiegu. |
cancelled_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla momentu anulowania przebiegu. |
failed_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla czasu niepowodzenia uruchomienia. |
completed_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla momentu ukończenia przebiegu. |
model |
string | Nazwa wdrożenia modelu używana przez asystenta do tego przebiegu. |
instructions |
string | Instrukcje używane przez asystenta do tego przebiegu. |
tools |
tablica | Lista narzędzi używanych przez asystenta do tego przebiegu. |
file_ids |
tablica | Lista identyfikatorów plików asystenta używanego na potrzeby tego przebiegu. |
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. |
tool_choice |
ciąg lub obiekt | Określa, które narzędzie (jeśli istnieje) jest wywoływane przez model. none oznacza, że model nie wywołuje żadnych narzędzi, a zamiast tego generuje komunikat. auto jest wartością domyślną i oznacza, że model może wybierać między generowaniem komunikatu lub wywoływaniem narzędzia. Określenie określonego narzędzia, takiego jak {"type": "file_search"} lub {"type": "function", "function": {"name": "my_function"}} wymusza wywołanie tego narzędzia przez model. |
max_prompt_tokens |
liczba całkowita lub null | Maksymalna liczba tokenów monitów określonych do użycia w trakcie przebiegu. |
max_completion_tokens |
liczba całkowita lub null | Maksymalna liczba tokenów ukończenia określonych do użycia w trakcie przebiegu. |
usage |
obiekt lub wartość null | Statystyki użycia związane z uruchomieniem. Ta wartość będzie mieć wartość null, jeśli przebieg nie znajduje się w stanie terminalu (na przykład in_progress , queued ). |
truncation_strategy |
obiekt | Określa sposób obcinania wątku przed uruchomieniem. |
response_format |
string | Format, który musi zostać wygenerowany przez model. Zgodność z GPT-4 Turbo i wszystkimi modelami GPT-3.5 Turbo od gpt-3.5-turbo-1106 . |
tool_choice |
string | Określa, które narzędzie (jeśli istnieje) jest wywoływane przez model. none oznacza, że model nie wywołuje żadnych narzędzi, a zamiast tego generuje komunikat. auto jest wartością domyślną i oznacza, że model może wybierać między generowaniem komunikatu lub wywoływaniem narzędzia. |
Uruchom obiekt kroku
Reprezentuje krok wykonywania przebiegu.
Nazwisko | Pisz | opis |
---|---|---|
id |
string | Identyfikator kroku uruchamiania, do którego można odwoływać się w punktach końcowych interfejsu API. |
object |
string | Typ obiektu, który jest zawsze thread.run.step. |
created_at |
integer | Sygnatura czasowa systemu Unix (w sekundach) dla momentu utworzenia kroku uruchamiania. |
assistant_id |
string | Identyfikator asystenta skojarzonego z krokiem uruchamiania. |
thread_id |
string | Identyfikator uruchomionego wątku. |
run_id |
string | Identyfikator przebiegu, którego dotyczy ten krok przebiegu, jest częścią. |
type |
string | Typ kroku uruchamiania, który może być message_creation lub tool_calls. |
status |
string | Stan kroku uruchamiania, który może mieć wartość in_progress , , cancelled , failed , completed lub expired . |
step_details |
obiekt | Szczegóły kroku uruchamiania. |
last_error |
obiekt lub wartość null | Ostatni błąd skojarzony z tym krokiem przebiegu. Wartość null będzie mieć wartość null, jeśli nie ma żadnych błędów. |
expired_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla czasu wygaśnięcia kroku uruchamiania. Krok jest uznawany za wygasły, jeśli uruchomienie nadrzędne wygasło. |
cancelled_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla momentu anulowania kroku uruchamiania. |
failed_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla momentu niepowodzenia kroku uruchamiania. |
completed_at |
liczba całkowita lub null | Sygnatura czasowa systemu Unix (w sekundach) dla momentu ukończenia kroku uruchamiania. |
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. |
Przesyłanie strumieniowe wyniku uruchomienia (wersja zapoznawcza)
Przesyłaj strumieniowo wynik wykonywania przebiegu lub wznawiania przebiegu po przesłaniu danych wyjściowych narzędzia. Zdarzenia można przesyłać strumieniowo po:
Aby przesłać strumieniowo wynik, przekaż "stream": true
go podczas tworzenia przebiegu. Odpowiedź będzie strumieniem zdarzeń wysłanych przez serwer.
Przykład przesyłania strumieniowego
from typing_extensions import override
from openai import AssistantEventHandler
# First, we create a EventHandler class to define
# how we want to handle the events in the response stream.
class EventHandler(AssistantEventHandler):
@override
def on_text_created(self, text) -> None:
print(f"\nassistant > ", end="", flush=True)
@override
def on_text_delta(self, delta, snapshot):
print(delta.value, end="", flush=True)
def on_tool_call_created(self, tool_call):
print(f"\nassistant > {tool_call.type}\n", flush=True)
def on_tool_call_delta(self, delta, snapshot):
if delta.type == 'code_interpreter':
if delta.code_interpreter.input:
print(delta.code_interpreter.input, end="", flush=True)
if delta.code_interpreter.outputs:
print(f"\n\noutput >", flush=True)
for output in delta.code_interpreter.outputs:
if output.type == "logs":
print(f"\n{output.logs}", flush=True)
# Then, we use the `create_and_stream` SDK helper
# with the `EventHandler` class to create the Run
# and stream the response.
with client.beta.threads.runs.stream(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Please address the user as Jane Doe. The user has a premium account.",
event_handler=EventHandler(),
) as stream:
stream.until_done()
Obcięcie obiektu
Określa sposób obcinania wątku przed uruchomieniem. Służy do kontrolowania początkowego okna kontekstu przebiegu.
Nazwisko | Pisz | Opis | Wymagania |
---|---|---|---|
type |
string | Strategia obcinania do użycia dla wątku. Wartość domyślna to auto . Jeśli ustawiono wartość last_messages , wątek zostanie obcięty do n najnowszych komunikatów w wątku. Po ustawieniu auto wartości na wartość komunikaty w środku wątku zostaną porzucone w celu dopasowania do długości kontekstu modelu . max_prompt_tokens |
Tak |
last_messages |
integer | Liczba najnowszych komunikatów z wątku podczas konstruowania kontekstu przebiegu. | Nie. |
Obiekt różnicowy komunikatu
Reprezentuje różnicę komunikatów. Na przykład wszystkie zmienione pola w wiadomości podczas przesyłania strumieniowego.
Nazwisko | Pisz | opis |
---|---|---|
id |
string | Identyfikator komunikatu, do którego można się odwoływać w punktach końcowych interfejsu API. |
object |
string | Typ obiektu, który jest zawsze thread.message.delta . |
delta |
obiekt | Delta zawierająca pola, które uległy zmianie w komunikacie. |
Run step delta object (Uruchamianie obiektu różnicowego kroku)
Reprezentuje różnicę kroku uruchamiania. Na przykład wszystkie zmienione pola w kroku uruchamiania podczas przesyłania strumieniowego.
Nazwisko | Pisz | opis |
---|---|---|
id |
string | Identyfikator kroku uruchamiania, do którego można odwoływać się w punktach końcowych interfejsu API. |
object |
string | Typ obiektu, który jest zawsze thread.run.step.delta . |
delta |
obiekt | Delta zawierająca pola, które zostały zmienione w kroku uruchamiania. |
Zdarzenia strumienia asystenta
Reprezentuje zdarzenie emitowane podczas przesyłania strumieniowego przebiegu. Każde zdarzenie w strumieniu zdarzeń wysyłanych przez serwer ma właściwość zdarzenia i danych:
event: thread.created
data: {"id": "thread_123", "object": "thread", ...}
Zdarzenia są emitowane za każdym razem, gdy tworzony jest nowy obiekt, przechodzi do nowego stanu lub jest przesyłany strumieniowo w częściach (różnice). Na przykład thread.run.created
jest emitowany po utworzeniu nowego przebiegu, thread.run.completed
po zakończeniu przebiegu itd. Gdy Asystent zdecyduje się utworzyć komunikat podczas przebiegu, emitujemy thread.message.created
zdarzenie, thread.message.in_progress
zdarzenie, wiele wątków.message.delta
zdarzenia, a na koniec thread.message.completed
zdarzenie.
Nazwisko | Pisz | Opis |
---|---|---|
thread.created |
data jest wątkiem. |
Występuje po utworzeniu nowego wątku. |
thread.run.created |
data jest przebiegiem. |
Występuje po utworzeniu nowego przebiegu. |
thread.run.queued |
data jest przebiegiem. |
Występuje, gdy przebieg przechodzi do stanu w kolejce. |
thread.run.in_progress |
data jest przebiegiem. |
Występuje, gdy przebieg przechodzi do stanu in_progress. |
thread.run.requires_action |
data jest przebiegiem. |
Występuje, gdy przebieg przechodzi do requires_action stanu. |
thread.run.completed |
data jest przebiegiem. |
Występuje po zakończeniu przebiegu. |
thread.run.failed |
data jest przebiegiem. |
Występuje, gdy uruchomienie zakończy się niepowodzeniem. |
thread.run.cancelling |
data jest przebiegiem. |
Występuje, gdy przebieg przechodzi do cancelling stanu. |
thread.run.cancelled |
data jest przebiegiem. |
Występuje po anulowaniu przebiegu. |
thread.run.expired |
data jest przebiegiem. |
Występuje po wygaśnięciu przebiegu. |
thread.run.step.created |
data jest krokiem przebiegu. |
Występuje po utworzeniu kroku uruchamiania. |
thread.run.step.in_progress |
data jest krokiem przebiegu. |
Występuje, gdy krok uruchomienia przechodzi do in_progress stanu. |
thread.run.step.delta |
data to delta kroku uruchamiania. |
Występuje, gdy są przesyłane strumieniowo części kroku uruchamiania. |
thread.run.step.completed |
data jest krokiem przebiegu. |
Występuje po zakończeniu kroku uruchamiania. |
thread.run.step.failed |
data jest krokiem przebiegu. |
Występuje, gdy krok uruchomienia zakończy się niepowodzeniem. |
thread.run.step.cancelled |
data jest krokiem przebiegu. |
Występuje po anulowaniu kroku uruchamiania. |
thread.run.step.expired |
data jest krokiem przebiegu. |
Występuje, gdy krok uruchomienia wygaśnie. |
thread.message.created |
data jest komunikatem. |
Występuje po utworzeniu komunikatu. |
thread.message.in_progress |
data jest komunikatem. |
Występuje, gdy komunikat przechodzi do stanu in_progress. |
thread.message.delta |
data jest różnicą komunikatów. |
Występuje, gdy są przesyłane strumieniowo części komunikatu. |
thread.message.completed |
data jest komunikatem. |
Występuje po zakończeniu komunikatu. |
thread.message.incomplete |
data jest komunikatem. |
Występuje, gdy komunikat kończy się przed jego ukończeniem. |
error |
data jest błędem. |
Występuje, gdy wystąpi błąd. Może się to zdarzyć z powodu wewnętrznego błędu serwera lub przekroczenia limitu czasu. |
done |
data jest [DONE] |
Występuje po zakończeniu strumienia. |