← всі звіти · pharmagen-content-frameworks-research-2026-04-24.md

PharmaGen — Open-Source Static-Content Frameworks Research

Дата: 2026-04-24 Автор: research-агент Клієнт: Deltamedical / PharmaGen (CIS: KZ primary, UZ+RU secondary) Таймбокс: ~40 хв WebSearch/WebFetch Формат: per rules.md — Query → Shortlist → Recommendation → Integration sketch → Gaps


Query

Шукаємо open-source (MIT/Apache/BSD/MPL/AGPL — не SaaS з free-tier) фреймворки та готові інструменти для пайплайну генерації СТАТИЧНОГО контенту PharmaGen. Два трека: (A) HCP — email/WhatsApp/SMS кампанії текстом; (B) End-consumer — Instagram static-пости, stories, carousel. Контент RU primary + KZ через переклад. Стек: вже є Gemini API key (3.1-pro, 2.5-flash, imagen-4-ultra/fast, 2.5-flash-image, 3.1-flash-tts), VPS з n8n на 5678, Python 3.12. Без dev-команди — low-code (n8n/Flowise/Dify-tier) або Python з CLI. No video, no Reels.


Методологія відбору

Переглянули ~22 кандидати, відфільтрували за:

  1. Підтримка Gemini (native або через OpenAI-compat/LiteLLM).
  2. Self-host docker-compose на Ubuntu VPS.
  3. Alive — останній commit ≤ 12 міс.
  4. Ліцензія permissive або copyleft, що дозволяє internal-use.
  5. RU/KZ output (універсальні prompt-only — OK; ті, де жорстко захардкоджені EN-шаблони — flag).

Відкинуті: Open Carrusel (Claude-only hardcoded, no Gemini path), FranciscoMoretti/carousel-generator (OpenAI-only, 185★ — крихкий), RendrKit (переважно API-layer, а не рушій), Mixpost (OSS Lite без AI-генерації), aiCarousels/PostNitro/etc. (SaaS), Flowise (вузьке RAG-focused, не content-pipeline).


Shortlist — 5 кандидатів

1. Dify — AI-application платформа з workflow-builder

Що робить. End-to-end платформа: drag-and-drop workflow-builder + prompt IDE + knowledge base (RAG) + API-publishing + аналітика. Дозволяє зібрати "content-pipeline as an application": вхід — product SKU/brief → серія LLM-кроків (концепт → caption → translate → disclaimer-gate) → вихід у вигляді API, який викликається з n8n або напряму. Gemini підтримується нативно (в репо є .gemini config + Vertex AI provider).

Pros:

Cons:

Fit score: 8/10 — покриває 80% вимог (HCP-copy + IG captions + compliance-гейт), але для статичного рендеру картинок треба буде додавати Satori/Imagen окремо.


2. n8n + awesome-n8n-templates (enescingoz) — low-code оркестратор

Що робить. n8n — вже встановлений оркестратор. Репо awesome-n8n-templates дає 280+ готових JSON-workflow, які імпортуються кнопкою. Релевантні для нас категорії: Instagram_Twitter_Social_Media/, WhatsApp/ (4 шаблони), Gmail_and_Email_Automation/, OpenAI_and_LLMs/. Gemini-node в n8n нативний (Google PaLM/Gemini credential).

Готові шаблони, що релевантні (верифіковано на n8n.io):

Pros:

Cons:

Fit score: 9/10 — найшвидший time-to-first-post, бо інфра вже є.


3. Postiz — self-hosted social-media scheduler з AI

Що робить. Scheduler + composer для 30+ соцмереж (Instagram, LinkedIn, X, FB, Threads, TikTok, Pinterest тощо). Має вбудований AI-composer + API для програматичного постингу. Instagram carousel підтримується як multi-image post (не авто-генерує слайди, але публікує готові). Інтегрується з n8n через API.

Pros:

Cons:

Fit score: 7/10 — як publishing-шар відмінний, але не замінює content-generation частину.


4. CrewAI + Gemini (Python, multi-agent)

Що робить. Python-фреймворк для багатоагентних команд: визначаєш агентів (Researcher, Copywriter, Editor, Compliance-officer) з ролями/goals/tools, даєш task — вони колаборують. Ми вже використовуємо CrewAI у case-builder-crew і crewai-content — тобто know-how є.

Pros:

Cons:

Fit score: 8/10 — найсильніший варіант для tier-креативу (складний brief → багатокроковий pipeline), але не plug-and-play.


5. LiteLLM Proxy — інфраструктурний шар (enabler, не решення)

Що робить. Прокі-сервер, що виставляє OpenAI-compatible endpoint (/v1/chat/completions), а всередині маршрутизує на 100+ провайдерів, включно з Gemini (AI Studio) та Vertex AI. Критичний шар для всього нашого стеку — дає можливість використовувати будь-який OpenAI-locked інструмент (Postiz, carousel-generator, інші фронти) з нашим Gemini-ключем.

Pros:

Cons:

Fit score: 9/10 як enabler — майже обов'язковий, бо дозволяє чіпляти Gemini до всього наступного open-source, що спочатку OpenAI-only.


Рекомендація — що пілотувати першим

Пілот #1 (тиждень 1): n8n + awesome-n8n-templates — quickest win

Причина: n8n уже стоїть на VPS, templates імпортуються за 10 сек, Gemini-node нативний. За 2-3 дні отримуємо живий end-to-end пайплайн для HCP-email та 1-image IG-постів. Це MVP, який користувач бачить у telegram або email — підтверджує напрям.

Пілот #2 (тиждень 2-3): Dify як "компліанс-і-копі-hub"

Причина: як тільки MVP працює і приходять реальні правки типу "додати disclaimer для ЛЗ" або "перекласти в KZ", починаємо упиратись у межі n8n prompt-нод. Dify дає prompt-versioning, workflow з loops/if, та легкий API-гейт. Якщо n8n — це "шини", то Dify — це "мозок", який через HTTP-запит з n8n віддає готовий compliant copy.

Пізніше (місяць 2+): CrewAI для tier-креативу

Коли пайплайн working, і Сергій/Настя хочуть багатослайдові carousels з ролевою логікою (Researcher збирає інсайти → Copywriter пише hook → Editor полірує → Compliance-Officer чистить) — мігруємо творчу частину в CrewAI. Наявний case-builder-crew скелет прискорить старт.

Постійно: LiteLLM — єдиний Gemini-gateway

Ставимо одразу, ще до Dify. Усі зовнішні інструменти (Postiz, будь-які OpenAI-locked) дивляться в LiteLLM, не прямо в Google.

Publishing-шар (опціонально): Postiz

Якщо SMM-команда хоче одну дашборд-вітрину замість Meta Business Suite — розгортаємо Postiz. Якщо ні — n8n напряму постить в Instagram Business API, Postiz можна пропустити.


Integration sketch — 5 кроків (для Пілоту #1: n8n + Gemini)

  1. Day 1 — LiteLLM proxy: docker run -d -p 4000:4000 -e GEMINI_API_KEY=$(cat /srv/passepartout/gemini-sandbox.key) ghcr.io/berriai/litellm:main-latest --model gemini-3.1-pro-preview Перевірити curl http://localhost:4000/v1/models.

  2. Day 1-2 — імпорт 3 шаблонів з awesome-n8n-templates в існуючий n8n:

    • 3840-automated-ai-content-creation-and-instagram-publishing-from-google-sheets — для IG продукт-постів;
    • 8826-gemini-on-whatsapp — для HCP WhatsApp-broadcast-чорновиків;
    • LeadPilot Lite AI Cold Email Writer — для HCP email-кампаній (адаптуємо під лікарів, не B2B sales).
  3. Day 2 — Google Sheet "PharmaGen Briefs" з колонками: sku, audience (HCP/consumer), channel, angle, status. Поєднуємо з шаблоном 3840 — кожен рядок запускає свою гілку.

  4. Day 3 — RU→KZ переклад-крок: додаємо Gemini-node після copy-генерації з prompt "Translate to Kazakh, keep medical terminology in Russian or Latin, tone: professional patient-facing". Manual QA перші 10 результатів.

  5. Day 4-5 — End-to-end прогон 5 тестових постів (3 consumer-IG + 2 HCP-email). Review-гейт через Telegram (див. feedback_case_builder_review_gate.md — той самий паттерн): workflow надсилає preview в TG, Сергій approves — тоді публікується/відправляється.


Що доведеться будувати самим (gap-аналіз)

Готові фреймворки не покривають:

  1. KZ-tone QA. Gemini вміє в KZ, але якість для фарма-термінології нестабільна. Потрібно зібрати glossary (brand-name-never-translate list + dosage-terms mapping RU↔KZ) та post-processing-регекс. — кастом, ~1 день роботи.

  2. Pharma legal-gate. Жоден opensource-tool не знає про правила реклами ЛЗ в KZ/UZ/UA (Art. 21 ЗУ "Про рекламу", KZ Health Code). Треба написати власний prompt + banned-words list + rule "ЛЗ ніколи без дисклеймера в IG". Варіант: окремий Dify-workflow "LegalGate" викликається усіма content-пайпами. — кастом, 2-3 дні + ітерації з юристом.

  3. Instagram multi-slide carousel renderer. Усі знайдені n8n-шаблони — single post. Щоб зробити нормальний 5-10-slide carousel з уніфікованим бренд-темплейтом — потрібен окремий мікросервіс: Satori (Vercel) → SVG → resvg-js → PNG, або простіше Puppeteer-скрипт на Node (як робить Open Carrusel, тільки ми перепишемо під Gemini). 2-3 дні інжиніринг + 1 день дизайн шаблону з Вовою.

  4. HCP-реєстр та сегментація. Тулзи роблять broadcast, не targeted-комунікацію. Потрібна окрема таблиця "лікарі-спеціальність-регіон-канал-consent" з legal opt-in. — кастом, з Юлею/Катею.

  5. Feedback loop. Жоден OSS-інструмент не міряє, який згенерований пост виграв по engagement і не автоматично донастроює промт. Для PharmaGen v2 — власний ETL з IG Insights → Supermetrics → BigQuery, що повертає "winning angle" назад в brief-таблицю.

  6. TTS для WhatsApp voice-повідомлень (secondary у брифі). Gemini 3.1-flash-tts підтримується, але ні n8n, ні Dify наразі не мають нод із KZ-voice QA. Додаткова custom-нода на Python, яку триггерить n8n коли в brief-рядку channel=whatsapp_voice. — 1-2 дні.


TL;DR (для швидкого ухвалення)

# Інструмент Роль Час до першого посту
1 LiteLLM Gemini-gateway (enabler) 1 год
2 n8n + awesome-n8n-templates Low-code оркестратор пайпів 2-3 дні
3 Dify Prompt-hub + compliance-гейт +3-5 днів
4 CrewAI (уже в стеку) Складний tier-креатив (carousels) +1-2 тижні
5 Postiz (опц.) SMM-дашборд і scheduled publishing +1 день

Почати з #1+#2. Якщо MVP покаже, що single-post формат малий — додати slide-рендерер (Satori/Puppeteer) і перейти до #3+#4.

Compliance-частина — своя, завжди. Жоден opensource MLR-tool під OTC/Rx розподіл та KZ legal не існує. Це наш diferential, його доведеться написати (Dify-workflow + banned-list + юрист review).


Sources (верифіковано через WebFetch/WebSearch)


Звіт підготовлено за правилами rules.md §report_format. Для доставки — через Reports Hub (за feedback_report_delivery.md).