Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GigaChat Telegram бот

Зависимости

pip install -r requirements.txt

В requirements.txt:

  • pyTelegramBotAPI
  • requests
  • aiohttp
  • python-dotenv

Настройка .env

Создай файл .env рядом с bot.py:

BOT_TOKEN=1234567890:YOUR_TELEGRAM_BOT_TOKEN
GIGACHAT_AUTH=BASE64_GIGACHAT_AUTH_STRING
GIGACHAT_SCOPE=GIGACHAT_API_PERS
GIGACHAT_MODEL=GigaChat-2-Max
ALLOWED_CHAT_IDS=123456789
  • GIGACHAT_SCOPE — тип доступа: GIGACHAT_API_PERS (физлицо) или GIGACHAT_API_CORP (юрлицо)
  • GIGACHAT_MODEL — модель GigaChat (по умолчанию GigaChat-2-Max)
  • ALLOWED_CHAT_IDS — числовые chat_id через запятую; если пусто — бот отвечает всем. Свой ID можно узнать у @userinfobot

Команды

Команда Описание
/start Запуск бота, сброс истории
/reset Сбросить историю диалога
/mode Показать текущий режим
/mode_short Короткие ответы
/mode_long Длинные, подробные ответы
/mode_creative Креативные ответы
/mode_teacher Учитель английского

Память и режимы

  • Память по чатам хранится в оперативке в словарях chat_histories и chat_modes.
  • В запрос уходит только хвост истории (последние ~20 сообщений).
  • После перезапуска память обнуляется (диалоги остаются в лог-файле).

Режим влияет на temperature, max_tokens и системный промпт.

Стриминг

Ответы от GigaChat приходят потоком — бот отправляет сообщение ... и обновляет его по мере поступления токенов, как в ChatGPT.

Логирование диалогов

Логи пишутся в chat_logs.jsonl рядом с bot.py. Формат — одна JSON-строка на событие:

{"ts": "...", "chat_id": 123, "role": "user", "event": "message", "mode": "short", "text": "привет"}
{"ts": "...", "chat_id": 123, "role": "assistant", "event": "message", "mode": "short", "text": "Ответ бота"}

Логируются: /start, /reset, смена режима, каждое сообщение пользователя и ответ ассистента.

Запуск бота

python bot.py

Бот запускается в режиме polling и обслуживает несколько чатов одновременно.

About

Telegram chatbot powered by GigaChat (Sber LLM): async API client, token refresh, chat allowlist

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages