Freigeben über


Referenz zu Ausführungen der Assistants-API (Vorschau)

Hinweis

  • Die Dateisuche kann bis zu 10.000 Dateien pro Assistent erfassen – 500 mal mehr als bisher. Sie ist schnell, unterstützt parallele Abfragen durch Multithreadsuchvorgänge und beinhaltet verbesserte Funktionen für Neusortierung und das Umschreiben von Abfragen.
    • Der Vektorspeicher ist ein neues Objekt in der API. Sobald eine Datei einem Vektorspeicher hinzugefügt wurde, wird sie automatisch geparst, aufgeteilt und eingebettet, damit sie durchsucht werden kann. Vektorspeicher können über Assistenten und Threads hinweg verwendet werden und vereinfachen so die Dateiverwaltung und Abrechnung.
  • Wir haben Unterstützung für den Parameter tool_choice hinzugefügt. Dieser kann verwendet werden, um die Nutzung eines bestimmten Tools (z. B. Dateisuche, Codeinterpreter oder eine Funktion) in einer bestimmten Ausführung zu erzwingen.

Dieser Artikel enthält eine Referenzdokumentation für Python und REST für die neue Assistants-API (Vorschau). Ausführlichere Schritt-für-Schritt-Anleitungen finden Sie im Leitfaden für erste Schritte.

Ausführung erstellen

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

Erstellen Sie eine Ausführung.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des Threads, für den eine Nachricht erstellt werden soll

Anforderungstext

Name Type Erforderlich Beschreibung
assistant_id Zeichenfolge Erforderlich Die ID des Assistenten, der für diese Ausführung verwendet werden soll
model Zeichenfolge oder null Optional Der Name der Modellbereitstellung, der für diese Ausführung verwendet werden soll. Wenn hier ein Wert angegeben wird, überschreibt er den Modellbereitstellungsnamen, der dem Assistenten zugeordnet ist. Wenn kein Wert angegeben wird, wird der dem Assistenten zugeordnete Modellbereitstellungsname verwendet.
instructions Zeichenfolge oder null Optional Überschreibt die Anweisungen des Assistenten. Dies ist nützlich, um das Verhalten pro Ausführung zu ändern.
additional_instructions Zeichenfolge Optional Fügt zusätzliche Anweisungen am Ende der Anweisungen für die Ausführung an. Dies ist nützlich, um das Verhalten pro Ausführung zu ändern, ohne andere Anweisungen außer Kraft zu setzen.
additional_messages array Optional Fügt dem Thread zusätzliche Nachrichten hinzu, bevor die Ausführung erstellt wird.
tools Array oder NULL Optional Überschreibt die Tools, die der Assistent für diese Ausführung verwenden kann. Dies ist nützlich, um das Verhalten pro Ausführung zu ändern.
metadata map Optional 16 Schlüssel-Wert-Paare, die an ein Objekt angefügt werden können. Dies kann hilfreich sein, um zusätzliche Informationen zum Objekt in einem strukturierten Format zu speichern. Schlüssel dürfen maximal 64 Zeichen und Werte dürfen höchstens 512 Zeichen lang sein.
temperature Zahl Optional Die zu verwendende Temperatur für die Stichprobenentnahme zwischen 0 und 2. Durch höhere Werte wie 0,8 wird die Ausgabe zufälliger, während sie durch niedrigere Werte wie 0,2 fokussierter und deterministischer wird. Der Standardwert ist 1.
top_p Zahl Optional Eine Alternative zur Stichprobenentnahme mit Temperatur, die sogenannte Kernstichprobenentnahme (Nucleus Sampling), bei dem das Modell die Ergebnisse der Token mit der Wahrscheinlichkeitsmasse „top_p“ berücksichtigt. Daher bedeutet 0,1, dass nur die Token berücksichtigt werden, die die oberen 10 % der Wahrscheinlichkeitsmasse umfassen. Wir empfehlen im Allgemeinen, dies oder die Temperatur zu ändern, aber nicht beides. Der Standardwert ist 1.
stream boolean optional Bei Verwendung von true wird ein Datenstrom von Ereignissen, die während der Ausführung auftreten, als vom Server gesendete Ereignisse zurückgegeben. Der Datenstrom wird beendet, wenn die Ausführung einen Endzustand mit einer Nachricht vom Typ data: [DONE] erreicht.
max_prompt_tokens integer optional Die maximale Anzahl von Vervollständigungstoken, die im Laufe der Ausführung verwendet werden können. Bei der Ausführung wird bestmöglich versucht, über mehrere Durchläufe der Ausführung hinweg nur die angegebene Anzahl von Vervollständigungstoken zu verwenden. Wenn die Ausführung die angegebene Anzahl von Vervollständigungstoken überschreitet, endet die Ausführung mit dem Status incomplete.
max_completion_tokens integer optional Die maximale Anzahl von Vervollständigungstoken, die im Laufe der Ausführung verwendet werden können. Bei der Ausführung wird bestmöglich versucht, über mehrere Durchläufe der Ausführung hinweg nur die angegebene Anzahl von Vervollständigungstoken zu verwenden. Wenn die Ausführung die angegebene Anzahl von Vervollständigungstoken überschreitet, endet die Ausführung mit dem Status incomplete.
truncation_strategy truncationObject optional Steuert, wie ein Thread vor der Ausführung abgeschnitten wird. Verwenden Sie diese Option, um das anfängliche Kontextfenster der Ausführung zu steuern.
tool_choice Zeichenfolge oder Objekt optional Steuert, welches Tool (falls vorhanden) vom Modell aufgerufen wird. Ein Wert none bedeutet, dass das Modell kein Tool aufruft und stattdessen eine Meldung generiert. auto ist der Standardwert und bedeutet, dass das Modell zwischen dem Generieren einer Meldung und dem Aufrufen einer Funktion auswählen kann. Wenn Sie ein bestimmtes Tool wie {"type": "file_search"} oder {"type": "function", "function": {"name": "my_function"}} angeben, wird das Modell gezwungen, dieses aufzurufen.
response_format Zeichenfolge oder Objekt optional Gibt das Format an, das das Modell ausgeben muss. Kompatibel mit GPT-4 Turbo und allen GPT-3.5 Turbo-Modellen seit gpt-3.5-turbo-1106.
Wenn Sie ihn auf { "type": "json_object" } festlegen, wird der JSON-Modus aktiviert, der sicherstellt, dass die vom Modells generierte Meldung gültiger JSON-Code ist.
Wichtig: Wenn Sie den JSON-Modus verwenden, müssen Sie selbst das Modell auch über eine System- oder Benutzernachricht anweisen, JSON-Code zu erzeugen. Andernfalls generiert das Modell möglicherweise einen unendlichen Leerzeichenstrom, bis der Tokengrenzwert erreicht wird. Dies kann zu einer lange ausgeführten und scheinbar „hängenden“ Anforderung führen. Beachten Sie auch, dass der Nachrichteninhalt teilweise abgeschnitten werden kann, wenn Sie finish_reason="length" verwenden. Damit wird angegeben, dass bei der Generierung max_tokens überschritten wurde oder die Unterhaltung die maximale Kontextlänge überschritten hat.

Gibt zurück

Ein Ausführungsobjekt.

Beispiel zum Erstellen einer Ausführungsanforderung

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)

Erstellen von Thread und Ausführung

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/runs?api-version=2024-08-01-preview

Erstellen Sie einen Thread, und führen Sie ihn in einer einzelnen Anforderung aus.

Anforderungstext

Name Type Erforderlich Beschreibung
assistant_id Zeichenfolge Erforderlich Die ID des Assistenten, der für diese Ausführung verwendet werden soll
thread Objekt Optional
model Zeichenfolge oder null Optional Die ID des Modellbereitstellungsnamen, der für diese Ausführung verwendet werden soll. Wenn hier ein Wert angegeben wird, überschreibt er den Modellbereitstellungsnamen, der dem Assistenten zugeordnet ist. Wenn kein Wert angegeben wird, wird der dem Assistenten zugeordnete Modellbereitstellungsname verwendet.
instructions Zeichenfolge oder null Optional Überschreibt die Standardsystemmeldung des Assistenten. Dies ist nützlich, um das Verhalten pro Ausführung zu ändern.
tools Array oder NULL Optional Überschreibt die Tools, die der Assistent für diese Ausführung verwenden kann. Dies ist nützlich, um das Verhalten pro Ausführung zu ändern.
metadata map Optional 16 Schlüssel-Wert-Paare, die an ein Objekt angefügt werden können. Dies kann hilfreich sein, um zusätzliche Informationen zum Objekt in einem strukturierten Format zu speichern. Schlüssel dürfen maximal 64 Zeichen und Werte dürfen höchstens 512 Zeichen lang sein.
temperature Zahl Optional Die zu verwendende Temperatur für die Stichprobenentnahme zwischen 0 und 2. Durch höhere Werte wie 0,8 wird die Ausgabe zufälliger, während sie durch niedrigere Werte wie 0,2 fokussierter und deterministischer wird. Der Standardwert ist 1.
top_p Zahl Optional Eine Alternative zur Stichprobenentnahme mit Temperatur, die sogenannte Kernstichprobenentnahme (Nucleus Sampling), bei dem das Modell die Ergebnisse der Token mit der Wahrscheinlichkeitsmasse „top_p“ berücksichtigt. Daher bedeutet 0,1, dass nur die Token berücksichtigt werden, die die oberen 10 % der Wahrscheinlichkeitsmasse umfassen. Wir empfehlen im Allgemeinen, dies oder die Temperatur zu ändern, aber nicht beides. Der Standardwert ist 1.
stream boolean optional Bei Verwendung von true wird ein Datenstrom von Ereignissen, die während der Ausführung auftreten, als vom Server gesendete Ereignisse zurückgegeben. Der Datenstrom wird beendet, wenn die Ausführung einen Endzustand mit einer Nachricht vom Typ data: [DONE] erreicht.
max_prompt_tokens integer optional Die maximale Anzahl von Vervollständigungstoken, die im Laufe der Ausführung verwendet werden können. Bei der Ausführung wird bestmöglich versucht, über mehrere Durchläufe der Ausführung hinweg nur die angegebene Anzahl von Vervollständigungstoken zu verwenden. Wenn die Ausführung die angegebene Anzahl von Vervollständigungstoken überschreitet, endet die Ausführung mit dem Status incomplete.
max_completion_tokens integer optional Die maximale Anzahl von Vervollständigungstoken, die im Laufe der Ausführung verwendet werden können. Bei der Ausführung wird bestmöglich versucht, über mehrere Durchläufe der Ausführung hinweg nur die angegebene Anzahl von Vervollständigungstoken zu verwenden. Wenn die Ausführung die angegebene Anzahl von Vervollständigungstoken überschreitet, endet die Ausführung mit dem Status incomplete.
truncation_strategy truncationObject optional Steuert, wie ein Thread vor der Ausführung abgeschnitten wird. Verwenden Sie diese Option, um das anfängliche Kontextfenster der Ausführung zu steuern.
tool_choice Zeichenfolge oder Objekt optional Steuert, welches Tool (falls vorhanden) vom Modell aufgerufen wird. Ein Wert none bedeutet, dass das Modell kein Tool aufruft und stattdessen eine Meldung generiert. auto ist der Standardwert und bedeutet, dass das Modell zwischen dem Generieren einer Meldung und dem Aufrufen einer Funktion auswählen kann. Wenn Sie ein bestimmtes Tool wie {"type": "file_search"} oder {"type": "function", "function": {"name": "my_function"}} angeben, wird das Modell gezwungen, dieses aufzurufen.
response_format Zeichenfolge oder Objekt optional Gibt das Format an, das das Modell ausgeben muss. Kompatibel mit GPT-4 Turbo und allen GPT-3.5 Turbo-Modellen seit gpt-3.5-turbo-1106.
Wenn Sie ihn auf { "type": "json_object" } festlegen, wird der JSON-Modus aktiviert, der sicherstellt, dass die vom Modells generierte Meldung gültiger JSON-Code ist.
Wichtig: Wenn Sie den JSON-Modus verwenden, müssen Sie selbst das Modell auch über eine System- oder Benutzernachricht anweisen, JSON-Code zu erzeugen. Andernfalls generiert das Modell möglicherweise einen unendlichen Leerzeichenstrom, bis der Tokengrenzwert erreicht wird. Dies kann zu einer lange ausgeführten und scheinbar „hängenden“ Anforderung führen. Beachten Sie auch, dass der Nachrichteninhalt teilweise abgeschnitten werden kann, wenn Sie finish_reason="length" verwenden. Damit wird angegeben, dass bei der Generierung max_tokens überschritten wurde oder die Unterhaltung die maximale Kontextlänge überschritten hat.

Gibt zurück

Ein Ausführungsobjekt.

Beispiel zum Erstellen von Thread und Ausführungsanforderung

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."}
    ]
  }
)

Auflisten von Ausführungen

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

Gibt eine Liste von Ausführungen zurück, die zu einem Thread gehören.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des Threads, zu dem die Ausführung gehört

Abfrageparameter

Name Type Erforderlich Beschreibung
limit integer Optional: Standardwert 20 Ein Grenzwert für die Anzahl von Objekten, die zurückgegeben werden sollen. Der Grenzwert kann zwischen 1 und 100 liegen. Der Standardwert ist 20.
order Zeichenfolge Optional: Standardwert „desc“ Sortierreihenfolge nach dem Zeitstempel „created_at“ der Objekte. „asc“ für aufsteigende Reihenfolge und „desc“ für absteigende Reihenfolge
after Zeichenfolge Optional Ein Cursor für die Verwendung bei der Paginierung. „after“ ist eine Objekt-ID, die die Position in der Liste definiert. Wenn Sie z. B. eine Listenanforderung senden und 100 Objekte empfangen, die mit „obj_foo“ enden, kann der nachfolgende Aufruf „after=obj_foo“ enthalten, um die nächste Seite der Liste abzurufen.
before Zeichenfolge Optional Ein Cursor für die Verwendung bei der Paginierung. „before“ ist eine Objekt-ID, die die Position in der Liste definiert. Wenn Sie z. B. eine Listenanforderung senden und 100 Objekte empfangen, die mit „obj_foo“ enden, kann der nachfolgende Aufruf „before=obj_foo“ enthalten, um die vorherige Seite der Liste abzurufen.

Gibt zurück

Eine Liste der run-Objekte

Beispiel zum Auflisten von Ausführungsanforderungen

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)

Auflisten der Ausführungsschritte

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

Gibt eine Liste von Schritten zurück, die zu einer Ausführung gehören.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des Threads, zu dem die Ausführung gehört
run_id Zeichenfolge Erforderlich Die ID der Ausführung, die den Ausführungsschritten zugeordnet ist, die abgefragt werden sollen.

Abfrageparameter

Name Type Erforderlich Beschreibung
limit integer Optional: Standardwert 20 Ein Grenzwert für die Anzahl von Objekten, die zurückgegeben werden sollen. Der Grenzwert kann zwischen 1 und 100 liegen. Der Standardwert ist 20.
order Zeichenfolge Optional: Standardwert „desc“ Sortierreihenfolge nach dem Zeitstempel „created_at“ der Objekte. „asc“ für aufsteigende Reihenfolge und „desc“ für absteigende Reihenfolge
after Zeichenfolge Optional Ein Cursor für die Verwendung bei der Paginierung. „after“ ist eine Objekt-ID, die die Position in der Liste definiert. Wenn Sie z. B. eine Listenanforderung senden und 100 Objekte empfangen, die mit „obj_foo“ enden, kann der nachfolgende Aufruf „after=obj_foo“ enthalten, um die nächste Seite der Liste abzurufen.
before Zeichenfolge Optional Ein Cursor für die Verwendung bei der Paginierung. „before“ ist eine Objekt-ID, die die Position in der Liste definiert. Wenn Sie z. B. eine Listenanforderung senden und 100 Objekte empfangen, die mit „obj_foo“ enden, kann der nachfolgende Aufruf „before=obj_foo“ enthalten, um die vorherige Seite der Liste abzurufen.

Gibt zurück

Eine Liste der run step-Objekte

Beispiel für die Anforderung zum Auflisten von Ausführungsschritten

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)

Abrufen einer Ausführung

from openai import OpenAI
client = OpenAI()

run = client.beta.threads.runs.retrieve(
  thread_id="thread_abc123",
  run_id="run_abc123"
)

print(run)

Ruft eine Ausführung ab.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des ausgeführten Threads
run_id Zeichenfolge Erforderlich Die ID der abzurufenden Ausführung

Gibt zurück

Das run-Objekt, das der angegebenen Ausführungs-ID entspricht

Beispiel für die Anforderung zum Auflisten von Ausführungsschritten

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)

Abrufen eines Ausführungsschritts

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

Ruft einen Ausführungsschritt ab.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des Threads, zu dem die Ausführung und der Ausführungsschritt gehören
run_id Zeichenfolge Erforderlich Die ID der Ausführung, zu der der Ausführungsschritt gehört
step_id Zeichenfolge Erforderlich Die ID des abzurufenden Ausführungsschritts

Gibt zurück

Das run step-Objekt, das der angegebenen ID entspricht

Beispiel für die Anforderung zum Abrufen von Ausführungsschritten

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)

Ändern der Ausführung

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

Ändert eine Ausführung.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des ausgeführten Threads
run_id Zeichenfolge Erforderlich Die ID der zu ändernden Ausführung

Anforderungstext

Name Type Erforderlich Beschreibung
metadata map Optional 16 Schlüssel-Wert-Paare, die an ein Objekt angefügt werden können. Dies kann hilfreich sein, um zusätzliche Informationen zum Objekt in einem strukturierten Format zu speichern. Schlüssel dürfen maximal 64 Zeichen und Werte dürfen höchstens 512 Zeichen lang sein.

Gibt zurück

Das geänderte run-Objekt, das der angegebenen ID entspricht

Beispiel für die Anforderung zur Ausführungsänderung

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)

Übermitteln der Toolausgaben für die Ausführung

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

Wenn eine Ausführung den Status „requires_action“ aufweist und „submit_tool_outputs“ für „required_action.type“ angegeben ist, kann dieser Endpunkt zum Übermitteln der Ausgaben aus den Toolaufrufen verwendet werden, sobald sie alle abgeschlossen sind. Alle Ausgaben müssen in einer einzelnen Anforderung übermittelt werden.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des Threads, zu dem diese Ausführung gehört
run_id Zeichenfolge Erforderlich Die ID der Ausführung, für die die Toolausgabeübermittlung erforderlich ist

Anforderungstext

Name Type Erforderlich Beschreibung
tool_outputs array Erforderlich Eine Liste der Tools, für die die Ausgaben übermittelt werden
stream boolean Optional Bei Verwendung von true wird ein Datenstrom von Ereignissen, die während der Ausführung auftreten, als vom Server gesendete Ereignisse zurückgegeben. Der Datenstrom wird beendet, wenn die Ausführung einen Endzustand mit einer Nachricht vom Typ data: [DONE] erreicht.

Gibt zurück

Das geänderte run-Objekt, das der angegebenen ID entspricht

Beispiel für die Anforderung zum Übermitteln der Toolausgaben für die Ausführung

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)

Abbrechen einer Ausführung

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

Bricht eine Ausführung mit dem Status „in_progress“ ab.

Pfadparameter

Parameter Type Erforderlich Beschreibung
thread_id Zeichenfolge Erforderlich Die ID des Threads, zu dem diese Ausführung gehört
run_id Zeichenfolge Erforderlich Die ID der Ausführung, die abgebrochen werden soll

Gibt zurück

Das geänderte run-Objekt, das der angegebenen ID entspricht

Beispiel für die Anforderung zum Übermitteln der Toolausgaben für die Ausführung

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)

Ausführungsobjekt

Stellt eine Ausführung dar, die in einem Thread ausgeführt wird.

Name Typ Beschreibung
id string Der Bezeichner, auf den in API-Endpunkten verwiesen werden kann
object Zeichenfolge Der Objekttyp, der immer „thread.run“ ist
created_at integer Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Ausführung erstellt wurde
thread_id Zeichenfolge Die ID des Threads, der als Teil dieser Ausführung ausgeführt wurde
assistant_id Zeichenfolge Die ID des Assistenten, der für diese Ausführung verwendet wird
status Zeichenfolge Der Status der Ausführung, entweder queued, in_progress, requires_action, cancelling, cancelled, failed, completed oder expired
required_action Objekt oder NULL Details zu der Aktion, die zum Fortsetzen der Ausführung erforderlich ist. Ist NULL, wenn keine Aktion erforderlich ist.
last_error Objekt oder NULL Der letzte Fehler im Zusammenhang mit dieser Ausführung. NULL, falls keine Fehler vorliegen
expires_at integer Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Ausführung abläuft
started_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Ausführung gestartet wurde
cancelled_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Ausführung abgebrochen wurde
failed_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Ausführung fehlgeschlagen ist
completed_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Ausführung abgeschlossen wurde
model Zeichenfolge Der Modellbereitstellungsname, den der Assistent für diese Ausführung verwendet hat
instructions Zeichenfolge Die Anweisungen, die der Assistent für diese Ausführung verwendet hat
tools array Die Liste der Tools, die der Assistent für diese Ausführung verwendet hat
file_ids array Die Liste der Datei-IDs, die der Assistent für diese Ausführung verwendet hat
metadata map 16 Schlüssel-Wert-Paare, die an ein Objekt angefügt werden können. Dies kann hilfreich sein, um zusätzliche Informationen zum Objekt in einem strukturierten Format zu speichern. Schlüssel dürfen maximal 64 Zeichen und Werte dürfen höchstens 512 Zeichen lang sein.
tool_choice Zeichenfolge oder Objekt Steuert, welches Tool (falls vorhanden) vom Modell aufgerufen wird. none bedeutet, dass das Modell kein Tool aufruft und stattdessen eine Meldung generiert. auto ist der Standardwert und bedeutet, dass das Modell zwischen dem Generieren einer Meldung und dem Aufrufen einer Funktion auswählen kann. Wenn Sie ein bestimmtes Tool wie {"type": "file_search"} oder {"type": "function", "function": {"name": "my_function"}} angeben, wird das Modell gezwungen, dieses aufzurufen.
max_prompt_tokens ganze Zahl oder NULL Die maximale Anzahl an Eingabeaufforderungstoken, die im Laufe der Ausführung verwendet wurden
max_completion_tokens ganze Zahl oder NULL Die maximale Anzahl an Abschlusstoken, die im Laufe der Ausführung verwendet wurden
usage Objekt oder NULL Verwendungsstatistiken im Zusammenhang mit der Ausführung. Dieser Wert ist NULL, wenn sich die Ausführung nicht in einem Terminalzustand befindet (z. B. in_progress, queued).
truncation_strategy Objekt Steuert, wie ein Thread vor der Ausführung abgeschnitten wird.
response_format Zeichenfolge Das Format, das das Modell ausgeben muss. Kompatibel mit GPT-4 Turbo und allen GPT-3.5 Turbo-Modellen seit gpt-3.5-turbo-1106.
tool_choice Zeichenfolge Steuert, welches Tool (falls vorhanden) vom Modell aufgerufen wird. none bedeutet, dass das Modell kein Tool aufruft und stattdessen eine Meldung generiert. auto ist der Standardwert und bedeutet, dass das Modell zwischen dem Generieren einer Meldung und dem Aufrufen einer Funktion auswählen kann.

Objekt „run step“

Stellt einen Schritt bei einer Ausführung dar.

Name Typ Beschreibung
id string Der Bezeichner des Ausführungsschritts, auf die in API-Endpunkten verwiesen werden kann
object Zeichenfolge Der Objekttyp, der immer „thread.run.step“ ist
created_at integer Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem der Ausführungsschritt erstellt wurde
assistant_id Zeichenfolge Die ID des Assistenten, der dem Ausführungsschritt zugeordnet ist
thread_id Zeichenfolge Die ID des ausgeführten Threads
run_id Zeichenfolge Die ID der Ausführung, zu der dieser Ausführungsschritt gehört
type Zeichenfolge Der Typ des Ausführungsschritts, entweder „message_creation“ oder „tool_calls“
status Zeichenfolge Der Status des Ausführungsschritts, entweder in_progress, cancelled, failed, completed oder expired
step_details Objekt Die Details des Ausführungsschritts
last_error Objekt oder NULL Der letzte Fehler im Zusammenhang mit diesem Ausführungsschritt. NULL, falls keine Fehler vorliegen
expired_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem der Ausführungsschritt abgelaufen ist. Ein Schritt gilt als abgelaufen, wenn die übergeordnete Ausführung abgelaufen ist.
cancelled_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem der Ausführungsschritt abgebrochen wurde
failed_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem der Ausführungsschritt fehlgeschlagen ist
completed_at ganze Zahl oder NULL Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem der Ausführungsschritt abgeschlossen wurde
metadata map 16 Schlüssel-Wert-Paare, die an ein Objekt angefügt werden können. Dies kann hilfreich sein, um zusätzliche Informationen zum Objekt in einem strukturierten Format zu speichern. Schlüssel dürfen maximal 64 Zeichen und Werte dürfen höchstens 512 Zeichen lang sein.

Streamen eines Ausführungsergebnisses (Vorschau)

Streamen Sie das Ergebnis der Ausführung einer Flowausführung oder der Fortsetzung einer Flowausführung, nachdem Sie Toolausgaben übermittelt haben. Sie können Ereignisse nach folgenden Ereignissen streamen:

Um ein Ergebnis zu streamen, übergeben Sie "stream": true beim Erstellen einer Ausführung. Die Antwort ist ein Stream von vom Server gesendeter Ereignisse.

Streamingbeispiel

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

Kürzen des Objekts

Steuert, wie ein Thread vor der Ausführung abgeschnitten wird. Verwenden Sie diese Option, um das anfängliche Kontextfenster der Ausführung zu steuern.

Name Typ Beschreibung Erforderlich
type Zeichenfolge Die für den Thread zu verwendende Kürzungsstrategie. Der Standardwert ist auto. Bei Verwendung von last_messages wird der Thread auf die n neuesten Nachrichten im Thread gekürzt. Bei Verwendung von auto werden Nachrichten in der Mitte des Threads gelöscht, um der Kontextlänge des Modells (max_prompt_tokens) zu entsprechen. Ja
last_messages integer Die Anzahl der neuesten Nachrichten aus dem Thread, wenn der Kontext für die Ausführung konstruiert wird. No

Nachrichtendelta-Objekt

Stellt ein Nachrichtendelta dar. Beispielsweise alle während des Streamings geänderten Felder einer Nachricht.

Name Typ Beschreibung
id string Der Bezeichner der Nachricht, auf den in API-Endpunkten verwiesen werden kann
object Zeichenfolge Der Objekttyp, der immer thread.message.delta ist.
delta Objekt Das Delta, das die Felder enthält, die sich in der Nachricht geändert haben

Ausführungsschrittdelta-Objekt

Stellt ein Ausführungsschrittdelta dar. Beispiel: Alle während des Streamings in einem Ausführungsschritt geänderten Felder.

Name Typ Beschreibung
id string Der Bezeichner des Ausführungsschritts, auf die in API-Endpunkten verwiesen werden kann
object Zeichenfolge Der Objekttyp, der immer thread.run.step.delta ist.
delta Objekt Das Delta mit den Feldern, die sich im Ausführungsschritt geändert haben.

Assistentenstreamereignisse

Stellt ein Ereignis dar, das beim Streamen einer Ausführung ausgegeben wird. Jedes Ereignis in einem vom Server gesendeten Ereignisdatenstrom verfügt über eine Ereignis- und Dateneigenschaft:

event: thread.created
data: {"id": "thread_123", "object": "thread", ...}

Ereignisse werden ausgegeben, wenn ein neues Objekt erstellt, in einen neuen Zustand üb ergeht oder in Teilen (Deltas) gestreamt wird. Beispielsweise wird thread.run.created ausgegeben, wenn eine neue Ausführung erstellt wird, und thread.run.completed wird ausgegeben, wenn eine Ausführung abgeschlossen ist usw. Wenn sich ein Assistent entscheidet, während einer Ausführung eine Nachricht zu erstellen, geben wir ein thread.message.created-Ereignis, ein thread.message.in_progress-Ereignis, viele thread.message.delta-Ereignisse und schließlich ein thread.message.completed-Ereignis aus.

Name Typ Beschreibung
thread.created data ist ein Thread. Tritt auf, wenn ein neuer Thread erstellt wird.
thread.run.created data ist eine Ausführung. Tritt auf, wenn eine neue Ausführung erstellt wird.
thread.run.queued data ist eine Ausführung. Tritt auf, wenn eine Ausführung in einen Warteschlangenstatus verschoben wird.
thread.run.in_progress data ist eine Ausführung. Tritt auf, wenn eine Ausführung in einen in_progress-Status übergeht.
thread.run.requires_action data ist eine Ausführung. Tritt auf, wenn eine Ausführung in den requires_action-Status wechselt.
thread.run.completed data ist eine Ausführung. Tritt auf, wenn eine Ausführung abgeschlossen ist.
thread.run.failed data ist eine Ausführung. Tritt auf, wenn eine Ausführung fehlschlägt.
thread.run.cancelling data ist eine Ausführung. Tritt auf, wenn eine Ausführung in den cancelling-Status wechselt.
thread.run.cancelled data ist eine Ausführung. Tritt auf, wenn eine Ausführung abgebrochen wird
thread.run.expired data ist eine Ausführung. Tritt auf, wenn eine Ausführung verfällt.
thread.run.step.created data ist ein Ausführungsschritt. Tritt auf, wenn ein Ausführungsschritt erstellt wird.
thread.run.step.in_progress data ist ein Ausführungsschritt. Tritt auf, wenn ein Ausführungsschritt in den in_progress-Zustand übergeht.
thread.run.step.delta data ist ein Ausführungsschrittdelta. Tritt auf, wenn Teile eines Ausführungsschritts gestreamt werden.
thread.run.step.completed data ist ein Ausführungsschritt. Tritt auf, wenn ein Ausführungsschritt abgeschlossen ist.
thread.run.step.failed data ist ein Ausführungsschritt. Tritt auf, wenn ein Ausführungsschritt fehlschlägt.
thread.run.step.cancelled data ist ein Ausführungsschritt. Tritt auf, wenn ein Ausführungsschritt abgebrochen wird
thread.run.step.expired data ist ein Ausführungsschritt. Tritt auf, wenn ein Ausführungsschritt verfällt.
thread.message.created data ist eine Nachricht. Tritt auf, wenn eine Nachricht erstellt wird.
thread.message.in_progress data ist eine Nachricht. Tritt auf, wenn eine Nachricht in den in_progress-Zustand wechselt.
thread.message.delta data ist ein Nachrichtendelta. Tritt auf, wenn Teile einer Nachricht gestreamt werden.
thread.message.completed data ist eine Nachricht. Tritt auf, wenn eine Nachricht abgeschlossen ist.
thread.message.incomplete data ist eine Nachricht. Tritt auf, wenn eine Nachricht endet, bevor sie abgeschlossen ist.
error data ist ein Fehler. Tritt auf, wenn ein Fehler auftritt. Dies kann aufgrund eines internen Serverfehlers oder eines Timeouts eintreten.
done data ist [DONE]. Tritt auf, wenn ein Datenstrom endet.