Azure OpenAI Assistants-függvényhívás
Az Assistants API támogatja a függvényhívást, amely lehetővé teszi a függvények szerkezetének leírását egy asszisztens számára, majd visszaadja a meghívandó függvényeket az argumentumokkal együtt.
Feljegyzés
- A fájlkeresés asszisztensenként akár 10 000 fájlt is betölthet – 500-szor több, mint korábban. Gyors, többszálas keresésekkel támogatja a párhuzamos lekérdezéseket, és továbbfejlesztett újraírást és lekérdezés-újraírást is kínál.
- A vektortároló egy új objektum az API-ban. Miután hozzáadtak egy fájlt egy vektortárolóhoz, a rendszer automatikusan elemzi, darabolja és beágyazja, és készen áll a keresésre. A vektortárolók asszisztensek és szálak között is használhatók, így egyszerűbbé teheti a fájlkezelést és a számlázást.
- Hozzáadtuk a
tool_choice
paraméter támogatását, amely egy adott eszköz (például fájlkeresés, kódértelmező vagy függvény) egy adott futtatáshoz való kényszerítésére használható.
Függvényhívás támogatása
Támogatott modellek
A modellek lap a legfrissebb információkat tartalmazza azokról a régiókról/modellekről, ahol az Asszisztensek támogatottak.
A függvényhívások és a párhuzamos függvények összes funkciójának használatához olyan modellt kell használnia, amely 2023. november 6. után jelent meg.
API-verziók
2024-02-15-preview
2024-05-01-preview
Példa függvénydefiníció
Feljegyzés
- Hozzáadtuk a
tool_choice
paraméter támogatását, amellyel kényszeríthető egy adott eszköz (példáulfile_search
,code_interpreter
vagy afunction
) használata egy adott futtatásban. - A futtatások a létrehozás után tíz perccel lejárnak. A lejárat előtt mindenképpen küldje el az eszköz kimeneteit.
- Függvényhívást is végrehajthat az Azure Logic Apps használatával
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"]
}
}
}]
)
A függvények olvasása
Amikor elindít egy futtatás felhasználói üzenetet, amely aktiválja a függvényt, a futtatás függőben lévő állapotot ad meg. A folyamat után a futtatás egy requires_action állapotot fog megadni, amelyet a Futtatás lekérésével ellenőrizheti.
{
"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\"}"
}
}
]
}
},
...
Függvénykimenetek beküldése
Ezután a futtatás befejezéséhez küldje el az eszköz kimenetét a hívott függvény(ek)ből. Adja át a tool_call_id
fenti objektumban hivatkozott hivatkozást, required_action
hogy megfeleljen az egyes függvényhívások kimenetének.
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",
},
]
)
Az eszközkimenetek elküldése után a Futtatás a végrehajtás folytatása előtt adja meg az queued
állapotot.
Lásd még
- Assistants API-referencia
- További információ az Asszisztensek használatáról a Segédekről szóló útmutatónk segítségével.
- Azure OpenAI Assistants API-minták