Udostępnij za pośrednictwem


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 trueprogram 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 trueprogram 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

Lista obiektów uruchamiania.

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 trueprogram 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ć queuedwartość , , in_progress, cancelledcancellingfailedrequires_action, completedlub .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, completedlub 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 autowartoś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.