📝 LLM и AI

JSON Schema: описываем структуры данных

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
85
🌿
Уровень
Средний
🐦 💼 ✈️

JSON Schema — стандарт для описания структуры JSON. В Claude API используется для описания инструментов (tool use) — Claude знает какие параметры передавать.

Базовая структура

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "Название города"
    },
    "units": {
      "type": "string",
      "enum": ["celsius", "fahrenheit"],
      "description": "Единицы измерения"
    }
  },
  "required": ["city"]
}

Типы данных

# string
{"type": "string", "description": "Текст"}

# number (int или float)
{"type": "number", "description": "Число"}

# integer (только целое)
{"type": "integer", "description": "Целое число"}

# boolean
{"type": "boolean", "description": "true или false"}

# array
{
    "type": "array",
    "items": {"type": "string"},
    "description": "Список строк"
}

# object (вложенный)
{
    "type": "object",
    "properties": {
        "x": {"type": "number"},
        "y": {"type": "number"}
    },
    "required": ["x", "y"]
}

Инструмент Claude API

TOOLS = [
    {
        "name": "search_web",
        "description": "Ищет информацию в интернете. Используй для актуальных данных.",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {
                    "type": "string",
                    "description": "Поисковый запрос"
                },
                "max_results": {
                    "type": "integer",
                    "description": "Максимум результатов (1-10)",
                    "default": 3
                }
            },
            "required": ["query"]
        }
    },
    {
        "name": "read_file",
        "description": "Читает содержимое локального файла",
        "input_schema": {
            "type": "object",
            "properties": {
                "path": {
                    "type": "string",
                    "description": "Путь к файлу (абсолютный или ~)"
                }
            },
            "required": ["path"]
        }
    }
]

description важнее всего

Claude выбирает инструмент на основе description. Чем точнее описание — тем лучше агент выбирает нужный инструмент:

# Плохо
{"name": "weather", "description": "Погода"}

# Хорошо
{"name": "get_weather", "description": "Получает текущую погоду и прогноз для города. Используй когда пользователь спрашивает про погоду, температуру, осадки."}

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Что такое ORM

ORM (Object-Relational Mapping) — технология, позволяющая работать с базой данных через объекты Python вместо SQL.

📅 30.06.2026 👁️ 131
📝

httpx: современный HTTP-клиент для Python

httpx — HTTP-клиент нового поколения. Интерфейс похож на requests, но с поддержкой async/await из коробки.

📅 30.06.2026 👁️ 108
📝

AI-агенты: ReAct loop и автономные действия

Чат-бот отвечает на вопросы. Агент — действует: вызывает инструменты, получает реальные данные и использует их...

📅 30.06.2026 👁️ 100

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!