Skip to content

inbeomheo/insight-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

595 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Insight Engine

YouTube 영상 URL 하나로 14가지 스타일의 고품질 콘텐츠를 자동 생성하는 AI 콘텐츠 엔진. 5개 AI 프로바이더(Gemini, DeepSeek, Zhipu GLM, Ollama, OpenRouter) 통합, 다국어(한/영/일) 지원, RAG 지식 참조, MCP 자동 발행, 팀 워크스페이스까지.

Flask + Next.js 풀스택 · LiteLLM 멀티프로바이더 · 323개 서비스 · 1,659개 테스트(99.94% pass)


Features

Core

  • 14가지 출력 스타일 — 블로그+SEO, 요약, 튜토리얼, Q&A, 앱 아이디어, 요즘IT, 브런치, 네이버 인기글, SNS, 뉴스레터, 쇼노트, Shorts 클립, GEO(AI검색 최적화), AI 코스
  • 5개 AI 프로바이더 — Gemini, DeepSeek, Zhipu GLM, Ollama(로컬), OpenRouter(2600+ 모델)
  • 다국어 출력 — 한국어, 영어, 일본어
  • 4단계 자막 폴백 — youtube-transcript-api → watch 페이지 파싱 → Supadata API → Whisper 로컬 음성인식

Content Generation

  • 배치 처리 — 최대 10개 URL 동시 분석
  • 멀티스타일 — 1 URL × N 스타일 동시 생성 (사용량 1회 차감)
  • 캠페인 팩 — 블로그+SNS+뉴스레터 묶음 자동 생성
  • 퓨전 분석 — 다중 소스 교차 분석 콘텐츠
  • 파이프라인 자동화 — 자막 추출 → 생성 → SEO 최적화 (SSE 실시간 진행률)
  • 소스 인용 모드 — 모든 주장에 [MM:SS] 타임스탬프 인용 + YouTube 링크 변환
  • 챕터 자동 분할 — AI가 자막을 주제별 챕터로 분할
  • 댓글 병렬 분석 — 메인 콘텐츠와 댓글 요약 동시 생성

Post-Processing

  • 플랫폼 리라이트 — Twitter/LinkedIn/Instagram/Threads 형식 변환
  • 인라인 AI 편집 — 텍스트 선택 영역 부분 재생성 (축약/확장/톤변경/번역)
  • 마인드맵 — 콘텐츠 → 마인드맵 마크다운 변환
  • QA 게이트 — 발행 전 금칙어/구조/중복/링크 품질 검증

Publishing & Collaboration

  • MCP 자동 발행 — Naver Blog, WordPress 플러그인
  • 예약 캘린더 — APScheduler 기반 예약 발행 + 캘린더 UI
  • 발행 큐 — 인메모리 큐 + 재시도 정책 (3회, 지수 백오프)
  • 팀 워크스페이스 — 멤버 관리 (Owner/Editor/Viewer) + 콘텐츠 승인 플로우
  • 채널 모니터링 — YouTube 채널 신규 업로드 자동 감지 (30분 폴링)

Intelligence

  • RAG 지식 참조 — ChromaDB 벡터 스토어, 파일 업로드 → 생성 시 자동 주입
  • 웹 검색 보강 — Tavily API로 자막 내용을 웹 검색으로 보강
  • 멀티에이전트 — Research → Writer → Editor → SEO 파이프라인
  • 95개 텍스트 분석 서비스 — 가독성, 구조, 감정, NLP 분석

Export & Integration

  • 다중 내보내기 — DOCX, PDF, Markdown, TXT, ZIP(전체 패키지)
  • 웹훅 알림 — 생성 완료 시 n8n/Make/Zapier 연동
  • 외부 서비스 — Slack, Discord, RSS, GitHub 연동
  • GraphQL API — 유연한 쿼리 지원

Quick Start

요구사항

  • Python 3.8+
  • Node.js 18+
  • AI Provider API 키 최소 하나

설치

git clone https://github.com/inbeomheo/insight-engine.git
cd insight-engine

# 가상환경 (권장)
python -m venv .venv
.venv\Scripts\activate      # Windows
# source .venv/bin/activate  # macOS/Linux

# 의존성
pip install -r requirements.txt
cd frontend && npm install && cd ..

환경변수

cp .env.example .env

.env에 최소 하나의 AI API 키를 설정하세요:

# 최소 하나 필수 — 설정된 프로바이더만 UI에 표시
GEMINI_API_KEY=AIza...          # Google Gemini (기본 권장)
DEEPSEEK_API_KEY=sk-...         # DeepSeek
ZAI_API_KEY=...                 # Zhipu AI (GLM)
OLLAMA_BASE_URL=http://localhost:11434  # Ollama (로컬, API 키 불필요)
OPENROUTER_API_KEY=sk-or-...    # OpenRouter (2600+ 모델)

# 선택
YOUTUBE_API_KEY=...             # 댓글 수집
SUPADATA_API_KEY=...            # 자막 백업 서비스
TAVILY_API_KEY=...              # 웹 검색 보강

전체 환경변수 목록은 .env.example 참조

실행

두 서버 모두 실행해야 합니다:

# 터미널 1 — 백엔드
python app.py                    # → http://localhost:5001

# 터미널 2 — 프론트엔드
cd frontend && npm run dev       # → http://localhost:3000

브라우저에서 http://localhost:3000 접속


Architecture

┌───────────────────────────┐     ┌─────────────────────────┐
│  Next.js 16 Frontend      │────▶│  Flask Backend           │
│  React 19 + Tailwind v4   │     │  Port 5001               │
│  Zustand + TanStack Query │     │                           │
│  Port 3000                │◀────│  LiteLLM Multi-Provider  │
└───────────────────────────┘     └────────┬────────────────┘
                                           │
                    ┌──────────────────────┼──────────────────────┐
                    ▼                      ▼                      ▼
             ┌─────────────┐      ┌──────────────┐      ┌──────────────┐
             │ YouTube API  │      │ AI Providers  │      │ Supabase     │
             │ Transcript   │      │ Gemini,DeepSeek│     │ Auth, DB     │
             │ Comments     │      │ GLM,Ollama,OR │      │ Usage        │
             └─────────────┘      └──────────────┘      └──────────────┘

프로젝트 구조

insight-engine/
├── app.py                         # Flask 진입점 (포트 5001)
├── config.py                      # 프로바이더/스타일/모디파이어 설정
├── requirements.txt               # Python 의존성
├── .env.example                   # 환경변수 템플릿
│
├── routes/                        # API 라우트 (13개 모듈)
│   ├── blog_routes.py             # 콘텐츠 생성, 파이프라인, MCP, 예약
│   ├── auth_routes.py             # 인증, API 키, 사용량, 워크스페이스
│   ├── advanced_routes.py         # 멀티스타일, 퓨전, 리라이트, QA
│   ├── export_routes.py           # DOCX/MD/TXT/ZIP 내보내기
│   ├── utility_routes.py          # 헬스체크, 프로바이더, 캐시
│   ├── analytics_routes.py        # 분석 대시보드
│   ├── graphql_routes.py          # GraphQL API
│   ├── payment_routes.py          # 결제/구독
│   └── ...
│
├── services/                      # 비즈니스 로직 (23개 도메인, 323개 파일)
│   ├── core/                      # AI, 콘텐츠, 파이프라인, 캐시
│   ├── analysis/                  # 텍스트/NLP 분석 (95개)
│   ├── seo/                       # SEO 최적화 (28개)
│   ├── quality/                   # QA 검증 (14개)
│   ├── content/                   # 인용, 리라이트, FAQ (27개)
│   ├── media/                     # 이미지, TTS, 썸네일 (15개)
│   ├── transcript/                # Whisper, 챕터, 번역 (6개)
│   ├── agents/                    # 멀티에이전트 파이프라인 (12개)
│   ├── analytics/                 # 분석 대시보드 (17개)
│   ├── rag/                       # ChromaDB 벡터 스토어 (9개)
│   ├── mcp/                       # MCP 플러그인 (6개)
│   ├── platform/                  # 웹훅, RSS, 채널 모니터링 (11개)
│   ├── data/                      # Supabase, 스케줄, 알림 (33개)
│   ├── integrations/              # Slack, Discord (7개)
│   ├── payment/                   # 결제/구독 (9개)
│   ├── export/                    # DOCX, EPUB (5개)
│   ├── auth/                      # 인증/OAuth (2개)
│   ├── usage/                     # 사용량 관리 (5개)
│   ├── finetune/                  # AI 파인튜닝 (3개)
│   └── exceptions/                # 에러 처리
│
├── prompts/                       # 프롬프트 시스템 v3.4
│   ├── base.py                    # 기본 프롬프트 (Chain-of-Thought)
│   └── styles/                    # 14개 UI 스타일 + 4개 내부 스타일
│
├── frontend/                      # Next.js 16 + Tailwind v4 + shadcn
│   ├── app/                       # App Router 페이지
│   ├── components/                # React 컴포넌트
│   ├── hooks/                     # 커스텀 훅
│   ├── stores/                    # Zustand 상태 관리
│   └── lib/                       # API, 타입, 유틸
│
├── tests/                         # 271개 단위 테스트 + E2E
│   ├── test_*.py                  # pytest 단위 테스트
│   ├── e2e/                       # Playwright E2E
│   └── load/                      # 부하 테스트
│
└── supabase/schema.sql            # DB 스키마

Supported Models

Provider Models Notes
Gemini (기본) gemini-3.1-flash-lite reasoning_effort 지원
DeepSeek deepseek-chat (V3), deepseek-reasoner (R1)
Zhipu AI GLM-4.7, GLM-4.5-Air OpenAI 호환 API
Ollama (로컬) llama3.2, mistral, gemma2 API 키 불필요
OpenRouter 2600+ 모델 (Claude, GPT, Llama 등) 단일 키로 모든 모델 접근

Styles

Style Description
Blog+SEO 검색 최적화 블로그 포스트
Summary 핵심 요약
Tutorial 단계별 튜토리얼
Q&A 질문-답변 형식
App Ideas 앱/서비스 아이디어 도출
YozmIT IT 미디어 스타일
Brunch 에세이/칼럼
Naver Popular 네이버 인기글 스타일
SNS Post 소셜 미디어용
Newsletter 이메일 뉴스레터
Show Notes 팟캐스트 쇼노트
Shorts Clip 60초 Shorts 스크립트 (3-5개 클립)
GEO AI 검색엔진 최적화 (citations, entity tags)
AI Course 교육 코스 콘텐츠

각 스타일은 독립 프롬프트 + 최적화된 temperature/max_tokens 설정.


API

Core Endpoints

Endpoint Method Description
/generate POST 단일 URL 콘텐츠 생성
/generate-batch POST 다중 URL 배치 (최대 10개)
/api/generate-multi POST 1 URL × N 스타일 동시 생성
/api/generate-campaign POST 캠페인 팩 생성
/api/pipeline POST 파이프라인 자동화 (SSE)
/api/rewrite POST 플랫폼별 리라이트
/api/inline-edit POST 인라인 AI 편집

Content Management

Endpoint Method Description
/api/mindmap POST 마인드맵 생성
/api/qa-check POST QA 게이트 검증
/api/transcript/<id> GET 자막 워크스페이스
/api/export/docx POST DOCX 내보내기
/api/export/markdown POST Markdown 내보내기
/api/export/zip POST ZIP 패키지 (전체 포맷)

Platform & Publishing

Endpoint Method Description
/api/mcp/plugins GET MCP 플러그인 목록
/api/mcp/publish POST MCP 플러그인 발행
/api/schedule POST/GET/DELETE 예약 발행 관리
/api/publish-queue POST/GET 발행 큐 관리
/api/workspaces GET/POST 워크스페이스 관리

System

Endpoint Method Description
/api/providers GET 사용 가능한 AI 목록
/api/providers/validate POST API 키 유효성 검증
/api/ollama/health GET Ollama 상태 확인
/api/knowledge/upload POST RAG 문서 업로드
/api/admin/dashboard GET 운영 대시보드

Environment Variables

AI Provider Keys (최소 하나 필수)

Variable Provider Get Key
GEMINI_API_KEY Google Gemini aistudio.google.com
DEEPSEEK_API_KEY DeepSeek platform.deepseek.com
ZAI_API_KEY Zhipu AI (GLM) open.bigmodel.cn
OLLAMA_BASE_URL Ollama (로컬) http://localhost:11434
OPENROUTER_API_KEY OpenRouter openrouter.ai
OPENAI_API_KEY OpenAI platform.openai.com
ANTHROPIC_API_KEY Anthropic console.anthropic.com

Optional

Variable Description
YOUTUBE_API_KEY YouTube 댓글 수집
SUPADATA_API_KEY 자막 백업 서비스
TAVILY_API_KEY 웹 검색 보강
SUPABASE_URL + SUPABASE_ANON_KEY 클라우드 DB/인증
WHISPER_ENABLED Whisper 자막 폴백 (true/false)
RAG_ENABLED RAG 지식 참조 (true/false)
WEBHOOK_URL + WEBHOOK_ENABLED 웹훅 알림
REDIS_URL Rate Limiter 저장소
YT_HTTP_PROXY / YT_HTTPS_PROXY YouTube 차단 우회 프록시

전체 목록: .env.example


Testing

# 단위 테스트 (271개)
python -m pytest tests/ -v

# E2E 테스트 (Playwright)
cd tests/e2e && npx playwright test --workers=1

# 커버리지
python -m pytest tests/ --cov=. --cov-report=html

# 프론트엔드 타입 체크
cd frontend && npx tsc --noEmit

Deployment

Docker

docker build -t insight-engine .
docker run -p 5001:5001 --env-file .env insight-engine

Railway

  1. GitHub 저장소 연결
  2. Variables 탭에서 환경변수 설정
  3. 자동 배포

Manual

export FLASK_ENV=production
export FLASK_DEBUG=0
gunicorn app:app -b 0.0.0.0:5001

Troubleshooting

문제 해결
AI 서비스가 표시되지 않음 .env에 해당 프로바이더 API 키 설정 확인
YouTube 자막 수집 실패 SUPADATA_API_KEY 설정 또는 프록시(YT_HTTP_PROXY) 사용
댓글이 수집되지 않음 YOUTUBE_API_KEY 설정 + YouTube Data API v3 활성화 확인
Ollama 연결 실패 Ollama 서버 실행 확인 (ollama serve), URL 설정 확인
프론트엔드 빈 화면 백엔드(python app.py)가 실행 중인지 확인

Tech Stack

Backend: Python 3.8+ · Flask 3.0 · LiteLLM · APScheduler · ChromaDB · faster-whisper · Supabase

Frontend: Next.js 16 · React 19 · TypeScript · Tailwind CSS v4 · Zustand · TanStack Query · shadcn/ui · Radix UI

Testing: pytest (271 tests) · Playwright E2E · MSW


License

MIT License

About

AI Content Engine — YouTube URL → 14 styles of polished content. 5 AI providers (Gemini, DeepSeek, GLM, Ollama, OpenRouter), multilingual (ko/en/ja), RAG, MCP auto-publish, team workspaces. Flask + Next.js full-stack.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors