Give it a topic direction; a multi-role AI pipeline (策划→标题→撰稿→审读) plus deterministic platform adapters turns it into ranked titles, an outline, a reviewed draft, and per-platform formatted variants — exported as one content pack, with your own AI key.
| Output | What it is |
|---|---|
| Ranked titles | Formula-based candidates scored on length fit, specificity, suspense hook, emotion words, and clickbait penalty — ranked, with per-dimension breakdown |
| Angle matrix | 受众 × 情绪价值 × 内容形式 combinations — pick the angle that fits your audience |
| Outline draft | Structured sections with goals, key points, evidence slots, and word budgets — generated by the 策划 role |
| Reviewed draft | Full-text draft from the 撰稿 role, checked by the 审读 role — coverage gaps flagged, unsourced numbers marked [待核实], verdict PASS or REVISE |
| Platform variants | Deterministic per-platform adaptation: 公众号 long-form + 小标题 + CTA, 知乎 conclusion-first + references, 小红书 short paragraphs + emoji + hashtags, 抖音口播 spoken-language rewrite + duration estimate |
| Content pack .md | All of the above exported as one Markdown file with a publish checklist |
cd repo
python server.py
# open http://127.0.0.1:8060Then paste your topic, check target platforms, click 生成角度, pick an angle, add your AI key (AI Settings), click 运行管线.
Click AI 设置 in the toolbar. Supported providers:
| Provider | Format | Default model |
|---|---|---|
| OpenAI | openai | gpt-4o-mini |
| Anthropic | anthropic | claude-haiku-4-5 |
| Gemini | openai-compat | gemini-2.0-flash |
| DeepSeek | openai-compat | deepseek-chat |
| Kimi | openai-compat | moonshot-v1-8k |
| GLM | openai-compat | glm-4-flash |
| Custom 中转站 | openai-compat | (you specify) |
| Mock | offline | no key needed |
Your key is request-scoped: sent once to the provider, never stored on the server, never logged. It is masked in localStorage (clearable). Mock mode works offline with no key.
The pipeline makes multiple constrained calls to the same model you configure — it is not separate models or independent agents with different knowledge. Each role has its own system prompt and structured output contract:
- 策划 — takes your topic + chosen angle → outputs a structured outline JSON (sections with goals, key points, evidence slots, word budgets)
- 标题 — deterministic scoring engine (no AI call) — scores formula-slotted candidates on rubric dimensions
- 撰稿 — takes the outline → writes each section, validated against its key points and word budget
- 审读 — takes the draft + outline → structured critique: coverage gaps, KB norm violations, unsourced number flags → verdict PASS or REVISE
- 修订 (if REVISE) — re-writes only flagged sections (one round maximum)
Every role has a deterministic mock fallback, so the full pipeline runs offline in mock mode.
kb/platforms.json is an opinionated curated starter — not official platform policy. Each platform has ≥10 rules with IDs, norm checklists, and forbidden patterns. It is user-editable. Changing the KB changes adapter output.
- Multi-role = multiple calls to one model. Title scores are heuristic rubric points, not CTR predictions.
- KB is opinionated. Platform norms are a curated starter; no 流量/爆款 guarantees.
- 审读 cannot fact-check.
[待核实]items are the author's responsibility to verify. - Output is a draft pack, not publish-ready content.
Python 3.8 · stdlib only · no external dependencies · single-file server · BYOK
MIT