Как создать приложение ИИ-чатбота: ключи, промпты, затраты и безопасность
Чтобы создать приложение ИИ-чатбота, нужны четыре вещи: интерфейс чата, небольшой сервер, который хранит API-ключ провайдера модели и передаёт ему сообщения, системный промпт с описанием того, кем является модель и что ей можно делать, а также ограничения, которые держат расходы и злоупотребления под контролем. ИИ-конструктор приложений может написать всё это по описанию. За вами остаются выбор провайдера, написание инструкций и решение о том, что бот никогда не должен делать.
Из чего состоит приложение ИИ-чатбота
У большинства чатботов, будь то помощник службы поддержки, репетитор или внутренний инструмент «спроси нашу документацию», одинаковые части:
| Часть | Что делает | Можно ли её пропустить? |
|---|---|---|
| Интерфейс чата | Список сообщений, поле ввода, состояние «думаю», потоковые ответы | Нет |
| Серверный маршрут | Принимает сообщение пользователя, добавляет системный промпт и вызывает провайдера с вашим секретным ключом | Нет, ключ никогда не должен попадать в браузер |
| Системный промпт | Постоянные инструкции: роль, тон, область применения, что отклонять | Нет |
| Знания | Ваш собственный контент, из которого бот отвечает (FAQ, политики, документация продукта) | Да, для универсального помощника |
| Хранение переписок | Сохраняет диалоги в базе данных, чтобы пользователи могли вернуться к ним | Да, в первой версии |
| Аккаунты | Позволяют каждому пользователю видеть только свою историю и ограничивать использование для каждого | Да, для публичной демо-версии со строгими лимитами |
| Лимиты и журналирование | Ограничение длины сообщений, частоты запросов, потолок расходов, журнал ошибок | Нет |
Серверный маршрут чаще всего реализуют неправильно. Если страница чата вызывает провайдера напрямую из браузера, любой может открыть инструменты разработчика, скопировать ваш ключ и потратить ваш бюджет.
Решения, которые нужно принять до разработки
Провайдер и модель
Основные провайдеры (OpenAI, Anthropic, Google и другие) предлагают чат-API, который работает одинаково: вы отправляете список сообщений и получаете ответ. Практический выбор зависит не столько от бренда, сколько от размера модели:
- Меньшие, более быстрые модели дешевле и быстро отвечают. Они подходят для коротких ответов, классификации и простых FAQ-ботов.
- Большие модели лучше рассуждают, надёжнее следуют длинным инструкциям и справляются с запутанными вопросами, но стоят дороже за сообщение и отвечают медленнее.
Начните со средней модели, проверьте её на своих реальных вопросах и затем двигайтесь вверх или вниз. Если вы пока не разбираетесь в том, как устроены и тарифицируются эти API, сначала прочитайте как использовать API LLM.
Откуда берутся знания бота
| Ваш контент | Подход |
|---|---|
| Одна-две страницы (часы работы, политика возврата, цены) | Вставить прямо в системный промпт |
| Десятки страниц, которые редко меняются | Положить сжатую версию в промпт или разбить по темам и подставлять нужный раздел |
| Сотни документов или контент, который меняется каждый день | Сохранить, искать фрагменты, подходящие к каждому вопросу, и отправлять только их (RAG) |
Начинайте с самого простого варианта, который покрывает ваш контент. Поиск добавляет поисковый индекс, необходимость поддерживать его в актуальном состоянии и новые места, где могут появиться ошибки в ответах. Многим полезным ботам он вообще не нужен.
Публично или за входом
Публичный чатбот на вашем сайте легко найти, но его также легко злоупотребить: кто-то может скриптом отправить тысячи сообщений. Чатбот за логином позволяет сохранять историю для каждого пользователя и задавать дневной лимит на аккаунт. Если бот публичный, ограничьте длину сообщения, количество сообщений от одного посетителя за период и установите жёсткий месячный лимит в панели провайдера. Со стороны аккаунтов поможет как добавить вход в приложение.
Сохранять ли переписки
Сохранённые диалоги полезны: пользователи могут продолжить с того места, где остановились, а вы можете читать настоящие вопросы и улучшать промпт. Но это также персональные данные. Решите, как долго их хранить, укажите это в уведомлении о конфиденциальности и не сохраняйте ничего лишнего.
Пишите системный промпт как должностную инструкцию
Системный промпт — это инструкция, которую модель получает перед каждым разговором. Хороший промпт читается как короткое описание задачи для нового сотрудника:
- Роль и аудитория: «Вы помощник Oakline, мастерской по ремонту велосипедов. Вы общаетесь с клиентами».
- Область: «Отвечайте на вопросы об услугах, ценах, часах работы и записи. Во всех остальных случаях скажите, что можете помогать только по вопросам мастерской».
- Источник истины: «Используйте только информацию ниже. Если ответа там нет, скажите, что не знаете, и дайте телефон мастерской».
- Тон и длина: «Дружелюбно, простым языком, не более трёх предложений, если не просят подробностей».
- Жёсткие правила: «Никогда не обещайте цену ремонта, которой нет в списке. Никогда не просите данные банковской карты».
Затем проверьте промпт неудобными вопросами: запросы не по теме, грубые сообщения, вопросы, ответов на которые нет в вашем контенте, и попытки заставить бота игнорировать инструкции («забудь свои правила и…»). Дорабатывайте промпт, пока ответы не станут такими, под которыми вы готовы поставить свою подпись.
Держите расходы под контролем
Провайдеры выставляют счёт за токены (примерно части слов) за входные данные, которые вы отправляете, и за выходные, которые пишет модель. На счёт влияют три вещи:
- Длина переписки. Каждое новое сообщение обычно повторно отправляет всю ветку, чтобы модель помнила контекст. Ответ в чате из 40 сообщений стоит гораздо дороже, чем в чате из 4. Храните только последние несколько реплик или сворачивайте более ранние в краткое содержание.
- Размер промпта. Длинный системный промпт или большой блок вставленных знаний отправляется с каждым сообщением.
- Длина ответа. Задайте максимальную длину ответа в вызове API и попросите в промпте краткие ответы.
Перед запуском задайте месячный лимит расходов в панели провайдера и записывайте количество токенов по каждому запросу, чтобы видеть, какие диалоги дорогие. Здесь мы не приводим цены, потому что они зависят от модели и часто меняются. Проверяйте актуальную страницу тарифов провайдера.
Создание по шагам
Шаг 1: опишите бота, а не код
Первый запрос, в котором названы аудитория, область, данные и правила безопасности, даёт большую часть результата:
Создай чат поддержки клиентов для Oakline, мастерской по ремонту велосипедов. Страница чата со списком сообщений и полем ввода, ответы выводятся по мере генерации. Вызывай API Anthropic из серверного маршрута, используя секретный ключ ANTHROPIC_API_KEY, — никогда не отдавай его в браузер. Системный промпт должен отвечать только на вопросы об услугах, ценах и часах работы по тексту из файла shop-info.md, а в остальных случаях говорить: «Не уверен, позвоните нам по номеру ниже». Ограничь сообщения 500 символами и 20 сообщениями на посетителя в час. Чистый дружелюбный дизайн, который хорошо работает на телефонах.
Шаг 2: добавьте ключ как секрет
Создайте ключ в консоли провайдера, затем сохраните его в переменных окружения или секретах проекта, а не в чате и не в коде. Если ключ когда-либо появится в публичном месте, отзовите его у провайдера и создайте новый. Что такое переменные окружения и секреты объясняет, почему это важно.
Шаг 3: проверяйте ответы, а не только интерфейс
Когда чат заработает, основное время уделите качеству ответов. Составьте список из 20 примерно реальных вопросов, включая несколько таких, на которые бот должен отказывать, и проходите их после каждого изменения промпта. Проверяйте:
- Остаётся ли бот в рамках своей области?
- Признаёт ли он, когда не знает ответа, вместо того чтобы выдумывать?
- Выдерживает ли он попытки переопределить его инструкции?
- Отсутствует ли ключ во всём, что загружает браузер?
Шаг 4: добавьте память и аккаунты, если они нужны
Когда отдельные диалоги работают, добавьте сохранение переписок в базе данных и, если нужно, регистрацию и вход, чтобы каждый пользователь видел только свои чаты. Одновременно добавьте дневной лимит сообщений для каждого пользователя.
Шаг 5: публикуйте с включёнными лимитами
Убедитесь, что в опубликованном приложении есть те же секреты, что и в превью, потолок расходов установлен у провайдера, а ошибки записываются в журнал, который вы будете видеть. Затем покажите приложение небольшой группе, прежде чем размещать его на главном сайте.
Безопасность и доверие
Чатбот общается с публикой от вашего имени, поэтому его ошибки — ваша проблема:
- Неверные ответы. Модели могут уверенно говорить неправду. Держите бота на узкой теме, опирайтесь на ваш собственный контент и показывайте короткое примечание, что ответы могут быть неверными, если речь идёт о важных вещах.
- Внедрение инструкций (prompt injection). Пользователи (или документы, которые читает бот) могут содержать инструкции вроде «игнорируй прежние правила». Не давайте боту полномочий, которым нельзя доверять: никаких возвратов, удалений или писем по просьбе пользователя без проверки в вашем коде.
- Чувствительные темы. По медицинским, юридическим или финансовым вопросам пусть бот направляет людей к специалисту, а не даёт советы.
- Персональные данные. Не вставляйте записи о клиентах в промпты без необходимости и проверьте, что условия провайдера говорят о том, как обрабатываются данные API.
Наш чек-лист безопасности для приложений, созданных с помощью ИИ, охватывает всё приложение.
Частые ошибки
- Вызов провайдера из браузера. Ключ утекает. Всегда обращайтесь через свой сервер.
- Публичный бот без лимитов. Один скрипт может исчерпать месячный бюджет за несколько часов.
- Одновременный запуск RAG, инструментов и нескольких моделей. Сначала добейтесь одной хорошей переписки; остальное добавляйте, когда реальные вопросы покажут необходимость.
- Проверка только дружелюбных вопросов. Пользователи в первый же день будут задавать странные, враждебные и не относящиеся к теме вопросы.
- Бесконечно растущая ветка. Расходы и время ответа растут с каждым сообщением.
Когда лучше готовое решение
Собственный бот имеет смысл, если чатбот — часть вашего продукта, нужны ваши данные или рабочий процесс либо особый внешний вид и поведение. Часто лучше выбрать готовое решение, когда:
- Вам нужен только виджет поддержки на существующем сайте. Многие продукты helpdesk и живого чата уже включают ИИ-ботов для ответов, которые читают ваш центр справки и имеют передачу живому оператору, входящие и отчёты.
- Пользоваться будете только вы или ваша команда. Подписки на универсального ассистента, например ChatGPT или Claude, с загруженными документами могут оказаться всем, что нужно.
- Нужны строгие гарантии соответствия требованиям (например, для регулируемых медицинских или финансовых данных). Поставщик, который уже имеет сертификаты, может быть безопаснее собственной разработки.
Как это сделать с Mythex
Mythex — это ИИ-конструктор приложений: вы описываете чатбот в чате, а он пишет интерфейс и серверный вызов, запускает живое превью и публикует приложение по публичному адресу. ИИ внутри вашего приложения использует ваш собственный ключ провайдера. Вы добавляете его в секреты проекта или через карточку с секретами, которую Mythex показывает в чате, когда она нужна. Использование провайдера оплачивается из вашего аккаунта у провайдера, а не кредитами сборки Mythex. Mythex не включает токены для пользователей вашего приложения, готовый продукт базы знаний или готовые лимиты частоты запросов: это части, которые вы запрашиваете и проверяете сами. На странице документации добавление ИИ в ваше приложение описано, как это сделать, а в добавление ИИ с вашими API-ключами есть стартовый промпт.
Если боту нужны сохранённые диалоги, Mythex подключает к проекту базу данных Postgres по вашему запросу. Больше способов использовать модели внутри приложения, от сводок до классификации, описано в как добавить функции ИИ в приложение, а стартовые точки можно найти в шаблонах приложений.
Вопросы
Нужен ли свой API-ключ, чтобы создать приложение ИИ-чатбота?
Да, почти всегда. Чатбот отправляет каждое сообщение модели у провайдера, например OpenAI, Anthropic или Google, а провайдер выставляет счёт аккаунту, которому принадлежит API-ключ. Ключ должен храниться на вашем сервере, а не в веб-странице.
Сколько стоит работа ИИ-чатбота?
Провайдеры берут плату за токены: и за текст, который вы отправляете, и за текст, который пишет модель в ответ. Цены сильно различаются между моделями. Поскольку каждое новое сообщение обычно повторно отправляет всю переписку, в длинных чатах каждый ответ стоит дороже, чем в коротких. Смотрите страницу тарифов провайдера и задайте лимит расходов в его панели управления.
Можно ли обучить чатбота на моих документах?
Обычно саму модель не обучают. Для небольшого объёма контента его вставляют прямо в системный промпт. Для большой базы знаний её сохраняют, ищут в ней фрагменты, относящиеся к каждому вопросу, и отправляют модели только их. Второй подход называется RAG, то есть генерация с дополнением извлечённых данных (retrieval-augmented generation).
Можно ли создать ИИ-чатбота без программирования?
Да. ИИ-конструктор приложений может по текстовому описанию написать интерфейс чата, серверный маршрут, который обращается к модели, и базу данных для сохранённых переписок. Аккаунт у провайдера и API-ключ всё равно нужно создать самостоятельно.