📝 LLM и AI

System prompts: задаём роль языковой модели

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

System prompt — это невидимая инструкция для модели которую задаёт разработчик. Пользователь её не видит, но она определяет всё поведение ассистента на протяжении всего диалога.

Зачем нужен system prompt

Без system prompt Claude отвечает как «полезный ассистент общего назначения». С system prompt — как Python-тьютор, строгий ревьюер кода, саркастичный персонаж, JSON-парсер или специалист по безопасности. Один и тот же вопрос — разные ответы.

client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="Ты — Senior Python-разработчик. Ревьюишь код строго. Находишь минимум 3 проблемы.",
    messages=[{"role": "user", "content": "Проверь мой код: ..."}]
)

Хороший vs плохой system prompt

❌ "Будь полезным ассистентом."

✓ "Ты — Python-тьютор для начинающих.
   Объясняешь через аналогии из повседневной жизни.
   Приводишь короткие примеры кода.
   Отвечаешь только на вопросы про Python.
   Если вопрос не по теме — мягко переводишь разговор обратно."

Принципы хорошего system prompt:
1. Роль — кто ты, какой опыт и характер
2. Задача — что делаешь и чего не делаешь
3. Формат — как структурировать ответ
4. Ограничения — что вне зоны компетенций

temperature — насколько «творческий» ответ

temperature (0.0–1.0) управляет случайностью выбора следующего токена:

client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    temperature=0.0,     # детерминированный режим
    messages=[...]
)
temperature Применение
0.0 Код, факты, JSON, структурированный вывод
0.3–0.5 Технические объяснения
0.7–0.9 Творческие задачи, brainstorming
1.0 Максимальная вариативность

При temperature=0.0 одинаковый вопрос → практически одинаковый ответ. При temperature=1.0 → каждый раз новый вариант.

max_tokens — лимит, а не цель

max_tokens — это максимальный потолок, а не целевая длина. Если поставить max_tokens=100, модель остановится ровно на 100 токенах — посередине предложения.

# Всегда проверяй stop_reason:
if message.stop_reason == "max_tokens":
    # ответ был обрезан — нужен больший лимит
    pass
elif message.stop_reason == "end_turn":
    # модель завершила ответ самостоятельно
    pass

Правило: ставь max_tokens с запасом 2–3x от ожидаемой длины ответа.

System prompt и токены

System prompt входит в input_tokens каждого запроса. Длинный system prompt (500 токенов) × 1000 запросов = 500 000 лишних input-токенов.

Для уменьшения затрат используй prompt caching — Anthropic кеширует system prompt на сервере:

client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": "Очень длинный system prompt...",
        "cache_control": {"type": "ephemeral"}
    }],
    messages=[...]
)

При cache hit — стоимость кешированных токенов снижается на ~90%.

Система ролей

В Messages API три уровня инструкций:

  1. system — задаёт роль и поведение (разработчик)
  2. user — сообщения пользователя
  3. assistant — ответы модели (можно использовать для few-shot примеров)
messages = [
    # Few-shot: показываем нужный формат ответа
    {"role": "user", "content": "2+2"},
    {"role": "assistant", "content": "4"},
    {"role": "user", "content": "Что такое декоратор?"},
]

Роли обязательно чередуются: user → assistant → user → …

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

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

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

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

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

🔗 Похожие

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

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

📝

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

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

📅 30.06.2026 👁️ 330
📝

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

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

📅 30.06.2026 👁️ 336
📝

Typer: CLI-приложения без boilerplate

Typer создаёт CLI из аннотаций типов Python. Никаких argparse, никакого ручного парсинга — только декораторы...

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

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

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

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