🚀 用一句话点燃你的创业蓝图,让 AI 帮你把想法拆成可落地的项目框架。
输入 → 生成 → 编辑 → 展开,四步完成从灵感到路线图的可视化跃迁。
一个可视化架构图工具,输入核心想法后自动生成围绕“项目框架”展开的卡片树,支持编辑任意卡片并刷新其下文,所有卡片可折叠/展开、拖拽,并采用自上而下分层布局避免重叠。
- 输入
core-idea→ 仅生成“项目框架”节点(标题+正文短文) - 在“项目框架”下自动生成:开发计划、视觉风格、开发难点、外部资源清单、商业模式等子节点(均含标题+正文)
- 双击节点打开编辑面板,保存后自动替换旧子树并重新生成下文
- 单击节点展开/折叠正文;折叠显示摘要,展开动态增高卡片
- 分层自上而下布局,同层横向均匀分布,连线始终连接卡片中心,避免重叠
- 导出当前架构图为 Markdown 文件,包含所有节点信息(标题+正文)
- 后端:Python 3.13 + Flask + OpenAI 兼容 API(Moonshot Kimi)
- 前端:原生 JavaScript + D3.js v7
- 环境/依赖:uv 包管理器,自动创建
.venv
# 1. 克隆或进入项目目录
cd d:\BaiduSyncdisk\项目库\new_work
# 2. 初始化虚拟环境并安装依赖
uv init
uv add flask openai python-dotenv pytest
# 3. 配置 API 密钥(Windows PowerShell)
$env:LLM_API_KEY="你的密钥"
# 4. 启动服务
uv run python app.py
# 5. 打开浏览器访问
http://localhost:5000- 在顶部输入框填写 startup 核心想法,点击“项目启动”
- 页面生成“项目框架”卡片,并自动展开其下一层(开发计划/视觉风格/...)
- 双击任意卡片 → 编辑面板 → 修改正文 → 保存更新(旧子树被删除并重生)
- 单击卡片 → 折叠/展开正文;卡片高度随内容自动变化
- 拖拽卡片可手动调整位置(布局仅初始化时计算,后续拖拽自由)
GET /api/health检查密钥与 LLM 可用性POST /api/analyze_idea输入{content:string}返回{success, nodes:[{id,name,description,type,depth,expanded,content,collapsed},...], stop}POST /api/expand_node输入{content,type,depth}返回同上结构
.
├── app.py # Flask 服务与 LLM 调用
├── templates/
│ └── index.html # 页面骨架
├── static/
│ ├── main.js # D3 渲染、交互、布局
│ └── styles.css # 基础样式
├── tests/
│ └── test_api.py # pytest 用例(带 mock)
└── README.md
- 所有 LLM 提示词要求返回严格 JSON,含
nodes数组与可选stop布尔值 - 节点数据结构统一包含:
id, name, description, type, depth, expanded, content, collapsed - 前端布局采用分层自上而下算法,同层横向均匀分布,层间距动态计算
- 文本分行按卡片宽度(280px)与近似字符宽(7px)计算,防止溢出
uv run python -m pytest -qQ: 页面空白或 404?
A: 确保 templates/index.html 与 static/ 存在,且首页路由 / 已注册。
Q: 卡片重叠?
A: 刷新页面触发重新布局;手动拖拽也可临时调整。
Q: 正文不显示或溢出?
A: 检查 LLM 返回的 description 是否为空;前端已做回退(空则用 name 填充)。
Q: 如何禁用自动展开?
A: 在 main.js 的 startProject 中注释掉“自动展开项目框架子节点”的代码块即可。
- 增加“自动展开深度”开关与最大节点数限制
- 增加“思维模型”清单,提供除了“项目开发”以外的其他思维模型,与diy思维模型入口。
- 支持导出 PNG/PDF
- 引入缓存避免重复 LLM 调用
- 卡片内语法支持Markdown格式,如标题、列表、代码块等。
MIT(仅示例,可按需修改)
Happy brainstorming! 🚀