Мощный 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
git clone <repository-url>
cd ai_chat_tools_claude# Основные зависимости
uv sync
# С дополнительными возможностями
uv sync --extra dev --extra advanced --extra vision --extra speechСоздайте .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- Найдите @BotFather в Telegram
- Создайте нового бота командой
/newbot - Скопируйте полученный токен
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- Включите Generative AI API
- Создайте API ключ в разделе "Credentials"
- Запустите бота и напишите
/my_idчтобы узнать свой Telegram ID - Добавьте ваш ID в переменную
ALLOWED_USER_IDSв.env - Перезапустите бота
uv run -m src.telegram_bot# Установка с 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