Skip to content

2715756-lab/vibe-content-agent

Repository files navigation

Vibe Content Agent

Python-агент для ежедневного поиска AI/dev-новостей, отбора тем, генерации черновиков в твоём стиле и публикации в Telegram/VK. Для VC и Дзен на первом этапе агент готовит адаптированные версии и оставляет их в интерфейсе для ручной публикации или дальнейшей браузерной автоматизации.

Подробная инструкция и описание проекта: docs/project_manual.md. Операторская логика по элементам интерфейса, зависимостям и ограничениям: docs/operator_help.md, в админке доступна как /admin/help. План переноса с VPS на домашний сервер или новый VPS: docs/migration_local_server.md.

В проект также встроен публичный сайт-лаборатория: главная http://localhost:8088/, статьи http://localhost:8088/blog, проекты http://localhost:8088/projects. Для проектов можно включать модель ограниченного демо-доступа: 3-5 бесплатных запусков на посетителя. Публичный Telegram-канал: https://t.me/AI_naMillion.

Быстрый старт

cp .env.example .env
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
PYTHONPATH=src uvicorn vibe_agent.api:app --reload --port 8088

Открой http://localhost:8088/admin/topics, нажми Запустить поиск, выбери тему и сгенерируй черновик.

Главный рабочий сценарий находится в http://localhost:8088/admin/studio. Студия публикации работает как одно окно результата: выбираешь режим и тему, агент обновляет источники, ранжирует идеи, пишет черновик, делает Research Report, версии под площадки, обложку и отдаёт пакет на одобрение.

Если запускаешь CLI локально из этой папки:

PYTHONPATH=src vibe-agent collect

Развёртывание на Proxmox

  1. Создай LXC/VM с Debian 12 или Ubuntu 24.04.
  2. Установи Docker и Docker Compose.
  3. Скопируй проект на сервер.
  4. Заполни .env.
  5. Запусти:
docker compose up -d --build

После запуска интерфейс будет доступен на http://IP_СЕРВЕРА:8088.

Как работает пайплайн

  1. collector забирает RSS-источники из config/sources.yml.
  2. ranker считает полезность по свежести, ключевым словам и весу источника.
  3. llm генерирует черновик под площадку и стиль из config/style_profile.md.
  4. publisher публикует в Telegram/VK или сохраняет версию для VC/Дзен.
  5. scheduler запускает сбор каждый день по времени из .env.

Студия публикации

/admin/studio собирает готовый публикационный пакет в фоне, без долгого HTTP-запроса:

  1. выбор режима: AI новости, вирусная тема, GitHub обзор, мой проект, быстрый пост;
  2. обновление источников;
  3. выбор темы и угла подачи;
  4. черновик и рерайт в активном стиле;
  5. Research Report;
  6. версии для Telegram, блога, VK, VC, Дзена;
  7. генерация обложки;
  8. показатель готовности и кнопка открытия черновика.

Внешняя публикация требует явного одобрения через кнопку Опубликовать выбранное на странице черновика.

Настройки

  • Источники: config/sources.yml
  • Стиль автора: config/style_profile.md
  • Ключевые слова: RECOMMENDATION_KEYWORDS
  • Модель: OPENAI_MODEL

Источники

Открой http://localhost:8088/admin/sources, чтобы добавить RSS или Telegram-канал. Для Telegram можно указывать @channel, https://t.me/channel или https://t.me/s/channel. Агент читает только публичную страницу t.me/s/...; закрытые каналы и каналы без публичной истории требуют отдельного авторизованного сценария.

Расписание

Открой http://localhost:8088/admin/schedule, чтобы поменять ежедневное время поиска и посмотреть очередь подготовленных публикаций. На странице черновика можно выбрать дату/время в поле Отложить и нажать Запланировать; фоновая задача проверяет очередь раз в минуту.

Стили и рерайт

Открой http://localhost:8088/admin/styles, чтобы добавить профиль стиля, вставить правила рерайта или прикрепить .txt/.md с примерами твоих текстов. Активный стиль применяется к кнопке Рерайт в моём стиле; на странице черновика можно дополнительно указать конкретную задачу на рерайт.

Настройки площадок

Открой http://localhost:8088/admin/settings, чтобы указать Telegram-каналы, токен бота, управляющий Telegram-чат, VK API token, owner_id, а также сохранить параметры для VC, Дзена и других площадок. Telegram поддерживает несколько каналов: укажи их с новой строки или через запятую.

Для Telegram с картинкой агент отправляет один пост через sendPhoto: картинка и текст идут вместе, текст становится подписью к картинке. Это нужно, чтобы внешние боты, включая импорт в Дзен из Telegram-канала, не разделяли картинку и статью. Заголовок должен быть первой строкой текста. Ограничение Telegram для такой подписи - 1024 символа, поэтому Telegram-черновики генерируются короткими.

Блог и проекты

Открой http://localhost:8088/blog, чтобы увидеть публичные статьи, и http://localhost:8088/projects, чтобы увидеть публичные проекты. Через http://localhost:8088/admin/blog можно добавить статью или проект с demo URL. На странице черновика есть кнопка Опубликовать в блог: черновик можно отправить как статью или как проект с лимитом проб.

Публичные страницы не показывают внутренние разделы агента. Редакторские разделы доступны под /admin/...: темы, источники, стили, расписание, настройки, сервер и журнал публикаций. На VPS они закрыты Basic Auth.

RSS для Дзена и других импортёров статей:

https://agent.gazon59.ru/rss.xml

В RSS попадают только опубликованные статьи из /blog; проекты-демо из /projects не отправляются в Дзен.

Модель проектов: посетитель получает cookie visitor_id, для каждого проекта считается количество запусков. По умолчанию доступно 5 проб, но можно поставить 3, 4, 5 или другой лимит до 20. После лимита показывается экран заявки/расширенного доступа.

AI-операторы

На странице http://localhost:8088/admin/settings можно отдельно выбрать оператора для текста и для картинок.

  • Текст и рерайт: OpenRouter, OpenAI или любой OpenAI-compatible endpoint. Для OpenRouter базовый URL: https://openrouter.ai/api/v1, модель по умолчанию: openrouter/auto.
  • Картинки: локальная fallback-обложка без API, качественный режим OpenRouter Images с текущим дефолтом recraft/recraft-v3, бесплатный быстрый Cloudflare Worker Images по схеме saurav-z/free-image-generation-api, OpenAI Images или внешний генератор в заметках. Для красивых обложек статей используется OpenRouter + Recraft V3 + 16:9 + 1K; Cloudflare оставлен как аварийный бесплатный режим.
  • Секретные ключи сохраняются в SQLite и не выводятся обратно в HTML; пустое поле при сохранении не стирает уже записанный ключ.

OSINT-лаборатория

В админке есть раздел http://localhost:8088/admin/osint. Он импортирует публичный каталог awesome-osint, показывает категории инструментов и позволяет делать из инструмента тему/черновик для блога, Telegram или Wiki. Использовать только для легального фактчекинга, проверки источников, поиска публичных сигналов и defensive research.

Cloudflare Worker Images

Для бесплатной генерации картинок подключён отдельный worker:

https://vibe-image-worker.2715756.workers.dev

Код worker-а лежит в cloudflare-image-worker/. Он использует Cloudflare Workers AI и модель @cf/stabilityai/stable-diffusion-xl-base-1.0. Агент отправляет POST {"prompt": "..."} с заголовком Authorization: Bearer <ключ> и получает image/png. В настройках агента выбран провайдер Cloudflare Worker Images.

Подтверждение Дзена

Для подключения домена в Дзене используй:

  • домен сайта: https://agent.gazon59.ru/
  • RSS-лента: https://agent.gazon59.ru/rss.xml
  • verification-файл задаётся переменной DZEN_VERIFICATION_TOKEN и будет доступен по адресу:
https://agent.gazon59.ru/zen_<DZEN_VERIFICATION_TOKEN>.html

Он отдаёт:

<meta name="zen-verification" content="<DZEN_VERIFICATION_TOKEN>" />

Open source

Проект готовится как self-hosted OSS-инструмент для AI-редакции: сбор источников, отбор тем, рерайт, генерация обложек, публикация в блог/RSS/Telegram и журнал публикаций. Перед публикацией своего форка проверь, что .env, data/, backups/, .agents/ и другие приватные файлы не попадают в Git.

Следующие шаги

  • Загрузить твои старые посты и добавить similarity-рейтинг по стилю/темам.
  • Добавить Telegram-бота с кнопками draft, publish, skip.
  • Подключить Playwright-автоматизацию для VC/Дзен, если нужен полный автопостинг.
  • Расширять scraping по стратегии из docs/scraping_strategy.md: сначала RSS/API, затем публичные страницы, затем браузерные сценарии для своих аккаунтов.

About

Self-hosted AI editorial lab for collecting sources, ranking topics, rewriting drafts, generating covers, publishing to blog/RSS/Telegram, and tracking publications.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages