Skip to content

jeka634/JK-Agent

Repository files navigation

JK Agent - Telegram Bot с GigaChat

Этот проект представляет собой Telegram бота, который использует GigaChat для генерации постов и ответов на сообщения пользователей.

Установка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd JK_agent
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env на основе .env.example:
cp .env.example .env
  1. Заполните переменные окружения в файле .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=450

Использование

Запуск основного бота (telegram_bot.py)

python telegram_bot.py

Запуск простого бота (bot.py)

python bot.py

Тестирование GigaChat (gigachat_llm.py)

python gigachat_llm.py

Тестирование бота

python test_bot.py

Структура проекта

  • agent_core.py - Основная логика агента с использованием LangGraph
  • auth_gigachat.py - Аутентификация и получение токенов GigaChat
  • bot.py - Простой Telegram бот
  • telegram_bot.py - Полнофункциональный Telegram бот с Firebase
  • gigachat_llm.py - Класс для работы с GigaChat LLM
  • requirements.txt - Зависимости проекта

Функциональность

  1. Генерация постов: Бот может генерировать посты для Telegram канала
  2. Поиск в интернете: Использует Tavily Search для получения актуальной информации
  3. Кэширование токенов: Автоматическое кэширование токенов GigaChat
  4. Firebase интеграция: Сохранение данных пользователей и постов
  5. Обработка ошибок: Комплексная обработка ошибок и логирование

Команды бота

  • /start - Начало работы с ботом
  • /help - Справка по использованию
  • /generate [тема] - Генерация поста на заданную тему
  • /stats - Личная статистика пользователя
  • /rating - Рейтинг активных участников сообщества
  • /ask [вопрос] - Задать вопрос боту
  • /analyze [текст] - Анализ сообщения на токсичность и спам

Исправленные ошибки

  1. Импорты: Исправлены все импорты для работы с актуальными версиями библиотек
  2. Обработка ответов: Улучшена обработка ответов от LangGraph агента
  3. Аутентификация: Добавлена проверка обязательных переменных окружения
  4. Обработка ошибок: Улучшена обработка исключений и логирование
  5. Структура кода: Оптимизирована структура и читаемость кода
  6. Рекурсия агента: Исправлена ошибка зацикливания агента (Recursion limit reached)
    • Добавлен контроль рекурсии (recursion_limit=15)
    • Упрощен системный промпт для предотвращения зацикливания
    • Добавлен fallback метод прямой генерации постов
    • Добавлен счетчик шагов для предотвращения бесконечного цикла
  7. Форматирование постов: Исправлено форматирование для Telegram
    • Подпись "Нейро Jekardos" перемещена в конец поста
    • Убраны ссылки на сообщество
    • Улучшено Markdown форматирование (жирный, курсив)
    • Оптимизирована структура поста
  8. Новое форматирование постов: Обновлено согласно требованиям
    • Убраны двойные звездочки ** из текста
    • Увеличена длина поста до 750 символов
    • Добавлен призыв к действию: "Вступай в чат @https://t.me/JekardosCoinForever"
    • Обновлены хештеги: #путешествия #выживание #кочевники #jekardos #jk
    • Подпись "Нейро Jekardos" курсивом в конце поста
  9. Исправления форматирования: Устранены ошибки
    • Исправлена ссылка: убран символ @ перед https://t.me/JekardosCoinForever
    • Восстановлено правильное Markdown форматирование: жирный текст работает корректно
    • Исправлены хештеги: теперь отображаются полностью
    • Оптимизирована структура поста для Telegram
  10. Исправление предупреждений: Устранено предупреждение ConversationHandler
    • Добавлены параметры per_message=True, per_chat=True, per_user=True
    • Устранено предупреждение PTBUserWarning о настройках per_*
    • Улучшена производительность обработки сообщений
  11. Исправление команды /generate: Устранены проблемы с обработкой команды
    • Убрано per_message=True из ConversationHandler для совместимости
    • Добавлен отдельный обработчик для команды /generate
    • Добавлено подробное логирование для отладки
    • Улучшена обработка аргументов команды
  12. Исправление форматирования постов: Устранены проблемы с Markdown
    • Исправлена ссылка: теперь везде используется https://t.me/JekardosCoinForever
    • Исправлена подпись: теперь везде используется "Нейро Jekardos" (курсив)
    • Улучшены промпты для правильного использования жирного текста
    • Добавлены инструкции для агента не оставлять символы ** в тексте
    • Устранены несоответствия между функциями generate_telegram_post и generate_post_directly
  13. Оптимизация проекта: Упрощена архитектура и удалены ненужные файлы
    • Убран ConversationHandler для устранения предупреждений
    • Упрощена обработка команд с использованием простых обработчиков
    • Удалены все тестовые файлы для чистоты проекта
    • Добавлена фильтрация нежелательного контента в промптах
    • Улучшена обработка ошибок GigaChat blacklist
  14. Расширение функционала: Добавлены новые возможности в соответствии с планом разработки
    • Добавлены команды /stats, /rating, /ask, /analyze
    • Реализован анализ сообщений на токсичность и спам
    • Добавлена система ответов на вопросы пользователей
    • Интегрированы инструменты для статистики и рейтингов
    • Улучшена обработка обычных сообщений с интеллектуальным анализом

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages