FlowPost AI 是一个面向内容创作者的 AI 多平台内容发布工具。用户只需要输入一篇原始内容,选择目标平台,系统即可自动生成适配公众号、知乎、小红书、B站等平台的发布版本,并提供多平台预览、发布前检查和一键模拟发布能力。
本项目选择 XEngineer 新工科计划第二批议题中的题目二:多平台内容发布工具。
很多创作者需要将同一篇内容同步发布到多个平台,但不同平台的内容结构、标题风格、正文表达、标签要求和发布字段差异明显,直接复制粘贴往往效果不好。
典型问题包括:
- 公众号更重视摘要、导语、排版和阅读节奏。
- 知乎更重视问题意识、逻辑结构和专业表达。
- 小红书更重视吸引力标题、封面文案、标签和生活化表达。
- B站更重视视频标题、简介、分区、标签和互动引导。
FlowPost AI 的目标不是只做文本改写,而是围绕创作者真实的跨平台分发流程,完成从内容输入、平台适配、预览检查到模拟发布的完整闭环。
用户可以输入:
- 原始标题
- 原始正文
- 内容类型,例如知识科普、教程、测评、生活分享、活动宣传
- 目标受众
- 期望语气
MVP 支持以下平台:
- 公众号
- 知乎
- 小红书
- B站
用户可以同时选择多个目标平台。
系统基于真实 AI 能力和平台规则,生成不同平台的发布草稿。
每个平台草稿包含:
- 平台标题
- 正文或视频简介
- 摘要
- 标签
- 封面文案
- 发布建议
系统使用 Tab 或分栏展示不同平台的适配结果,让用户直观看到同一篇内容在不同平台上的表达差异。
预览重点包括:
- 标题风格差异
- 正文结构差异
- 标签与摘要差异
- 封面文案与互动引导差异
发布前检查器是本项目的核心创新点之一。系统会根据不同平台的发布规则,对草稿进行自动检查。
检查规则示例:
- 公众号:标题长度、摘要是否存在、正文是否合理分段、是否有导语。
- 知乎:标题是否具备问题意识、正文是否有清晰逻辑结构、表达是否专业。
- 小红书:是否包含标签、封面文案是否简短、语气是否生活化、标题是否有吸引力。
- B站:是否包含视频简介、分区建议、标签、互动引导。
检查结果包含:
- 通过项
- 风险项
- 优化建议
- 平台适配评分
MVP 阶段采用模拟发布,不强依赖真实平台 API。用户点击一键模拟发布后,系统会将各平台草稿加入发布队列,并展示发布状态。
发布状态包括:
- 待发布
- 检查中
- 已模拟发布
- 需修改
- 发布失败
- 不只是 AI 改写,而是覆盖输入、适配、预览、检查、发布的完整内容分发链路。
- 每个平台拥有独立风格规则,避免四个平台输出同一份内容。
- 发布前检查器能够帮助创作者在发布前发现缺失字段和平台风险。
- 平台适配评分让用户快速判断草稿是否适合发布。
- 采用平台适配器架构,便于扩展微博、抖音、快手、视频号等更多平台。
- 发布层采用可插拔设计,当前支持模拟发布,后续可接入真实平台 API 或浏览器辅助发布。
- 前端框架:Next.js / React
- 样式方案:Tailwind CSS
- UI 组件:自定义轻量组件
- 后端接口:Next.js API Routes
- AI 能力:OpenAI API 或兼容 Chat Completions 接口
- 数据存储:MVP 阶段使用前端状态,暂不强依赖数据库
- 发布能力:Mock Publisher 模拟发布队列
环境要求:
- Node.js 18.18+ 或 20+
- npm
安装依赖:
npm install配置环境变量:
cp .env.example .env.local可选配置:
OPENAI_API_KEY=你的 API Key
OPENAI_BASE_URL=兼容 OpenAI 的接口地址,可留空
OPENAI_MODEL=gpt-4.1-mini如果没有配置 OPENAI_API_KEY,系统会自动使用本地 Mock 生成器,仍可完整演示输入、适配、检查和模拟发布流程。
启动开发服务:
npm run dev常用检查命令:
npm run typecheck
npm run build| 变量名 | 必填 | 说明 |
|---|---|---|
OPENAI_API_KEY |
否 | 配置后启用真实 AI 生成;不配置时使用 Mock 生成器。 |
OPENAI_BASE_URL |
否 | 兼容 OpenAI Chat Completions 的服务地址。 |
OPENAI_MODEL |
否 | 默认 gpt-4.1-mini。 |
项目采用平台适配器架构。主流程不直接写死各平台规则,而是将每个平台的规则、生成、检查和发布逻辑封装成可替换模块。
type Platform = 'wechat' | 'zhihu' | 'xiaohongshu' | 'bilibili'
interface PlatformAdapter {
platform: Platform
generate(input: ContentInput): Promise<PlatformDraft>
validate(draft: PlatformDraft): Promise<PublishCheckResult>
publish(draft: PlatformDraft): Promise<PublishResult>
}当前实现包含三层:
- 页面编排层:负责内容输入、平台选择、草稿预览、检查结果和发布队列展示。
- API 能力层:
/api/generate、/api/validate、/api/publish分别处理生成、校验和发布。 - 领域模块层:
adapters、ai、validators、publishers分别承载平台规则、AI 调用、发布检查和发布通道。
AI 生成能力与平台逻辑解耦:
interface AIProvider {
generatePlatformDraft(
input: ContentInput,
rules: PlatformRules
): Promise<PlatformDraft>
}发布能力采用可插拔设计:
interface Publisher {
publish(draft: PlatformDraft): Promise<PublishResult>
}MVP 阶段默认使用 MockPublisher,后续可以扩展:
WechatDraftPublisher:发布到微信公众号草稿箱。BilibiliApiPublisher:接入 B站开放平台投稿能力。ManualAssistPublisher:生成复制发布包,辅助用户手动发布。BrowserAssistPublisher:在用户授权后辅助填写平台发布页面。
更完整的架构说明见 docs/architecture.md。
src/
app/
page.tsx
api/
generate/
route.ts
validate/
route.ts
publish/
route.ts
components/
ContentEditor.tsx
PlatformSelector.tsx
DraftPreview.tsx
PublishChecklist.tsx
PublishQueue.tsx
lib/
adapters/
registry.ts
rules.ts
types.ts
index.ts
ai/
provider.ts
prompts.ts
mock-generator.ts
publishers/
mock-publisher.ts
index.ts
validators/
publish-checker.ts
demo/
sample-data.ts
platforms.ts
types.tsFlowPost AI 同时支持真实 AI 和可稳定演示的 Mock 模式:
- 配置
OPENAI_API_KEY时,/api/generate会调用兼容 OpenAI Chat Completions 的接口,并要求模型返回结构化 JSON。 - 生成结果会返回具体 provider 和模型名,例如
DeepSeek · deepseek-v4-flash,便于客户按自己的模型供应商配置。 - 未配置 API Key 或 AI 请求失败时,系统会回退到 Mock 生成器,保证 Demo 不受网络、额度或密钥影响。
/api/validate使用本地平台规则检查草稿质量,不依赖模型,因此结果稳定可复现。/api/publish当前为模拟发布,不会向真实平台写入内容,适合比赛评审和视频演示。
interface ContentInput {
title: string
body: string
contentType: string
audience?: string
tone?: string
platforms: Platform[]
}
interface PlatformDraft {
platform: Platform
title: string
body: string
summary?: string
tags: string[]
coverText?: string
publishTips: string[]
}
interface PublishCheckResult {
platform: Platform
passed: boolean
score: number
passedItems: string[]
riskItems: string[]
suggestions: string[]
}
interface PublishResult {
platform: Platform
status: 'queued' | 'checking' | 'published' | 'failed' | 'needs_revision'
message: string
publishedAt?: string
}- 点击“填入示例”,手动输入原始内容,或上传 txt/md 文档导入正文。
- 选择公众号、知乎、小红书、B站。
- 点击生成平台版本。
- 展示四个平台不同风格的标题、正文、摘要、标签和封面文案,并确认来源显示具体 AI 模型或本地 Mock 生成器。
- 打开发送前检查结果,展示每个平台不同的检查规则和适配评分。
- 根据建议优化某个平台草稿。
- 点击一键模拟发布。
- 展示发布队列和各平台模拟发布结果。
- 展示页面底部的平台扩展架构,说明后续如何通过 adapter 接入更多平台和真实发布通道。
内置示例内容围绕“AI 多平台发布工具如何减少重复改写”,适合用于 Demo 视频录制和评委快速复现完整流程。
项目可部署到 Vercel、Netlify 或任何支持 Next.js 的 Node.js 环境。部署时需要:
- 安装依赖并执行
npm run build。 - 如需真实 AI,配置
OPENAI_API_KEY、OPENAI_BASE_URL、OPENAI_MODEL。 - 如只做虚拟发布演示,可以不配置任何密钥,系统会使用 Mock 生成器和模拟发布队列。
当前版本没有数据库依赖,部署成本较低,适合快速演示。
比赛要求基于 PR 添加新功能,并保持持续 commit。建议按以下粒度拆分:
chore: initialize project structurefeat: add content input editorfeat: add platform selectorfeat: define platform adapter typesfeat: add AI generation APIfeat: implement platform adaptation rulesfeat: add multi-platform draft previewfeat: add publish checklistfeat: add mock publish queuefeat: add demo sample datadocs: complete README and architecture notesfix: polish customer-facing publishing workflow
每个 PR 描述应包含:
- 标题:一句话说明本 PR 新增或修改了什么。
- 功能描述:说明该功能的作用和使用方式。
- 实现思路:简要说明技术选型或核心逻辑。
- 测试方式:说明如何验证功能正常运行。
- 接入微信公众号草稿箱接口,实现真实草稿发布。
- 接入 B站开放平台,支持视频投稿发布。
- 增加微博、抖音、快手、视频号等平台 adapter。
- 增加 DocumentParser 输入层,支持 Word、PDF、飞书、Notion 和公众号草稿导入。
- 增加发布日历和定时发布。
- 增加团队协作和审核流程。
- 增加内容资产库,沉淀历史发布内容。
- 增加发布数据回收,分析阅读、点赞、收藏、评论等指标。
- 基于数据反馈优化下一次内容生成。
- 增加品牌语气配置,让团队内容风格保持一致。
本项目为 72 小时 MVP 作品。MVP 阶段重点验证多平台内容适配、发布前检查和模拟发布流程。真实平台发布能力受平台 API 权限、账号认证和审核机制影响,暂作为可扩展发布通道设计,不作为当前版本的强依赖。
本项目基于 Next.js、React、Tailwind CSS 和 TypeScript 开发。业务流程、平台规则、发布前检查器、Mock 发布队列和平台扩展架构为本项目实现内容。
如果后续接入真实平台发布,需要根据目标平台的开放平台协议、账号权限和审核规则单独实现,并在 PR 描述中说明新增依赖和接入范围。
Demo 视频可点击在线观看:https://github.com/HansonL622/flowpost/blob/main/demo-assets/demo.mp4
高清版备用 Release 页面:https://github.com/HansonL622/flowpost/releases/tag/demo-video-v1