Volání funkce Asistenti Azure OpenAI
Rozhraní API Asistenti podporuje volání funkcí, které umožňuje popsat strukturu funkcí asistentovi a pak vrátit funkce, které je potřeba volat spolu s jejich argumenty.
Poznámka:
- Hledání souborů může ingestovat až 10 000 souborů na asistenta – 500krát více než dříve. Je to rychlý způsob, podporuje paralelní dotazy prostřednictvím vícevláknového vyhledávání a vylepšeného řazení a přepisování dotazů.
- Vektorové úložiště je nový objekt v rozhraní API. Jakmile se soubor přidá do úložiště vektorů, automaticky se parsuje, zachytá a vloží a připraví k hledání. Vektorová úložiště se dají používat napříč asistenty a vlákny, což zjednodušuje správu souborů a fakturaci.
- Přidali jsme podporu parametru
tool_choice
, který se dá použít k vynucení použití konkrétního nástroje (například vyhledávání souborů, interpret kódu nebo funkce) v určitém spuštění.
Podpora volání funkcí
Podporované modely
Stránka modelů obsahuje nejaktuálnější informace o oblastech nebo modelech, ve kterých jsou podporováni asistenti.
Pokud chcete použít všechny funkce volání funkcí, včetně paralelních funkcí, musíte použít model, který byl vydán po 6. listopadu 2023.
Verze rozhraní API
2024-02-15-preview
2024-05-01-preview
Příklad definice funkce
Poznámka:
- Přidali jsme podporu parametru
tool_choice
, který lze použít k vynucení použití konkrétního nástroje (napříkladfile_search
,code_interpreter
nebo afunction
) v určitém spuštění. - Po vytvoření vyprší platnost deseti minut. Před tímto vypršením platnosti nezapomeňte odeslat výstupy vašeho nástroje.
- Můžete také provádět volání funkcí pomocí 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"]
}
}
}]
)
Čtení funkcí
Když spustíte spuštění se zprávou uživatele, která funkci aktivuje, zadá spuštění stav čekající na vyřízení. Po zpracování bude spuštění zadávat requires_action stav, který můžete ověřit načtením spuštění.
{
"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\"}"
}
}
]
}
},
...
Odesílání výstupů funkce
Spuštění pak můžete dokončit odesláním výstupu nástroje z funkcí, které voláte. tool_call_id
Předejte odkazovaný v objektu required_action
výše, aby odpovídal výstupu každému volání funkce.
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",
},
]
)
Po odeslání výstupu nástroje bude spuštění před pokračováním v provádění zadávat queued
stav.
Viz také
- Referenční informace k rozhraní API pro asistenty
- Přečtěte si další informace o tom, jak používat asistenty s našimi návody pro asistenty.
- Ukázky rozhraní API pro asistenty Azure OpenAI