Вызов функции Azure OpenAI Assistants
API помощников поддерживает вызов функций, что позволяет описывать структуру функций помощнику, а затем возвращать функции, которые необходимо вызвать, вместе с их аргументами.
Примечание.
- Поиск по файлам может получать до 10 000 файлов на помощника — 500 раз больше, чем раньше. Это быстрый процесс, который поддерживает параллельные многопоточные поисковые запросы, а также функции расширенного повторного ранжирования и перезаписи запросов.
- Векторное хранилище — это новый объект в API. После добавления файла в векторное хранилище он автоматически анализируется, делится на блоки и кодируется в векторном представлении, чтобы подготовить к поиску по содержимому. Векторные хранилища можно использовать между разными помощниками и потоками, упрощая управление файлами и выставление счетов.
- Мы добавили поддержку
tool_choice
параметра, который можно использовать для принудительного использования определенного средства (например, поиска файлов, интерпретатора кода или функции) в определенном запуске.
Поддержка вызовов функций
Поддерживаемые модели
Страница моделей содержит самые актуальные сведения о регионах и моделях, где поддерживаются помощники.
Чтобы использовать все функции вызова функций, включая параллельные функции, необходимо использовать модель, выпущенную после 6 ноября 2023 года.
Версии API
2024-02-15-preview
2024-05-01-preview
Пример определения функции
Примечание.
- Мы добавили поддержку
tool_choice
параметра, который можно использовать для принудительного использования определенного средства (напримерfile_search
,code_interpreter
или аfunction
) в определенном запуске. - Срок действия истекает десять минут после создания. Не забудьте отправить выходные данные средства до истечения этого срока действия.
- Вы также можете выполнять вызов функций с помощью приложений логики Azure
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"]
}
}
}]
)
Чтение функций
При запуске запуска с пользовательским сообщением, которое активирует функцию, запуск введет состояние ожидания. После обработки выполнение введет состояние requires_action, которое можно проверить, извлекая запуск.
{
"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\"}"
}
}
]
}
},
...
Отправка выходных данных функции
Затем можно завершить запуск , отправив выходные данные средства из вызываемых функций. Передайте ссылку tool_call_id
в приведенном выше объекте required_action
, чтобы сопоставить выходные данные с каждым вызовом функции.
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",
},
]
)
После отправки выходных данных средства выполнение введет queued
состояние перед продолжением выполнения.
См. также
- Справочник по API помощников
- Узнайте больше об использовании помощников с нашим руководством по помощникам.
- Примеры API Azure OpenAI Assistants