📝 LLM и AI

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

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

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)

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

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

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

🔗 Похожие

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

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

📝

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

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

📅 30.06.2026 👁️ 335
📝

Pydantic v2: валидация данных в Python

Pydantic — библиотека для проверки и преобразования данных через аннотации типов. Она часто используется в...

📅 30.06.2026 👁️ 328
📝

asyncio в Python: асинхронное программирование

asyncio — стандартная библиотека Python для асинхронного кода. Позволяет выполнять несколько задач «одновременно» в одном...

📅 30.06.2026 👁️ 318
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Нейросети в коде: 5 AI-проектов на Python с Claude Открыть программу курса