Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt nur für:Foundry (klassisches) Portal. Dieser Artikel ist für das neue Foundry-Portal nicht verfügbar.
Erfahren Sie mehr über das neue Portal.
Hinweis
Links in diesem Artikel können Inhalte in der neuen Microsoft Foundry-Dokumentation anstelle der jetzt angezeigten Foundry-Dokumentation (klassisch) öffnen.
Hinweis
Die Assistenten-API wird eingestellt. Nutzen Sie den allgemein verfügbaren Service Microsoft Foundry Agents. Informationen zum Aktualisieren Ihrer Workloads finden Sie im Migrationshandbuch. Weitere Informationen.
Die Assistenten-API unterstützt Funktionsaufrufe, mit denen Sie die Struktur von Funktionen an einen Assistenten beschreiben und dann die Funktionen zurückgeben können, die zusammen mit ihren Argumenten aufgerufen werden müssen.
Unterstützung für Funktionsaufrufe
Unterstützte Modelle
Die Modell Seite enthält die aktuellsten Informationen zu Regionen/Modellen, in denen Assistenten verfügbar sind.
Um alle Funktionen von Funktionsaufrufen einschließlich paralleler Funktionen zu verwenden, müssen Sie ein Modell verwenden, das nach dem 6. November 2023 veröffentlicht wurde.
API-Versionen
API-Versionen beginnend mit 2024-02-15-preview.
Beispielfunktionsdefinition
Hinweis
- Wir haben Unterstützung für den
tool_choiceParameter hinzugefügt, der verwendet werden kann, um die Verwendung eines bestimmten Tools (wiefile_search,code_interpreteroder afunction) in einer bestimmten Ausführung zu erzwingen. - Läuft 10 Minuten nach der Erstellung ab. Stellen Sie sicher, dass Sie Ihre Toolausgaben vor diesem Ablaufdatum übermitteln.
- Sie können auch Funktionsaufrufe mit Azure Logic Apps ausführen
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-07-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
name="Weather Bot",
instructions="You are a weather bot. Use the provided functions to answer questions.",
model="gpt-4", #Replace with model deployment name
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the weather in location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city name, for example San Francisco"}
},
"required": ["location"]
}
}
}]
)
Funktionen auslesen
Wenn Sie eine Ausführung mit einer Benutzernachricht initiieren, die die Funktion auslöst, gibt die Ausführung den Status " Ausstehend " ein. Nach dem Verarbeiten geht die Ausführung in den Status „requires_action“ über, den Sie überprüfen können, indem Sie die Ausführung abrufen.
{
"id": "run_abc123",
"object": "thread.run",
"assistant_id": "asst_abc123",
"thread_id": "thread_abc123",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"location\":\"Seattle\"}"
}
},
]
}
},
...
Senden von Funktionsausgängen
Anschließend können Sie die Ausführung abschließen, indem Sie die Toolausgabe aus den von Ihnen aufgerufenen Funktionen übermitteln. Übergeben Sie die tool_call_id, auf die im required_action-Objekt verwiesen wird, um die Ausgabe an jeden Funktionsaufruf anzupassen.
# Example function
def get_weather():
return "It's 80 degrees F and slightly cloudy."
# Define the list to store tool outputs
tool_outputs = []
# Loop through each tool in the required action section
for tool in run.required_action.submit_tool_outputs.tool_calls:
# get data from the weather function
if tool.function.name == "get_weather":
weather = get_weather()
tool_outputs.append({
"tool_call_id": tool.id,
"output": weather
})
# Submit all tool outputs at once after collecting them in a list
if tool_outputs:
try:
run = client.beta.threads.runs.submit_tool_outputs_and_poll(
thread_id=thread.id,
run_id=run.id,
tool_outputs=tool_outputs
)
print("Tool outputs submitted successfully.")
except Exception as e:
print("Failed to submit tool outputs:", e)
else:
print("No tool outputs to submit.")
if run.status == 'completed':
print("run status: ", run.status)
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.to_json(indent=2))
else:
print("run status: ", run.status)
print (run.last_error.message)
Nachdem Sie die Toolausgabe übermittelt haben, wechselt die Ausführung in den Status queued, bevor sie die Ausführung fortsetzt.
Siehe auch
- API-Referenz für Assistenten
- Erfahren Sie mehr über die Verwendung von Assistenten mit unserem Anleitungshandbuch zu Assistenten.
- Azure OpenAI Assistants API-Beispiele