Skip to content

nikborovets/ai_chat_tools_tg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Telegram AI Bot с Google Gemini

Мощный Telegram бот с искусственным интеллектом на базе Google Gemini, оснащенный множеством полезных инструментов.

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

🔧 Инструменты

  • 🌤️ Погода - получение текущей погоды для любого города
  • 🧮 Калькулятор - выполнение математических вычислений
  • 📚 Википедия - поиск информации в Википедии
  • 🕐 Время - текущее время и дата
  • 📁 Файлы - просмотр файлов в директории
  • 🌐 Переводчик - перевод текста на разные языки
  • 📱 QR-коды - генерация QR-кодов
  • 💻 Система - информация о системе
  • 🔗 Base64 - кодирование/декодирование
  • 💰 Криптовалюты - цены криптовалют

📎 Поддержка файлов

  • 📄 Документы: PDF, TXT, MD, DOC, DOCX
  • 📊 Таблицы: CSV, XLSX, XLS
  • 🖼️ Изображения: PNG, JPG, JPEG, GIF, BMP
  • 🎵 Аудио: MP3, WAV, OGG, M4A
  • ⚙️ Код: PY, JSON, YAML, YML

🎤 Голосовые сообщения

  • Автоматическое распознавание речи
  • Обработка голосовых вопросов как текстовых запросов

📋 Требования

  • Python 3.13+
  • Google API Key (для Gemini)
  • Telegram Bot Token

🛠️ Установка

1. Клонирование репозитория

git clone <repository-url>
cd ai_chat_tools_claude

2. Установка зависимостей

# Основные зависимости
uv sync

# С дополнительными возможностями
uv sync --extra dev --extra advanced --extra vision --extra speech

3. Настройка переменных окружения

Создайте .env файл на основе .envexample:

cp .envexample .env

Заполните необходимые переменные:

TELEGRAM_BOT_TOKEN=your_telegram_bot_token
GOOGLE_API_KEY=your_google_api_key
MODEL_NAME=gemini-2.0-flash
TEMPERATURE=0.7
ACCESS_CONTROL_ENABLED=true
ALLOWED_USER_IDS=your_telegram_user_id

4. Получение API ключей

Telegram Bot Token:

  1. Найдите @BotFather в Telegram
  2. Создайте нового бота командой /newbot
  3. Скопируйте полученный токен

Google API Key:

  1. Перейдите в Google Cloud Console
  2. Создайте новый проект или выберите существующий
  3. Включите Generative AI API
  4. Создайте API ключ в разделе "Credentials"

Настройка доступа:

  1. Запустите бота и напишите /my_id чтобы узнать свой Telegram ID
  2. Добавьте ваш ID в переменную ALLOWED_USER_IDS в .env
  3. Перезапустите бота

🚀 Запуск

uv run -m src.telegram_bot

🧹 Разработка и линтеры

Установка dev-зависимостей

# Установка с dev-зависимостями (включает линтеры и инструменты разработки)
uv sync
# uv sync --extra dev

Линтеры и форматеры

Проект использует следующие инструменты для обеспечения качества кода:

  • Black - автоматическое форматирование кода
  • Ruff - быстрый линтер и форматер (замена flake8, isort)
  • MyPy - проверка типов
  • Pytest - тестирование с покрытием

Команды для разработки

# Форматирование кода с помощью Black
uv run black src/

# Проверка и автофикс с помощью Ruff
uv run ruff check src/ --fix
uv run ruff format src/

# Проверка типов с помощью MyPy
uv run mypy src/

# Запуск всех проверок разом
uv run black src/ && uv run ruff check src/ --fix && uv run ruff format src/ && uv run mypy src/

# Запуск тестов
uv run pytest

# Запуск тестов с покрытием
uv run pytest --cov=. --cov-report=term-missing

Настройки линтеров

Все настройки линтеров находятся в pyproject.toml:

  • Black: длина строки 100 символов, Python 3.13+
  • Ruff: проверки E, F, I, S, W с игнорированием S311, E501
  • MyPy: строгая проверка типов для всех функций

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

Команды

  • /start - запуск бота
  • /help - справка по командам
  • /tools - список всех инструментов
  • /clear - очистить историю чата
  • /stats - статистика чата

Примеры запросов

Какая погода в Москве?
Вычисли 15 * 23 + 45
Переведи "Hello world" на французский
Найди информацию о Python в Википедии
Создай QR-код для моего сайта
Какая цена биткоина?

🏗️ Архитектура

src/
├── telegram_bot.py    # Основной файл бота и обработчики
├── ai_chat.py        # Логика работы с AI (Gemini + LangChain)
├── file_handler.py   # Обработка файлов и документов
├── tools.py          # Инструменты и утилиты
└── config.py         # Конфигурация приложения

Создано с ❤️ для упрощения повседневных задач через Telegram

About

Google Gemini + LangChain function-calling (tools agent) Telegram bot: analyze documents/code/images/audio, handle voice, and run utility tools (weather, wiki, crypto, translate, QR).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages