Вызов инструментов и функций (Tool Calling)

Стандартизированная спецификация выполнения внешних функций, запросов к базам данных и взаимодействия с внешними API.

Современные нейросети не ограничены пассивной генерацией текста — они способны действовать как интеллектуальные исполнители. Механизм Tool Calling позволяет передать модели описание доступных функций в виде JSON Schema. Модель самостоятельно решает, когда вызвать функцию, и возвращает валидные аргументы для ее исполнения вашим бэкендом.

Двухфазный цикл выполнения функций

На первом этапе клиент передает промпт и массив `tools`. Модель анализирует контекст и возвращает ответ со статусом finish_reason: 'tool_calls' и разобранными аргументами. Клиент выполняет локальный код и передает результат обратно модели для финального ответа.

Ключевые технические возможности

  • Параллельный вызов (Parallel Tools): Возможность для модели сформировать вызовы сразу нескольких функций в рамках одного ответа.
  • Строгая валидация типов: Аргументы генерируются строго по схеме JSON Schema, минимизируя ошибки сериализации.
  • Поддержка всех ведущих архитектур: Единый синтаксис вызова для моделей OpenAI, Anthropic, Google и DeepSeek.
  • Безопасность выполнения: Код функций всегда выполняется на вашей стороне, исключая неконтролируемые побочные эффекты.

Пример интеграции в коде

Ниже представлен базовый пример отправки запроса с использованием стандартного клиента. Убедитесь, что ваш токен создан в разделе Ключи управления API:


import OpenAI from "openai";

// Инициализация стандартного SDK с базовым URL Api Router
const client = new OpenAI({
  baseURL: "https://api-router.velar.plus/v1",
  apiKey: process.env.API_ROUTER_KEY, // Ваш ключ от сервиса
});

async function run() {
  const response = await client.chat.completions.create({
    model: "anthropic/claude-sonnet", // Семейство модели без жесткой привязки к устаревающим номерам
    messages: [
      { role: "system", content: "Вы профессиональный инженер-архитектор." },
      { role: "user", content: "Как настроить надежную маршрутизацию запросов?" }
    ],
    temperature: 0.2,
  });

  console.log("Ответ модели:", response.choices[0].message.content);
}

run();
  

Связанные разделы документации

Для глубокого погружения в тему изучите следующие материалы: