Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Alleen van toepassing op:klassieke Foundry-portal. Dit artikel is niet beschikbaar voor de nieuwe Foundry-portal.
Meer informatie over de nieuwe portal.
Opmerking
Koppelingen in dit artikel kunnen inhoud openen in de nieuwe Microsoft Foundry-documentatie in plaats van de Foundry-documentatie (klassiek) die u nu bekijkt.
Opmerking
De Assistants API is verouderd en zal op 26 augustus 2026 met pensioen worden genomen. Gebruik de algemeen beschikbare Microsoft Foundry Agents-dienst. Volg de migratiegids om je workloads bij te werken. Meer informatie.
De Assistenten-API ondersteunt functieaanroepen, waarmee u de structuur van functies kunt beschrijven aan een assistent en vervolgens de functies kunt retourneren die samen met hun argumenten moeten worden aangeroepen.
Ondersteuning voor functieaanroep
Ondersteunde modellen
De modellenpagina bevat de meest actuele informatie over regio's/modellen waar assistenten worden ondersteund.
Als u alle functies van functieaanroepen inclusief parallelle functies wilt gebruiken, moet u een model gebruiken dat na 6 november 2023 is uitgebracht.
API-versies
API-versies beginnend met 2024-02-15-preview.
Voorbeeldfunctiedefinitie
Opmerking
- We hebben ondersteuning toegevoegd voor de
tool_choiceparameter die kan worden gebruikt om het gebruik van een specifiek hulpprogramma (zoalsfile_search,code_interpreterof eenfunction) in een bepaalde uitvoering af te dwingen. - Uitvoeringen verlopen tien minuten nadat ze zijn aangemaakt. Zorg ervoor dat u de output van uw tool verzendt voordat deze verloopt.
- U kunt ook een functie aanroepen met Azure Logic apps
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"]
}
}
}]
)
De functies lezen
Wanneer u een Run initieert met een gebruikersbericht waarmee de functie wordt geactiveerd, krijgt de Run de status in afwachting. Nadat de uitvoering is verwerkt, wordt er een requires_action status ingevoerd die u kunt controleren door de uitvoering op te halen.
{
"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\"}"
}
},
]
}
},
...
Functie-uitvoer verzenden
Vervolgens kunt u de uitvoering voltooien door de uitvoer van het hulpprogramma in te dienen van de functie(s) die u aanroept. Geef de tool_call_id verwijzing in het required_action object door om de uitvoer te koppelen aan elke functie-aanroep.
# 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)
Nadat u de uitvoer van het hulpprogramma hebt verzonden, wordt de status queued ingevoerd voordat de uitvoering wordt voortgezet.
Zie ook
- Assistents API-referentie
- Meer informatie over het gebruik van assistenten met onze handleiding over assistenten.
- Azure Api-voorbeelden van OpenAI-assistenten