Урок 2

Function Calling

Даём LLM способности

Проблема: ИИ умеет говорить, но не умеет делать что-то в реальном мире. Он может рассказать формулу прогноза погоды, но не может проверить реальную погоду в твоём городе.

Решение: Научить ИИ пользоваться инструментами

Вызов функций -- это как научить ИИ пользоваться телефоном. Вместо того чтобы просто разговаривать, он теперь может "звонить" в разные сервисы. ИИ переводит запрос в структурированный вывод, указывая, какой инструмент вызвать -- именно это лежит в основе паттерна ReAct.

Представьте это как официанта в ресторане:

  • 1. : Ты говоришь: "Хочу пиццу маргариту"
  • 2. : Официант понимает и записывает: order_pizza(type="margherita")
  • 3. : Кухня (инструмент) получает заказ и готовит пиццу
  • 4. : Официант приносит тебе результат

ИИ "переводит" твою речь в структурированный вызов функции!

Где это используется?

  • Умные ассистенты: "Поставь будильник на 7 утра"set_alarm(time="07:00")
  • Служба поддержки: "Отмени заказ #12345"cancel_order(id=12345)
  • Аналитика данных: "Покажи продажи за Q4"get_sales(quarter=4)
  • Умный дом: "Выключи свет"control_lights(action="off")

Интересный факт: Вызов функций изменил всё! Раньше чат-боты могли только болтать. Теперь они могут делать дела — бронировать билеты, отправлять письма, управлять умным домом. Это то, что делает ИИ по-настоящему полезным помощником.

Попробуйте сами!

Используй интерактивное демо ниже, чтобы увидеть, как ИИ превращает твой запрос в вызов функции. Понаблюдай за магией перевода в реальном времени!

🔧Function Calling: Как AI использует инструменты

🤖 Сам по себе AI умеет только генерировать текст. Но если дать ему описание инструментов (функций), он может решить когда их вызвать и с какими параметрами.

Доступные инструменты (нажми на любой):
👆

Выбери инструмент выше, чтобы увидеть пример

Ключевая идея

Function Calling — это как дать AI номер телефона сервиса. AI не делает работу сам, а "звонит" нужной функции и использует её ответ. Это позволяет подключать AI к базам данных, API, файловым системам — к чему угодно!

📝Как писать промпты для Function Calling
Пример системного промпта:
You are an assistant with access to tools.
When the user asks for something that requires a tool:
1. Identify which tool is needed
2. Call it with correct parameters
3. Use the result to answer

Available tools are provided in the tools parameter.

Этот промпт объясняет модели, что у неё есть доступ к инструментам и как их использовать.

Пример определения инструмента (JSON Schema):
{
  "name": "get_weather",
  "description": "Get current weather in a city",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "City name"
      },
      "units": {
        "type": "string",
        "enum": ["celsius", "fahrenheit"]
      }
    },
    "required": ["city"]
  }
}

JSON Schema описывает параметры функции: какие поля обязательны, какие типы данных принимаются.

Советы по написанию промптов:
  • Используйте чёткие описания: AI должна понимать, когда применять каждый инструмент
  • Указывайте обязательные параметры через "required" в JSON Schema
  • Добавляйте примеры значений в description для лучшего понимания
  • Тестируйте промпты: проверьте, что AI правильно выбирает и вызывает функции

Попробуй сам

Интерактивное демо этой техники

Сравнение техник
Демо режим
Предзаписанные ответы
ЗадачаНачинающийКод

Какая сейчас погода в Париже?

Без техники
Без техники
Промпт
Какая сейчас погода в Париже?
Ответ

В Париже обычно мягкий климат. Сейчас, вероятно, около 18°C и облачно.

Токены:18/25
Время:340ms
Качество:
С Tool Use
С техникой
Промпт
Используй доступные инструменты для ответа. Тулы: - get_weather(city: string): возвращает текущую погоду Вопрос: Какая сейчас погода в Париже?
Ответ

Вызываю инструмент для получения актуальных данных:

→ get_weather("Paris") ← { "temp": 12, "condition": "rain", "humidity": 85, "wind": "15 km/h" }

Сейчас в Париже 12°C, дождь, влажность 85%, ветер 15 км/ч. Рекомендую взять зонт!

🧠Модель определила, что нужны реальные данные, а не предположения
👁️Вызов get_weather("Paris") — обращение к API погоды
👁️Получены точные данные: 12°C, дождь, влажность 85%
Ответ сформирован на основе реальных данных, а не догадок
Токены:58/82
Время:1400ms
Качество:
Почему это работает

Без инструментов модель вынуждена "угадывать" погоду, используя общие знания. Function Calling позволяет получить точные данные в реальном времени.

1 / 2

Квиз по уроку

1 из 3

1.Какова основная цель определений функций при вызове функций LLM?

Практика

Создайте бесплатный аккаунт для решения челленджей

3 челленджей с AI-проверкой для этого урока

Связанные уроки:ReactTool Impact

Этот урок — часть структурированного курса по LLM.

Мой путь обучения