Добавить в приложение чат-ассистента — одна из самых популярных идей сейчас. Но именно здесь многие начинающие разработчики совершают дорогостоящую ошибку: вставляют API-ключ ИИ прямо в JavaScript.
Любой может открыть APK и прочитать файлы внутри. Если там ваш ключ, кто-нибудь его найдёт, а платить за его использование будете вы. Вот как сделать всё правильно.
Правило: ключ никогда не кладут в приложение
Ваше приложение должно общаться с вашим сервером. Ваш сервер хранит ключ и общается с ИИ-провайдером. Приложение вообще не видит ключ.
Phone app → your small proxy → AI provider
(holds the key)
Такой прокси может быть крошечным. Например, бессерверная функция на Cloudflare Workers — это несколько десятков строк, и у неё щедрый бесплатный тариф.
Минимальный прокси
// Cloudflare Worker. The key is stored as a secret, not in code. export default { async fetch(req, env) { if (req.method !== 'POST') return new Response('Not allowed', { status: 405 }); const { message } = await req.json(); if (!message || message.length > 2000) return new Response('Bad request', { status: 400 }); // Call your AI provider here with env.AI_KEY and return its answer. } };
Храните ключ в секретах платформы, чтобы он никогда не попадал в ваш код или репозиторий.
Ограничьте возможности прокси
- Ограничьте размер ввода. Отклоняйте огромные сообщения, пока они не дошли до ИИ.
- Зафиксируйте модель и настройки на сервере. Не позволяйте приложению выбирать дорогую модель.
- Ограничение частоты. Нескольких запросов в минуту на пользователя вполне достаточно для функции чата.
- Установите лимит расходов у вашего ИИ-провайдера, чтобы ошибка никогда не превратилась в огромный счёт.
Вызов из приложения
Из вашего HTML-приложения достаточно обычного fetch к вашему прокси. Показывайте индикатор набора, пока ждёте, и аккуратно обрабатывайте ошибки: телефоны теряют сигнал, а ИИ-сервис может быть занят.
Помните о правилах магазинов
Приложение, генерирующее текст с помощью ИИ, подпадает под политику Google Play в отношении контента, созданного ИИ. Нужен способ для пользователей сообщать об оскорбительных ответах, а ваша политика конфиденциальности и форма «Безопасность данных» должны упоминать, что сообщения отправляются стороннему сервису. Мы разбираем оба пункта в нашем руководстве по политике и в статье о конфиденциальности ИИ-приложений.