Я написал Telegram-бота для Gemini с фокусом на приватность. Теперь он в open-source.

Я написал Telegram-бота для Gemini с фокусом на приватность. Теперь он в open-source.

Проблема: Где мои данные?

Всем привет!

На рынке существует несколько моделей работы AI-ботов. Самые распространенные используют собственный API-ключ разработчика и вводят лимиты или платную подписку. Мой проект относится к другой, более нишевой категории — ботам, работающим по модели BYOK (Bring Your Own Key). По сути, MyGemini — это просто удобный и безопасный интерфейс, который использует ваш личный API-ключ для доступа к Gemini, давая вам полный контроль над расходами и лимитами.

Я активно использую Google Gemini, но меня всегда беспокоил один вопрос при работе со сторонними Telegram-ботами: "Что происходит с моим API-ключом и историей переписки?" Передавать ключ, привязанный к моему аккаунту, в неизвестный закрытый сервис — большой риск.

Я хотел решение, где я сам контролирую свои данные. Поскольку готового варианта, который бы меня полностью устроил, я не нашел, я написал его сам.

Сегодня я рад поделиться проектом MyGemini. Это Telegram-бот, который предлагает два пути использования — для тех, кто ценит максимальную приватность, и для тех, кому важнее удобство.

Два пути — выберите свой:

Путь 1: Максимальная приватность (Разверните свою копию)

Для тех, кто, как и я, не хочет доверять свои данные никому. Весь проект опубликован на GitHub под свободной лицензией MIT.

>> Посмотреть код на GitHub: https://github.com/kobaltgit/MyGemini

Вы можете запустить точную копию этого бота на своем собственном сервере или даже домашнем компьютере. В этом случае:

  • Ваш API-ключ никогда не покидает вашей системы.
  • Вся история переписки хранится в вашей локальной базе данных.
  • Вы получаете полный контроль над кодом и данными.

Это идеальный вариант для разработчиков и всех, кто серьезно относится к приватности.

Путь 2: Удобство и быстрый старт (Используйте моего бота)

Если вы доверяете open-source проектам и хотите просто начать пользоваться ботом прямо сейчас, я разместил на своем сервере публичную версию.

>> Попробовать MyGemini прямо сейчас: https://t.me/mgem_bot

В этой версии вам потребуется предоставить свой Google AI API ключ, но с важным отличием: вы делаете это, зная, что бот работает на полностью открытом исходном коде. Вы в любой момент можете зайти на GitHub и убедиться, что код делает именно то, что заявлено: надежно шифрует ваш ключ и использует его только для отправки запросов в Google.

Ключевые возможности бота:

  • Раздельные диалоги: Создавайте независимые чаты для разных тем (работа, хобби, учеба), и их контексты никогда не смешаются.
  • Настраиваемые "Персоны": Превратите бота в "Эксперта по Python", "Историка" или "Копирайтера" одним кликом.
  • Понимает изображения и голос: Отправьте картинку или запишите голосовое сообщение — бот поймет и ответит.
  • Поиск в интернете: Может использовать Google Поиск для ответов на актуальные вопросы.

Заглянем под капот

Проект написан на Python 3.10+ с фокусом на современную асинхронную архитектуру.

  • Асинхронное ядро: Всё построено на asyncio. Я использовал асинхронную версию pyTelegramBotAPI и aiohttp для неблокирующих запросов к Gemini REST API.
  • Чистая конфигурация: Секреты хранятся в .env, а логирование подробно настраивается через logging.yaml, что позволяет разделять логи на несколько файлов (общие, БД, API и т.д.).
  • Неблокирующая БД: Используется простой sqlite3, но все операции с базой данных выполняются в отдельном потоке через asyncio.to_thread, чтобы не тормозить основной цикл событий.
  • Обработка сообщений: Длинные ответы от модели, особенно с кодом, грамотно делятся на части с помощью MarkdownTextSplitter из библиотеки LangChain, а telegramify-markdown гарантирует корректное экранирование для MarkdownV2 формата Telegram.

Этот проект стал для меня отличным опытом погружения в asyncio, и теперь это мой основной инструмент для работы с Gemini.

Независимо от того, просто ли вы ищете мощного ИИ-ассистента в Telegram или вы разработчик, который ищет интересный проект для изучения и доработки, — буду рад, если вы его оцените.

Буду благодарен за отзывы, а звезда на GitHub сделает мой день! Спасибо, что дочитали.

1 комментарий