Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Azure AI Foundry Agent Service är nu allmänt tillgänglig, vilket ger fler verktyg och bättre företagsfunktioner. Vi rekommenderar att du använder den nya tjänsten för de senaste funktionsuppdateringarna och förbättringarna.
API:et Assistants stöder funktionsanrop, vilket gör att du kan beskriva strukturen för funktioner till en assistent och sedan returnera de funktioner som måste anropas tillsammans med deras argument.
Stöd för funktionanrop
Modeller som stöds
Sidan modeller innehåller den senaste informationen om regioner/modeller där assistenter stöds.
Om du vill använda alla funktioner i funktionsanrop, inklusive parallella funktioner, måste du använda en modell som släpptes efter den 6 november 2023.
API-versioner
API-versioner som börjar med 2024-02-15-preview.
Exempel på funktionsdefinition
Anmärkning
- Vi har lagt till stöd för parametern
tool_choicesom kan användas för att tvinga fram användning av ett specifikt verktyg (till exempelfile_search,code_interpretereller enfunction) i en viss körning. - Körningar upphör att gälla tio minuter efter skapandet. Se till att skicka dina verktygsutdata innan det upphör att gälla.
- Du kan också utföra funktionsanrop med 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"]
}
}
}]
)
Läsa funktionerna
När du initierar en Kör med ett användarmeddelande som utlöser funktionen, kommer Körningen att ange en väntande status. När den har bearbetats anger körningen ett requires_action tillstånd som du kan verifiera genom att hämta Körningen.
{
"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\"}"
}
},
]
}
},
...
Skicka funktionsutdata
Du kan sedan slutföra Körningen genom att skicka verktygsutdata från de funktioner som du anropar. Skicka det tool_call_id som refereras i required_action objektet för att matcha utdata till varje funktionsanrop.
# 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)
När du har skickat verktygsutdata kommer Körningen queued att ange tillståndet innan körningen fortsätter.
Se även
- API-referens för assistenter
- Läs mer om hur du använder assistenter med vår instruktionsguide om assistenter.
- API-exempel för Azure OpenAI Assistants