- Новый инструмент gigachat_tool для работы с GigaChat API
- GigaChatProvider в qwen_integration как альтернатива Qwen Code
- Настройки GigaChat и YandexGPT в .env.example
- Документация по настройке в README.md
- GigaChatCapability зарегистрирован в реестре инструментов
- Поддержка системных промптов, температуры, лимита токенов
- Автоматическое получение и кэширование OAuth токена
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- basename NODE_PATH возвращал 'bin' вместо 'v24.13.1'
- Теперь basename берётся от NVM_BASE что даёт правильную версию
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- find ищет node без проверок на исполняемость
- qwen ищется через проверку [ -e ] (существует ли файл)
- Без проверок на тип файла (симлинк/обычный) и исполняемость
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- qwen — это симлинк на ../lib/node_modules/@qwen-code/qwen-code/cli.js
- find -L следует за симлинками и находит qwen
- Проверка файла включает проверку на симлинк [ ! -L ]
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- find /home/ вместо find /home
- Избегает поиска в чужих домашних директориях
- Более точное определение путей
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Сначала находим node через find
- Извлекаем версию nvm из пути (например v24.13.1)
- Ищем qwen в той же версии nvm: $NVM_BASE/$NVM_VERSION/bin/qwen
- Более надёжное определение путей
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- find не зависит от PATH и .bashrc
- Ищет исполняемые файлы qwen и node напрямую
- Более надёжное определение путей nvm
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- bash --login загружает .bashrc где инициализируется nvm
- Исправляет определение пути к qwen и node
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- При запуске через sudo $USER становится 'root'
- $SUDO_USER содержит имя пользователя который вызвал sudo
- Исправляет определение пользователя и путей nvm
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- su - требует пароль, sudo -u работает без пароля
- Исправляет проблему с определением пути к qwen и node
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Исправлена команда установки qwen: @qwen-code/qwen-code (не @anthropic)
- Динамическое определение Node.js пути через 'which node' (не хардкод версии)
- При обновлении nvm путь автоматически подстроится
- Добавлен вывод отладочной информации при установке
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавить полный PATH с nvm путем первым
- Добавить NODE_PATH для глобальных npm пакетов
- Исправляет ошибку 'qwen: command not found'
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Убрать ProtectSystem, ProtectHome, ReadWritePaths
- Для личного бота ограничения не нужны, только создают проблемы
- Бот работает от имени пользователя и должен иметь полный доступ
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавить %HOME%/.cache в ReadWritePaths
- Исправляет ошибку загрузки sentence-transformers модели
- Модель уже загружена в кэше, теперь сервис сможет её использовать
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавить пути nvm и node в PATH
- Добавить ReadWritePaths для ~/.nvm и ~/.config/nvm
- Обновить install-systemd-service.sh для авто-определения путей
- Исправляет ошибку 'qwen: command not found'
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавить ReadWritePaths=%WORKDIR% для разрешения записи в БД
- Исправляет ошибку 'attempt to write a readonly database' от ChromaDB
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Изменения:
1. Чат с ИИ агентом теперь включен по умолчанию (ai_chat_mode=True)
- При первом запуске бота чат с ИИ активен
- Кнопка в меню показывает '✅ Выключить чат с ИИ'
- Пользователь может выключить через настройки
2. Systemd сервис для автозапуска бота
- telegram-bot.service - шаблон сервиса
- install-systemd-service.sh - скрипт установки
- Поддержка start/stop/restart/status
- Логирование через journalctl
- Security hardening (NoNewPrivileges, ProtectSystem)
3. Обновлена документация в README
- Добавлен раздел про systemd сервис
- Версия обновлена до 0.7.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавить инициализацию компактора в post_init()
- Убрать дублирующую инициализацию из handle_ai_task()
- Исправляет ошибку при вызове компактификации через меню памяти
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавлена кнопка '🔄 Компактификация' в меню memory_menu
- Реализован callback handler для memory_compact
- Компактификация запускается из меню с отображением прогресса
- Исправление: команда /compact теперь доступна через меню
Version: 0.5.3
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Улучшения cron-системы:
- Интеграция библиотеки croniter для полноценного cron-синтаксиса
- Поддержка всех cron-выражений: */5 * * * *, 0 5 * * *, @daily и т.д.
- Автоматический пересчёт next_run после выполнения задачи
- Защита от duplicate execution (проверка last_run)
- Миграции для всех колонок БД (prompt, user_id, notify, log_results и др.)
Исправленные проблемы:
- Задачи выполнялись только один раз (не обновлялся next_run)
- Примитивный парсер расписания (только */N, @hourly, @daily)
- Возможность двойного выполнения при перезапуске бота
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавить проверку и миграции для колонок: prompt, user_id, enabled, notify, log_results, last_run, next_run
- Исправляет ошибку 'no such column: prompt' при запуске со старой БД
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Основные изменения:
- CronJob теперь хранит prompt для ИИ вместо команды
- Добавлены поля: user_id, notify, log_results
- Задачи выполняются через AI-агент (автономный выбор инструмента)
- Планировщик проверяет задачи каждую минуту
- Уведомления отправляются в Telegram (если notify=True)
- Результаты сохраняются в cron_logs/ (если log_results=True)
- Добавлена команда /cron для управления задачами
- Обновлена БД и модель данных
Новые файлы:
- bot/services/cron_scheduler.py - планировщик задач
- CRON_SYSTEM.md - документация
Изменённые файлы:
- bot/tools/cron_tool.py - обновлён для работы с промптами
- bot/handlers/commands.py - добавлена cron_command
- bot.py - интеграция планировщика, регистрация команды
- .gitignore - исключение cron_logs/
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- bot/compaction.py: новый модуль для сжатия истории диалога
- Автоматическая компактификация при 70% заполнении контекста
- Сохранение summary в ChromaDB с структурированным форматом
- Интеграция с handle_ai_task для прозрачной работы
- Сохраняет последние 20 сообщений без изменений
- Структурированный промпт: факты, URL, серверы, настройки, решения
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Добавлена версия 0.6.0
- Секция 'Быстрый старт' с install.sh
- Подробная инструкция по установке
- Инструкция по обновлению
- Обновлённая структура проекта с bot/
- Модульная архитектура
- Актуализированные требования (Python 3.10+, Node.js 18+)
Version: 0.6.1
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- install.sh — автоматическая установка всех зависимостей
- Проверка Python, pip, Node.js, npm
- Установка qwen-code через npm (глобально)
- Создание venv и установка pip зависимостей
- Определение: новая установка или обновление
- Сохранение версии в .installed
- run.sh — только запуск бота (без установки)
- Проверка наличия venv
- Проверка .env и токена
- Запуск bot.py
- install.sh делает:
1. Проверяет системные требования
2. Устанавливает Node.js (если нет)
3. Устанавливает qwen-code (npm install -g)
4. Создаёт venv и ставит pip зависимости
5. Создаёт .env из .env.example
6. Сохраняет версию
Version: 0.6.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- _Контекст_ не работал из-за экранирования подчёркивания
- *Контекст* — работает корректно
Version: 0.5.6
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- has_markdown переименован в has_code (более точно)
- Теперь Markdown применяется ко всем сообщениям если передан parse_mode
- Блоки кода без разрывов тоже работают с Markdown
Version: 0.5.5
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- NameError: config not defined в @check_access
- Добавлен импорт from bot.config import config
Version: 0.5.3
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- find_code_blocks — поиск блоков кода
- split_message — возвращает (text, has_markdown) для каждого сообщения
- send_long_message — отправляет блоки кода с Markdown, остальное без разметки
- Блоки кода не разрываются между сообщениями
- Слинные блоки кода отправляются частями без Markdown
- Нумерация добавляется автоматически
Version: 0.5.2
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Рефакторинг кода бота для улучшения поддерживаемости:
Структура:
- bot/models/ — модели данных (Server, UserState, сессии)
- bot/utils/ — утилиты (очистка текста, форматирование, декораторы)
- bot/keyboards/ — Inline-клавиатуры и меню
- bot/services/ — бизнес-логика (выполнение команд)
- bot/handlers/ — обработчики событий (пустые для будущего заполнения)
- bot/config.py — конфигурация и глобальные объекты
Изменения:
- bot.py сокращён с 3240 до 2364 строк (-900 строк дубликатов)
- Все модели перенесены в отдельные модули
- Утилиты разделены по назначению (cleaners, formatters, decorators)
- Меню вынесено в keyboards/menus.py
- Импорты из новой структуры через bot.config и bot.models
Преимущества:
- Лучшая организация кода
- Упрощённое тестирование модулей
- Легче добавлять новый функционал
- Чёткое разделение ответственности
Version: 0.5.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Новые возможности:
- Автоматическое извлечение фактов каждые 5 сообщений диалога
- ИИ анализирует диалог и извлекает факты по категориям (личное, технологии, проекты, предпочтения)
- Команда /facts — показать все сохранённые факты
- Команда /forget <номер> — удалить факт
- Счётчик сообщений для триггера извлечения (messages_since_fact_extract)
Архитектура:
- Эвристики (мгновенно): простые паттерны типа 'меня зовут...', 'я использую...'
- ИИ (каждые 5 сообщений): анализ последних 10 сообщений, JSON-ответ с фактами
- ChromaDB: все сообщения для семантического поиска
- SQLite (facts): извлечённые факты с категориями и уверенностью
Промпт для ИИ:
- Категории: PERSONAL, TECHNICAL, PROJECT, PREFERENCE, OTHER
- Формат: JSON с type, content, confidence
- Только явные факты из диалога
Version: 0.4.0
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>