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