Этот проект представляет собой Telegram бота, который использует GigaChat для генерации постов и ответов на сообщения пользователей.
- Клонируйте репозиторий:
git clone <repository-url>
cd JK_agent- Установите зависимости:
pip install -r requirements.txt- Создайте файл
.envна основе.env.example:
cp .env.example .env- Заполните переменные окружения в файле
.env:
# GigaChat API credentials
GIGACHAT_CLIENT_ID=your_gigachat_client_id_here
GIGACHAT_CLIENT_SECRET=your_gigachat_client_secret_here
GIGACHAT_SCOPE=GIGACHAT_API_PERS
GIGACHAT_API_BASE=https://ngw.devices.sberbank.ru:9443/api/v2/oauth
GIGACHAT_MODEL_NAME=GigaChat-2
# Tavily Search API
TAVILY_API_KEY=your_tavily_api_key_here
# Telegram Bot settings
TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here
TELEGRAM_CHANNEL_ID=@your_channel_username_here
TELEGRAM_CHAT_INVITE_LINK=https://t.me/JekardosCoinForever
# Post settings
MAX_POST_LENGTH=450python telegram_bot.pypython bot.pypython gigachat_llm.pypython test_bot.pyagent_core.py- Основная логика агента с использованием LangGraphauth_gigachat.py- Аутентификация и получение токенов GigaChatbot.py- Простой Telegram ботtelegram_bot.py- Полнофункциональный Telegram бот с Firebasegigachat_llm.py- Класс для работы с GigaChat LLMrequirements.txt- Зависимости проекта
- Генерация постов: Бот может генерировать посты для Telegram канала
- Поиск в интернете: Использует Tavily Search для получения актуальной информации
- Кэширование токенов: Автоматическое кэширование токенов GigaChat
- Firebase интеграция: Сохранение данных пользователей и постов
- Обработка ошибок: Комплексная обработка ошибок и логирование
/start- Начало работы с ботом/help- Справка по использованию/generate [тема]- Генерация поста на заданную тему/stats- Личная статистика пользователя/rating- Рейтинг активных участников сообщества/ask [вопрос]- Задать вопрос боту/analyze [текст]- Анализ сообщения на токсичность и спам
- Импорты: Исправлены все импорты для работы с актуальными версиями библиотек
- Обработка ответов: Улучшена обработка ответов от LangGraph агента
- Аутентификация: Добавлена проверка обязательных переменных окружения
- Обработка ошибок: Улучшена обработка исключений и логирование
- Структура кода: Оптимизирована структура и читаемость кода
- Рекурсия агента: Исправлена ошибка зацикливания агента (Recursion limit reached)
- Добавлен контроль рекурсии (recursion_limit=15)
- Упрощен системный промпт для предотвращения зацикливания
- Добавлен fallback метод прямой генерации постов
- Добавлен счетчик шагов для предотвращения бесконечного цикла
- Форматирование постов: Исправлено форматирование для Telegram
- Подпись "Нейро Jekardos" перемещена в конец поста
- Убраны ссылки на сообщество
- Улучшено Markdown форматирование (жирный, курсив)
- Оптимизирована структура поста
- Новое форматирование постов: Обновлено согласно требованиям
- Убраны двойные звездочки ** из текста
- Увеличена длина поста до 750 символов
- Добавлен призыв к действию: "Вступай в чат @https://t.me/JekardosCoinForever"
- Обновлены хештеги: #путешествия #выживание #кочевники #jekardos #jk
- Подпись "Нейро Jekardos" курсивом в конце поста
- Исправления форматирования: Устранены ошибки
- Исправлена ссылка: убран символ @ перед https://t.me/JekardosCoinForever
- Восстановлено правильное Markdown форматирование: жирный текст работает корректно
- Исправлены хештеги: теперь отображаются полностью
- Оптимизирована структура поста для Telegram
- Исправление предупреждений: Устранено предупреждение ConversationHandler
- Добавлены параметры per_message=True, per_chat=True, per_user=True
- Устранено предупреждение PTBUserWarning о настройках per_*
- Улучшена производительность обработки сообщений
- Исправление команды /generate: Устранены проблемы с обработкой команды
- Убрано per_message=True из ConversationHandler для совместимости
- Добавлен отдельный обработчик для команды /generate
- Добавлено подробное логирование для отладки
- Улучшена обработка аргументов команды
- Исправление форматирования постов: Устранены проблемы с Markdown
- Исправлена ссылка: теперь везде используется https://t.me/JekardosCoinForever
- Исправлена подпись: теперь везде используется "Нейро Jekardos" (курсив)
- Улучшены промпты для правильного использования жирного текста
- Добавлены инструкции для агента не оставлять символы ** в тексте
- Устранены несоответствия между функциями generate_telegram_post и generate_post_directly
- Оптимизация проекта: Упрощена архитектура и удалены ненужные файлы
- Убран ConversationHandler для устранения предупреждений
- Упрощена обработка команд с использованием простых обработчиков
- Удалены все тестовые файлы для чистоты проекта
- Добавлена фильтрация нежелательного контента в промптах
- Улучшена обработка ошибок GigaChat blacklist
- Расширение функционала: Добавлены новые возможности в соответствии с планом разработки
- Добавлены команды /stats, /rating, /ask, /analyze
- Реализован анализ сообщений на токсичность и спам
- Добавлена система ответов на вопросы пользователей
- Интегрированы инструменты для статистики и рейтингов
- Улучшена обработка обычных сообщений с интеллектуальным анализом