Русский | English
Telegram-бот для AI-идей, черновиков, изображений и отложенных публикаций в каналы.
Open-source note. ТелеЦех рассчитан на личный или self-hosted запуск. Не коммитьте реальные токены, API-ключи, базы данных, логи и Telegram session-файлы.
ТелеЦех помогает автоматизировать создание контента для Telegram-каналов: искать идеи по донорским каналам, писать посты с помощью AI, учитывать tone of voice, генерировать изображения, собирать материалы, вести контент-план и публиковать посты по расписанию.
Проект может быть полезен, если вы ищете: open-source Telegram bot для контент-маркетинга, AI content generator для Telegram, бот для автопостинга, генератор идей из донорских каналов, планировщик публикаций, Telegram channel manager, self-hosted AI writing assistant, OpenAI bot на aiogram, инструмент для контент-плана и автоматизации SMM.
- 📢 Мультиканальность: управление несколькими Telegram-каналами из одного бота.
- 🧲 Мониторинг доноров: парсинг публичных Telegram-каналов через
t.me/s/. - 💡 AI-идеи: анализ донорских постов и генерация идей для ваших каналов.
- ✍️ Черновики: написание и переписывание постов с учетом tone of voice.
- 🎙️ Tone of voice: генерация стиля из последних постов или ручная настройка.
- 🎨 AI-изображения: генерация медиа через OpenAI или Kie.ai.
- 📁 Пространства: сбор DOCX, XLSX, PDF, ссылок, изображений и аудио как материалов для идей.
▶️ YouTube-идеи: получение публичных субтитров черезyoutube-transcript-api.- 🗓️ Контент-план: планирование публикаций и автоматический постинг.
| Зона | Технологии |
|---|---|
| Bot framework | aiogram 3.x |
| База данных | SQLAlchemy 2.x, SQLite по умолчанию, PostgreSQL опционально |
| Text AI | OpenAI-compatible Chat Completions API |
| Изображения | OpenAI Images API или Kie.ai |
| Документы | python-docx, openpyxl, PyPDF2 |
| Парсинг | aiohttp, BeautifulSoup, t.me/s/ |
git clone https://github.com/mf-volk/content-zavod.git
cd content-zavod
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .envЗаполните минимум две переменные:
TELEGRAM_BOT_TOKEN=your_bot_token_here
OPENAI_API_KEY=sk-...Запустите бота:
python -m app.mainТелеЦех читает настройки из .env через pydantic-settings.
| Переменная | Обязательна | Описание |
|---|---|---|
TELEGRAM_BOT_TOKEN |
да | Токен бота от BotFather |
OPENAI_API_KEY |
да | Текст, голос, vision и OpenAI images |
DATABASE_URL |
нет | По умолчанию sqlite+aiosqlite:///./content_zavod.db |
AI_PROVIDER |
нет | openai или kie; провайдер генерации изображений |
KIE_API_KEY |
только для Kie.ai | Нужен при AI_PROVIDER=kie |
LLM_MODEL |
нет | По умолчанию gpt-4o |
DEFAULT_TIMEZONE |
нет | По умолчанию Europe/Moscow |
SCHEDULER_INTERVAL |
нет | Интервал проверки расписания в секундах |
Полный список переменных: .env.example.
AI_PROVIDER |
Текст | Изображения | Голос / Vision |
|---|---|---|---|
openai |
OpenAI-compatible API | OpenAI image model | OpenAI |
kie |
OpenAI-compatible API | Kie.ai image model | OpenAI |
Текст всегда идет через OpenAI-compatible клиент. Голосовые сообщения и распознавание изображений тоже используют OpenAI-модели, поэтому OPENAI_API_KEY нужен в обоих режимах.
- Отправьте боту
/start. - Добавьте канал. Бот должен быть администратором с правом публикации.
- Настройте tone of voice вручную или сгенерируйте его из последних постов.
- Добавьте донорские каналы и сгенерируйте идеи.
- Превратите идеи в черновики, добавьте медиа и запланируйте публикации.
content-zavod/
|-- app/
| |-- db/ # SQLAlchemy models and async sessions
| |-- handlers/ # aiogram routers and FSM flows
| |-- services/ # publishing, document processing, Telegraph upload
| |-- config.py # pydantic-settings configuration
| |-- donor_parser.py # public Telegram channel parser
| |-- image_generation.py # OpenAI / Kie.ai image generation
| |-- llm_client.py # OpenAI-compatible LLM client
| |-- main.py # bot entry point
| `-- scheduler.py # background publishing and parsing tasks
|-- scripts/ # manual database migration helpers
|-- tests/
|-- .env.example
|-- requirements.txt
`-- README.md
Таблицы создаются автоматически при первом запуске через Base.metadata.create_all. По умолчанию используется SQLite. Для production можно использовать PostgreSQL:
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/content_zavodДля существующих установок применяйте изменения схемы вручную через скрипты в scripts/.
pip install -r requirements.txt
pip install pytest
pytest tests/ -vСоглашения:
- пользовательский интерфейс, промпты и сообщения бота написаны на русском;
- имена переменных, кодовые комментарии и callback data пишутся на английском;
- секреты хранятся только в
.env, никогда в git.
См. CONTRIBUTING.md.
Перед публикацией форка или публичным деплоем прочитайте SECURITY.md. Бот может хранить черновики, метаданные каналов, донорские посты, пользовательские материалы и опциональные API-ключи пользователей в настроенной базе данных.
