Funktionsanrop för Azure OpenAI Assistants
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.
Kommentar
- Filsökning kan mata in upp till 10 000 filer per assistent – 500 gånger mer än tidigare. Den är snabb, stöder parallella frågor via sökningar med flera trådar och funktioner för förbättrad omrankning och omskrivning av frågor.
- Vector Store är ett nytt objekt i API:et. När en fil har lagts till i ett vektorlager parsas den automatiskt, segmenteras och bäddas in och görs redo att sökas igenom. Vektorlager kan användas mellan assistenter och trådar, vilket förenklar filhantering och fakturering.
- Vi har lagt till stöd för parametern
tool_choice
som kan användas för att tvinga fram användningen av ett specifikt verktyg (till exempel filsökning, kodtolkare eller en funktion) i en viss körning.
Stöd för funktionssamtal
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
2024-02-15-preview
2024-05-01-preview
Exempel på funktionsdefinition
Kommentar
- Vi har lagt till stöd för parametern
tool_choice
som kan användas för att tvinga fram användning av ett specifikt verktyg (till exempelfile_search
,code_interpreter
eller 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-02-15-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
instructions="You are a weather bot. Use the provided functions to answer questions.",
model="gpt-4-1106-preview", #Replace with model deployment name
tools=[{
"type": "function",
"function": {
"name": "getCurrentWeather",
"description": "Get the weather in location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
"unit": {"type": "string", "enum": ["c", "f"]}
},
"required": ["location"]
}
}
}, {
"type": "function",
"function": {
"name": "getNickname",
"description": "Get the nickname of a city",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
},
"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": "getCurrentWeather",
"arguments": "{\"location\":\"San Francisco\"}"
}
},
{
"id": "call_abc456",
"type": "function",
"function": {
"name": "getNickname",
"arguments": "{\"location\":\"Los Angeles\"}"
}
}
]
}
},
...
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 ovan för att matcha utdata till varje funktionsanrop.
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-15-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
run = client.beta.threads.runs.submit_tool_outputs(
thread_id=thread.id,
run_id=run.id,
tool_outputs=[
{
"tool_call_id": call_ids[0],
"output": "22C",
},
{
"tool_call_id": call_ids[1],
"output": "LA",
},
]
)
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