API

Серверные инструменты

Серверные инструменты исполняет AITUNNEL, не ваш код. Модель решает, вызвать ли инструмент; мы выполняем его и возвращаем результат модели.

Префикс типа — aitunnel:. Сейчас доступен один: веб-поиск.

Чем отличаются

СерверныеПлагиныВаши tools
Кто решает вызватьМодельВсегда один разМодель
Кто исполняетAITUNNELAITUNNELВаше приложение
Сколько раз0–N за запросОдин раз0–N за запрос
Где задаютсямассив toolsмассив pluginsмассив tools
Типaitunnel:…не toolsfunction

Плагин — например оптимизация сообщений (context-compression). Ваши функции — вызов инструментов.

Доступные

Как это работает

  1. Кладёте серверный инструмент в tools.
  2. Модель по промпту решает, звать ли его и с какими аргументами.
  3. AITUNNEL исполняет вызов и отдаёт результат модели.
  4. Модель отвечает. Может вызвать инструмент ещё раз в том же запросе.

Можно смешивать с вашими function-tools в одном массиве: серверные исполняем мы, пользовательские — вы, как обычно.

curl https://api.aitunnel.ru/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-aitunnel-xxx" \
  -d '{
    "model": "gpt-5.4",
    "messages": [
      { "role": "user", "content": "Какие главные анонсы в ИИ на этой неделе?" }
    ],
    "tools": [{ "type": "aitunnel:web_search" }]
  }'

Вместе с вашей функцией:

JSON
{
  "model": "gpt-5.4",
  "messages": [{ "role": "user", "content": "Найди новости про Apple и сравни с нашей котировкой" }],
  "tools": [
    { "type": "aitunnel:web_search", "parameters": { "max_results": 3 } },
    {
      "type": "function",
      "function": {
        "name": "get_stock_price",
        "description": "Текущая цена акции по тикеру",
        "parameters": {
          "type": "object",
          "properties": { "ticker": { "type": "string" } },
          "required": ["ticker"]
        }
      }
    }
  ]
}

Учёт

Фактические вызовы — в usage.server_tool_use. Платите за то, что модель реально вызвала, а не за сам факт передачи инструмента.

JSON
{
  "usage": {
    "prompt_tokens": 105,
    "completion_tokens": 250,
    "server_tool_use": {
      "web_search_requests": 2
    }
  }
}