DeepSeek напрямую как провайдер по умолчанию, проверка ключа модели при старте

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
yunogasai
2026-09-24 19:02:41 +02:00
parent 26da4bb5ee
commit 34a8d426d2
4 changed files with 45 additions and 11 deletions

View File

@@ -1,6 +1,6 @@
# Boltun AI
Telegram-бот для групповых чатов с AI-личностями. Стек: Node.js, TypeScript, [grammY](https://grammy.dev), [Mastra](https://mastra.ai) (модели через OpenRouter / DeepSeek), SQLite.
Telegram-бот для групповых чатов с AI-личностями. Стек: Node.js, TypeScript, [grammY](https://grammy.dev), [Mastra](https://mastra.ai) (DeepSeek напрямую или через OpenRouter), SQLite.
## Возможности
@@ -27,7 +27,7 @@ Telegram-бот для групповых чатов с AI-личностями.
```bash
nvm use # Node 24
pnpm install
cp .env.example .env # заполнить BOT_TOKEN, ADMIN_IDS, OPENROUTER_API_KEY
cp .env.example .env # заполнить BOT_TOKEN, ADMIN_IDS и DEEPSEEK_API_KEY (или OPENROUTER_API_KEY)
pnpm dev
```
@@ -39,8 +39,11 @@ pnpm dev
| --- | --- | --- |
| `BOT_TOKEN` | да | токен от @BotFather |
| `ADMIN_IDS` | да | Telegram ID админов через запятую |
| `OPENROUTER_API_KEY` | да* | ключ OpenRouter (*или ключ того провайдера, что в `AI_MODEL`) |
| `AI_MODEL` | нет | модель Mastra model router, по умолчанию `openrouter/deepseek/deepseek-v4-flash`; напрямую через DeepSeek — `deepseek/deepseek-chat` + `DEEPSEEK_API_KEY` |
| `DEEPSEEK_API_KEY` | да* | ключ DeepSeek — модель идёт напрямую в api.deepseek.com |
| `OPENROUTER_API_KEY` | да* | ключ OpenRouter — альтернатива DeepSeek напрямую |
| `AI_MODEL` | нет | модель Mastra model router `<провайдер>/<модель>`. По умолчанию `deepseek/deepseek-flash`, если задан `DEEPSEEK_API_KEY`, иначе `openrouter/deepseek/deepseek-v4-flash`. Пример посильнее: `deepseek/deepseek-v4-pro` |
\* нужен ключ того провайдера, чья модель выбрана; бот проверяет это при старте.
| `DB_PATH` | нет | путь к SQLite, по умолчанию `data/bot.db` (в Docker — `/app/data/bot.db`) |
| `HISTORY_LIMIT` | нет | сколько сообщений на чат хранить, по умолчанию 2000 |