Сценарий
Бэкенд для приложений-компаньонов
Используйте nokeep как модель вашего приложения-компаньона: API, совместимое с OpenAI, без отказов и без хранения сообщений. DeepSeek V4.1 Flash Uncensored остаётся в роли, читает фото, которые присылают пользователи, и обходится примерно в 0,97 $ в месяц для того, кто пишет 40 сообщений каждый день.
Проверено 29 октября 2026 г.
Что нужно приложению-компаньону и что вы получаете
| Приложению-компаньону нужно | На nokeep |
|---|---|
| Персонаж, который не ломается | Нет нашего системного промпта и нет фильтра на ответ: модель читает только вашу персону. Отказы удалены из весов, поэтому посреди чата не появляется ход «как ИИ». |
| Взрослый разговор для взрослых | Романтика и взрослые темы разрешены для взрослых пользователей, в пределах короткого списка жёстких ограничений. Вызов, который их пересекает, получает 422 и ничего не стоит, а не тихо смягчённый ответ. |
| Память, которая ощущается настоящей | API ничего не хранит, поэтому память — ваша: резюме о пользователе в системном сообщении и недавний чат после него. DeepSeek читает до 1 000 000 токенов, если хотите отправлять больше. |
| Фото | DeepSeek читает до 10 изображений за запрос, поэтому пользователь может поделиться фото и получить ответ о нём. Изображения. |
| Сообщения, которые кажутся набранными вручную | Потоковая передача и без паузы на размышление у DeepSeek, если вы сами её не запросите. |
| Доверие пользователей | Мы не храним ни сообщений, ни ответов, только счётчики. Что мы храним. |
Сколько стоит пользователь
| Модель | День одного пользователя, без кэша | День одного пользователя, повторяющееся начало в кэше |
|---|---|---|
| DeepSeek V4.1 Flash Uncensored | $0.093 | $0.032 |
| GLM 5.3 Flash Uncensored | $0.041 | $0.019 |
Расчёт по сегодняшним ценам: начало в 1 700 токенов, 40 реплик по 40 токенов на входе и 120 на выходе, последние 30 реплик сохраняются, самый длинный вызов — 6 540 токенов. Короткое размышление GLM перед каждым ответом добавляет выходные токены, которых здесь нет.
Итого пользователь, который общается каждый день, обходится примерно в $0.97 в месяц на DeepSeek или $0.56 на GLM. Большинство пользователей пишут не каждый день, поэтому средняя сумма ниже. Колонка с кэшем предполагает, что одно и то же начало повторяется от сообщения к сообщению; как это поддерживать, описано в следующем разделе.
Персона, память и потоковый ответ
Системное сообщение содержит персону, затем то, что ваше приложение помнит об этом пользователе. Далее идут последние сообщения. Запускайте это на своём сервере, чтобы ключ никогда не попадал в телефон.
import OpenAI from "openai"
const client = new OpenAI({
baseURL: "https://nokeep.ai/v1",
apiKey: process.env.NOKEEP_API_KEY,
})
const persona = "You are Iris, a warm, teasing companion who loves astronomy and bad puns. Talk like a close friend texting: short messages, no lists, no lectures. Remember what the user tells you and bring it up later."
export async function reply(user, recent, send) {
const stream = await client.chat.completions.create({
model: "deepseek-v4.1-flash-uncensored",
messages: [
{ role: "system", content: persona + "\n\nWhat you know about them: " + user.memory },
...recent,
],
stream: true,
max_tokens: 300,
temperature: 0.9,
prompt_cache_key: "user-" + user.id,
})
let text = ""
for await (const chunk of stream) {
const piece = chunk.choices[0]?.delta?.content ?? ""
send(piece)
text += piece
}
return text
}prompt_cache_key сохраняет вызовы одного пользователя там, где его начало закэшировано. Он передаётся в виде хэша вместе с вашим аккаунтом, поэтому никакой другой аккаунт не делит этот кэш.
Память, которая остаётся дешёвой
- Обновляйте память пачками, а не на каждое сообщение. Начало вызова читается из кэша, только пока оно повторяется. Обновляйте резюме каждые 20 или 30 сообщений, и начало между обновлениями останется прежним.
- Удаляйте старые сообщения блоками. Если убирать по одному сообщению за реплику, начало меняется каждый раз. Сверните 20 самых старых в резюме разом, а потом продолжайте добавлять.
- Пишите резюме дешёвым вызовом.
glm-5.3-flash-uncensoredпо $0.20 за миллион входных токенов подходит для «обнови, что ты знаешь об этом пользователе»: никто не ждёт этого ответа. - Храните данные на своей стороне. Ваша база содержит историю чатов и память. Шифруйте её, дайте пользователям возможность удалять, и только у вас она и будет храниться.
Какая модель
| DeepSeek V4.1 Flash Uncensored | GLM 5.3 Flash Uncensored | |
|---|---|---|
| Для чего | Реплики компаньона | Резюме памяти и другие фоновые вызовы |
| Фото | Да | Нет, только текст |
| Начинает отвечать | Сразу, размышление выключено по умолчанию | После короткого размышления |
| Сэмплеры | Температура, min_p и другие | Нет |
| Цена за 1 млн токенов | $0.45 на вход, $1.75 на выход | $0.20 на вход, $0.65 на выход |
Чтобы голос персонажа не менялся незаметно, вызывайте идентификатор с датой deepseek-v4.1-flash-1017-uncensored: он остаётся на сборке от 17 октября 2026 года. Модели.
Приватность, которую ваши пользователи могут прочитать
Чаты с компаньоном — одни из самых личных текстов. На каждый вызов мы храним время, ключ, модель, количество токенов, кредиты и статус, 30 дней, и больше ничего. Ни email аккаунта, ни сообщений, ни ответов. DeepSeek работает на приватном уровне, который не хранит промпты и ответы, а хост GLM ничего не сохраняет после отправки ответа.
Перед запуском вызова автоматическая проверка читает самое новое сообщение по жёстким ограничениям и отвечает «да» или «нет». Прочитанное не сохраняется. Что мы храним.
Вопросы
Может ли моё приложение-компаньон разрешать взрослый контент?
Да, для взрослых пользователей. Романтика и взрослая проза между взрослыми входят в условия. Сексуальный контент с участием несовершеннолетних или реальных людей никогда не входит, а вызовы, которые пересекают жёсткое ограничение, отклоняются. Ваше приложение отвечает за проверку того, что пользователи — взрослые, а создатель каждого ключа подтверждает, что ему 18 или больше.
Модель будет выходить из роли или читать нотации пользователям?
Отказы удалены из весов, и ничего нашего в ваш промпт не добавляется, поэтому пользователи встречают ту персону, которую вы написали. Вызов, который пересекает жёсткое ограничение, получает ошибку, которую ваше приложение может обработать, а не нотацию внутри ответа.
Вы обучаете модели на чатах наших пользователей?
Нет. Мы никогда не храним сообщения и ответы, поэтому обучать не на чем. На каждый вызов мы ведём одну строку счётчиков, 30 дней.
Как держать расходы предсказуемыми?
Кредиты оплачиваются заранее, а автопополнение может пополнять их, поэтому приложение никогда не останавливается. На каждый ключ можно поставить дневной лимит, и каждый ответ сообщает, сколько стоил.