AI 内容工作台:集信息采集、价值甄选、AI 创作与发布辅助于一体。
- 后端:FastAPI + PostgreSQL(SQLAlchemy async)+ APScheduler,Python 3.11(conda env: wems)
- 前端:Next.js App Router (16.x) + Tailwind CSS + shadcn/ui,包管理器 pnpm
- AI 层:多 Provider(OpenAI / Anthropic / DeepSeek / 通义千问 / Moonshot / GLM / MiniMax / MiMo / 自定义)
- X 采集:feedgrab(Cookie 认证)
- 任务执行:PostgreSQL 持久化任务 + Redis 队列 + Next.js AI SDK worker
Ediora/
├── backend/
│ ├── main.py 应用入口(瘦版本,94 行)
│ ├── scheduler.py APScheduler 任务注册 + 节流
│ ├── models.py SQLAlchemy ORM
│ ├── database.py 数据库连接(默认 Postgres)
│ ├── config.py app_settings 键值配置(60s 缓存)
│ ├── collector.py RSS/YouTube/Reddit 通用采集
│ ├── llm.py 多 Provider LLM 调用
│ ├── x_response_service.py X 即时响应策略、幂等任务与补偿
│ ├── x_response_links.py 外链安全核验
│ ├── telegram_notifier.py Telegram Bot API 推送
│ ├── *_collector.py 站点专用采集器(juejin/kr/v2ex/wechat/x/youtube/...)
│ ├── mcp_server.py MCP streamable HTTP server
│ └── routers/ FastAPI 路由(统一 prefix=/<module>,main 处加 /api)
│
├── web/
│ ├── app/ 页面(drafts/topics/quotes/github/papers/...)
│ ├── components/
│ │ ├── features/ 业务组件(Sidebar/ArticleReader/...)
│ │ └── ui/ shadcn/ui
│ └── lib/
│ ├── api/ 各模块 API 客户端
│ ├── format.ts 共享格式化 helper(fmtRelTime/fmtNum/fmtCount/fmtShortDate/fmtFullDate)
│ ├── use-infinite-scroll.ts 共享无限滚动 hook
│ └── use-media-query.ts 媒体查询 hook
│
└── chrome-plug/ Chrome 插件
宿主机开发推荐从项目根目录使用统一脚本。先确保 Docker、conda 环境
wems、pnpm 和 redis-server(仅在本机没有可用 Redis 时需要)可从
当前 PATH 找到。首次使用时从示例创建根环境文件,并在其中配置 API 与
内容任务 worker 共用的 32 字符以上 token: