Настройка Prompt Engineering для AI-ассистента мобильного приложения
Модель GPT-4o без правильно настроенного промпта на один вопрос пользователя ответит пространно, сменит тон на следующий, а на третий вернёт JSON вместо текста. Prompt engineering — это не «написать хорошую инструкцию», это управление детерминированностью поведения модели через системные промпты, немногочисленные примеры и контроль контекстного окна.
Системный промпт: структура имеет значение
Плохой системный промпт: «Ты полезный ассистент нашего приложения. Отвечай кратко и по делу.»
Рабочий системный промпт содержит четыре зоны:
Роль и ограничения домена. «Ты ассистент приложения для учёта личных финансов. Отвечаешь только на вопросы, связанные с бюджетированием, категоризацией расходов и финансовым планированием. На вопросы вне темы отвечай: "Я помогаю только с вопросами личных финансов."»
Формат вывода. Если ассистент должен возвращать структурированные данные — опиши схему прямо в системном промпте с примером. Модель гораздо надёжнее соблюдает формат, когда видит конкретный образец.
Тон и стиль. «Отвечай кратко — не более 3 предложений. Не используй маркированные списки в разговорных ответах. Не начинай ответ с "Конечно!" или "Отличный вопрос!".»
Контекст пользователя. Сюда инжектируется динамическая информация: имя пользователя, текущий раздел приложения, последние действия.
// iOS — формирование системного промпта с контекстом
func buildSystemPrompt(user: User, currentScreen: AppScreen) -> String {
return """
Ты финансовый ассистент приложения MoneyMap.
Пользователь: \(user.name), валюта: \(user.currency).
Текущий раздел: \(currentScreen.description).
Бюджет на месяц: \(user.monthlyBudget). Потрачено: \(user.spent).
Отвечай кратко, на русском языке, без списков.
"""
}
Few-shot примеры и управление контекстным окном
Few-shot — это 2–5 пар «вопрос → правильный ответ» в начале диалога. Они работают как шаблон поведения. Критично: примеры должны покрывать пограничные случаи, а не только «идеальный» сценарий.
Проблема мобильных ассистентов — ограниченность контекстного окна при длинных сессиях. У gpt-4o-mini — 128K токенов, но стоимость растёт линейно. Стратегии управления историей:
- Sliding window: храним только последние N сообщений (обычно 10–20). Дёшево, но ассистент «забывает» начало разговора
- Summary compression: периодически сжимаем историю: «Пользователь обсуждал категоризацию расходов, добавил 3 транзакции» — этот саммари заменяет 10 сообщений
- Retrieval-augmented memory: важные факты из диалога сохраняются в векторное хранилище и достаются по релевантности. Сложнее, но масштабируется
Temperature, top_p и когда их трогать
temperature=0 — детерминированный вывод, модель всегда выбирает самый вероятный токен. Для структурированных ответов (JSON, числа, классификация) — ставьте 0 или 0.1. Для генерации текста «в стиле» — 0.7–0.9.
top_p=0.9 + temperature=0.7 — стандартная комбинация для разговорного ассистента. Трогать оба параметра одновременно не рекомендуется — они взаимодействуют непредсказуемо.
Ориентиры по срокам
Проектирование и тестирование системного промпта — 2–4 дня. Реализация управления контекстным окном — 1–2 дня. Итого: 3–5 рабочих дней на базовую настройку. Итеративное улучшение после запуска — непрерывный процесс на основе фидбека пользователей.







