fix: 代码审查修复 — 空值保护、Firefox渐变、移动端导航、CSS变量化、NPM私服配置

- index.html: section.items空值检查(5处)、移除dead badgeStyle
- 物流网报告×3 + AI转型方案×3: 添加background-clip:text兼容Firefox
- ai-dev-workflow/v2: 移动端汉堡导航+抽屉覆盖层+返回顶部
- crmeb-deploy-plan: Markdown→HTML+新增NPM私服(Verdaccio)章节
- 需求对比分析报告: 谷歌蓝→品牌蓝, CSS变量化
- ai-dev-workflow-v2: npm私服统一指向npm.ycbat.com(上游阿里云镜像)
- CLAUDE.md/design-tokens.md: 修正UI规范与目录文档
This commit is contained in:
zdh
2026-05-31 16:43:08 +08:00
parent ddcbd3f1f2
commit a2eea31c9b
17 changed files with 10362 additions and 95 deletions
+3 -2
View File
@@ -180,9 +180,10 @@ Ant Design v5 四级圆角体系:
## 8. 主题 ## 8. 主题
全部页面(索引页 + 报告页)统一使用**亮色主题**。 - **索引页(`index.html`**:支持亮色/暗色双主题,通过 `data-theme` 属性 + localStorage 键 `wiki-theme` 持久化,同时跟随 `prefers-color-scheme: dark` 系统偏好
- **报告页(`{主题}/报告/*.html`)**:统一使用**亮色主题**,不定义暗色 CSS 变量
主题切换通过 CSS 自定义属性实现,所有颜色 Token 同时定义亮色和暗色两套值 亮色/暗色两套颜色 Token 值在 §1 中已定义,索引页 `:root``[data-theme="dark"]` 选择器分别引用
--- ---
+79 -45
View File
@@ -10,79 +10,113 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## 版本控制 ## 版本控制
根目录 `projects/` **不是 git 仓库**`招标投标AI推广应用政策解读/` 子目录有独立的 `.git/`。部署通过 `/remote-sync`rsync)完成,不走 git push 流程。 `招标投标AI推广应用政策解读/` 子目录有独立的 `.git/`。部署通过 `/remote-sync`rsync)完成,不走 git push 流程。
## 目录结构 `.gitignore` 排除了 `.superpowers/``qModel/.git/` 以及嵌套子目录的独立 `.git/`
``` ## 目录约定
projects/
├── index.html # 知识库导航页(卡片式 SPA)
├── crmeb-mer-graph-report.html # CRMEB-MER 项目图谱报告(根级)
├── .claude/
│ ├── design-tokens.md # UI 设计规范(Ant Design 阿里云风格)
│ └── skills/ # 项目级技能
│ ├── remote-sync/ # 远端部署同步
│ └── deep-research/ # 深度研究报告生成
├── .superpowers/ # Superpowers 技能框架
├── Claude Code 工程师使用指南/报告/ # Claude Code 最佳实践文档
├── Graphify 深度分析报告/代码/ # Graphify 项目代码分析
├── MySQL转PostgreSQL迁移工具/报告/ # 数据库迁移工具对比
├── 代码图谱工具调研/报告/ # 代码结构工具对比调研
├── mcp-services-guide/ # MCP 服务大全参考文档
├── 分销商城推广模式调研/报告/ # 分销推广模式调研
├── 国内商业业态分类到家/报告/ # 到家业态分类调研
├── 在线下单配送抢单小程序调研/报告/ # 配送抢单小程序调研
├── 招标投标AI推广应用政策解读/报告/ # 招标投标AI政策与省级智慧监管平台解读(独立 git 子仓库)
├── 沈阳顺义-数据-项目建设方案/ # 沈阳顺义数据项目建设方案(纯文本需求文档)
├── 交互式演示/ # 交互式 HTML 演示(如 3D 动画)
├── 全域智能认证与门户平台/报告/ # 全域智能认证平台需求分析
└── 金鹿商城电商小程序需求分析/报告/ # 金鹿商城电商小程序需求分析文档
```
每个子目录遵循 `{主题}/{类型}/` 的层级结构,类型包括 `报告/``代码/``笔记/` 等。新增主题目录时保持此约定。 每个子目录遵循 `{主题}/{类型}/` 的层级结构,类型包括 `报告/``代码/``笔记/` 等。新增主题目录时保持此约定。
**例外情况**
- `crmeb-mer-graph-report.html` — 位于根目录的单文件报告,不走子目录结构
- `mcp-services-guide/` — 有独立的 `index.html`,自成一体的子站,不遵循 `报告/` 子目录模式
- `交互式演示/` — 存放交互式前端 demo(如正四面体 3D 动画),非报告页
- `中医馆内部管理系统/报告/` 下有 `.md` 需求文档,是唯一在 `报告/` 目录下出现非 HTML 文件的情况(其他 `.md` 文件如 `研发型企业AI转型方案/section-*.md``政府审批流解决方案/*.md``YqBoot系统说明书/*.md` 位于主题根目录,属规划/源文件,不走报告页模板)
- `研发型企业AI转型方案/``.md` 分段规划文件 + `.pptx`/`.xlsx` 源材料位于主题根目录,HTML 报告在 `报告/` 子目录
- `政府审批流解决方案/``.md``.html` 并存于主题根目录(非 `报告/` 下)
- `YqBoot系统说明书/``.md``.html` 并存于主题根目录,另有 `screenshots/` 子目录
## 构建与开发 ## 构建与开发
本项目是**纯静态 HTML/CSS/JS 文档站**,无构建步骤、无依赖管理、无测试框架。 本项目是**纯静态 HTML/CSS/JS 文档站**,无构建步骤、无依赖管理、无测试框架。
- **查看页面**:直接在浏览器中打开 `index.html` 或任意 HTML 文件 - **查看页面**:直接在浏览器中打开 `index.html` 或任意 HTML 文件
- **新增文档**:创建 HTML 文件 → 更新 `index.html``entries` 数组 → 如需新分组则同步更新 `groups``badgeLabels` - **新增文档**:创建 HTML 文件 → 更新 `index.html``wikiData` 数组(见下文)
- **部署到远端**:调用 `/remote-sync` 将指定目录增量同步到服务器 `39.100.114.100:/data` - **部署到远端**:调用 `/remote-sync` 将指定目录增量同步到服务器
- **更新图谱**:修改代码后运行 `graphify-rs build --path . --output graphify-out --no-llm --update` - **更新图谱**:修改代码后运行 `graphify-rs build --path . --output graphify-out --no-llm --update`
## 索引页 ## 索引页index.html
`index.html` 是纯 HTML/CSS/JS 单文件页面,无构建步骤,直接在浏览器打开即可访问 `index.html` 是纯 HTML/CSS/JS 单文件 SPA,包含侧栏导航、搜索、暗色模式切换、移动端抽屉菜单
- 文档条目通过 `entries` 数组管理(约 `index.html:234` 附近,因修改可能偏移) ### wikiData 数据结构
- 新增文档时需同步向 `entries` 数组添加条目,格式:`["相对路径", "标题", "描述", "日期", "颜色"]`
- 颜色可选:`blue`(工程指南)、`pink`(深度分析)、`mint`(调研研究)、`lavender`(参考资源) 文档条目通过 `wikiData` 数组管理(在 `<script>` 标签内),按分类分组,每个分类是一个对象:
- 分组在 `groups` 数组定义(约 `index.html:307` 附近),通过 `filter` 函数按颜色匹配
- badge 标签在 `badgeLabels` 对象定义(约 `index.html:314` 附近),新增颜色需同步更新此处 ```js
- 页面包含筛选栏(filter-bar)、卡片网格展示、响应式布局(≤768px 隐藏侧栏) { dir: "分类名称", icon: "🔐", desc: "分类描述", color: "pink",
items: [
{ path: "相对路径/文件.html", title: "文档标题", desc: "文档描述", date: "2026-05-08" }
]}
```
**新增文档**:在对应分类的 `items` 数组中添加条目。如果分类不存在,新建一个分类对象。
**颜色映射**`wikiData``color` 字段与 `badgeStyle` 对象的语义约定):
- `pink` — 深度分析、政策解读
- `blue` — 工程指南、数据平台
- `mint` — 调研研究、商业分析
- `lavender` — 参考资源、AI 工具
`badgeStyle` 对象已定义对应 CSS 样式(约 `index.html:391`),当前渲染函数未直接渲染 badge,但保留供未来扩展。新增分类时仍需选择语义匹配的颜色并确保 `badgeStyle` 中有对应键。
### 页面特性
- 侧栏导航(桌面端)+ 抽屉导航(移动端 ≤768px)
- 实时搜索(按标题、描述、分类名匹配)
- 暗色/亮色模式切换(localStorage 持久化)
- 响应式布局:≤768px 隐藏侧栏,显示移动端 chip 筛选栏
### JS 运行时架构
`<script>` 块中的数据流与状态管理:
```
wikiData (声明式) → allItems (展开数组, 附加 section/icon) → 视图渲染
```
| 变量/函数 | 作用 |
|-----------|------|
| `wikiData` | 源数据:按分类分组的文档条目数组 |
| `allItems` | `wikiData` 展开后的扁平数组,每个条目附加 `section`(分类名)和 `icon` 属性 |
| `currentView` | 当前视图状态:`'all'` 或某个分类的 `dir` 值 |
| `searchQuery` | 搜索框绑定值,实时过滤 |
| `render()` | 分发函数:`currentView === 'all'` 时调用 `renderAllView(main)`,否则 `renderSectionView(main)` |
| `buildNav(targetEl)` | 构建侧栏/抽屉导航 HTML,绑定点击事件切换视图 |
| `buildChips()` | 构建移动端 chip 筛选栏 |
| `setTheme(t)` | 主题切换:设置 `data-theme` 属性 + localStorage 键 `wiki-theme`,同时尊重 `prefers-color-scheme: dark` 系统偏好 |
## 报告页模板 ## 报告页模板
所有报告页(`{主题}/报告/*.html`)遵循统一的 HTML 模板结构: 所有报告页(`{主题}/报告/*.html`)遵循统一的 HTML 模板结构:
1. 复用 `index.html` 中的 CSS `:root` 设计 Token 块 1. `:root` 块复制 CSS 设计 Token(含品牌色、功能色、中性色、圆角、阴影等变量)
2. 固定 header-barsticky top,品牌标题渐变) 2. 固定 header-barsticky top,品牌标题渐变 `linear-gradient(135deg, #1677FF, #722ED1)`
3. 单列容器布局,`max-width: 1200px` 居中 3. 单列容器布局,`max-width: 1200px` 居中
4. Markdown 内容通过内联 HTML 渲染(表格、代码块、列表) 4. Markdown 内容通过内联 HTML 渲染(表格、代码块、列表)
5. 语言属性 `lang="zh-CN"` 5. 语言属性 `lang="zh-CN"`
创建新报告页时可参考任意现有报告页的 HTML 结构作为模板。 创建新报告页时,复制任意现有报告页的 `:root` 和 header 结构作为模板。
**报告页有两种变体**
1. **基础版**(大多数报告):固定 header-bar + 单列内容区,结构最简单
2. **侧栏导航版**(物流网系列报告):左侧 260px 粘性导航菜单 + 右侧内容区,适合多章节长报告。标题带 `[章节名]` 便于搜索跳转
移动端(≤768px)侧栏导航版自动隐藏菜单,显示汉堡按钮触发抽屉导航。
**手机适配版**:部分报告有 `_mobile.html` 后缀的独立手机版(卡片式折叠布局 + 底部标签导航),如 `中医馆内部管理系统_需求分析对比报告_mobile.html`
## UI 设计规范 ## UI 设计规范
所有页面(索引页 + 报告页)遵循 `.claude/design-tokens.md` 中的 Ant Design 阿里云风格设计规范。关键约束: 所有页面遵循 `.claude/design-tokens.md` 中的 Ant Design 阿里云风格设计规范。关键约束:
- **配色方案**:品牌色 `#1677FF`,功能色(成功 `#52C41A`、警告 `#FAAD14`、错误 `#FF4D4F` - **配色方案**:品牌色 `#1677FF`,功能色(成功 `#52C41A`、警告 `#FAAD14`、错误 `#FF4D4F`
- **字体规范**:基准字号 14px,行高 22px,字体族使用系统默认 + 中文字体回退 - **字体规范**:基准字号 14px,行高 22px,字体族使用系统默认 + 中文字体回退
- **圆角体系**`2px / 6px / 8px / 12px` 四级 - **圆角体系**`2px / 6px / 8px / 12px` 四级
- **间距基准**8px 单位 - **间距基准**8px 单位
- **主题**全部页面统一使用亮色主题 - **主题**`index.html` 支持亮色/暗色切换(通过 `data-theme` 属性 + localStorage 持久化);报告页统一使用亮色主题,不定义暗色变量。注意 `design-tokens.md` §8 声称"全部页面统一使用亮色主题"与实际不符——索引页的暗色模式是刻意设计,`design-tokens.md` 此处有误
创建新 HTML 页面时应直接复用 `index.html` 中的 CSS 变量(`:root` 块),不要重新定义颜色值。完整规范详见 `.claude/design-tokens.md` 创建新 HTML 页面时应直接复用 `:root` CSS 变量块,不要重新定义颜色值。完整规范详见 `.claude/design-tokens.md`
## Graphify 知识图谱 ## Graphify 知识图谱
@@ -99,7 +133,7 @@ projects/
| 技能 | 说明 | 触发方式 | | 技能 | 说明 | 触发方式 |
|------|------|---------| |------|------|---------|
| `remote-sync` | rsync 增量同步到远端服务器 `39.100.114.100:/data`,自动排除 `node_modules`/`.git` | `/remote-sync` 手动调用 | | `remote-sync` | rsync 增量同步到远端服务器,自动排除 `node_modules`/`.git` | `/remote-sync` 手动调用 |
| `deep-research` | 生成格式控制的研究报,含证据追踪引用 | `/deep-research` 手动调用 | | `deep-research` | 生成格式控制的研究报,含证据追踪引用治理和多轮综合 | `/deep-research` 手动调用 |
`deep-research` 技能包含大量参考资料和调研笔记`.claude/skills/deep-research/references/``research-notes/`),执行深度研究时会用到。 `deep-research` 技能包含参考资料(`.claude/skills/deep-research/references/`)和调研笔记(`research-notes/`),执行深度研究时会用到。
+9 -10
View File
@@ -355,7 +355,10 @@ const wikiData = [
{ path: "graphify-rs使用手册/报告/graphify-rs-usage-guide.html", title: "graphify-rs 使用手册", desc: "代码知识图谱工具完整使用指南,含安装、构建、查询、集成", date: "2026-05-08" }, { path: "graphify-rs使用手册/报告/graphify-rs-usage-guide.html", title: "graphify-rs 使用手册", desc: "代码知识图谱工具完整使用指南,含安装、构建、查询、集成", date: "2026-05-08" },
{ path: "Graphify 深度分析报告/代码/graphify-analysis.html", title: "Graphify 代码分析", desc: "Graphify 项目的代码结构、质量指标与重构建议", date: "2026-04-29" }, { path: "Graphify 深度分析报告/代码/graphify-analysis.html", title: "Graphify 代码分析", desc: "Graphify 项目的代码结构、质量指标与重构建议", date: "2026-04-29" },
{ path: "代码图谱工具调研/报告/code-structure-tools-analysis.html", title: "代码图谱工具调研", desc: "主流代码结构与可视化工具的横向对比分析", date: "2026-04-29" }, { path: "代码图谱工具调研/报告/code-structure-tools-analysis.html", title: "代码图谱工具调研", desc: "主流代码结构与可视化工具的横向对比分析", date: "2026-04-29" },
{ path: "mcp-services-guide/index.html", title: "MCP 服务大全", desc: "适合开发者使用的 MCP 服务大全,含功能对比与快速开始指南", date: "2026-04-29" } { path: "mcp-services-guide/index.html", title: "MCP 服务大全", desc: "适合开发者使用的 MCP 服务大全,含功能对比与快速开始指南", date: "2026-04-29" },
{ path: "研发型企业AI转型方案/报告/ai-transformation-plan.html", title: "研发型企业 AI 转型方案", desc: "三大篇章:AI工具全景图(7大类30+工具)+ 分级培训方案(入门→中级→进阶)+ AI增强售前交付方法论,含投入产出分析", date: "2026-05-30" },
{ path: "研发型企业AI转型方案/报告/ai-dev-workflow.html", title: "AI 驱动开发流程:多模型协同工作流", desc: "Claude Code主力Agent + DeepSeek/Qwen分级调度 + open-code-review质量门禁 + 企业知识库RAG + 个人记忆系统,含12周落地路线图与ROI量化分析", date: "2026-05-30" },
{ path: "研发型企业AI转型方案/报告/ai-dev-workflow-v2.html", title: "AI 开发流程 V2.0:新项目脚手架驱动 + 老项目维护双轨制", desc: "两套完整工作流:新项目以脚手架为基础全量生成(70-90%AI占比),老项目以代码考古驱动增量修改(小步提交≤200行diff),含实操案例与完整Prompt", date: "2026-05-31" }
]}, ]},
{ dir: "政务与行业", icon: "🏛", desc: "政府招投标、智慧监管、政策解读", color: "pink", { dir: "政务与行业", icon: "🏛", desc: "政府招投标、智慧监管、政策解读", color: "pink",
items: [ items: [
@@ -380,18 +383,11 @@ const wikiData = [
]; ];
const allItems = []; const allItems = [];
for (const s of wikiData) { for (const item of s.items) { allItems.push(Object.assign({}, item, { section: s.dir, icon: s.icon })); } } for (const s of wikiData) { if (s.items) { for (const item of s.items) { allItems.push(Object.assign({}, item, { section: s.dir, icon: s.icon })); } } }
let currentView = 'all'; let currentView = 'all';
let searchQuery = ''; let searchQuery = '';
const badgeStyle = {
pink: 'background:#FFF0F6;color:#EB2F96;border:1px solid #FFADD2',
blue: 'background:#E6F4FF;color:#1677FF;border:1px solid #91CAFF',
mint: 'background:#F6FFED;color:#52C41A;border:1px solid #B7EB8F',
lavender: 'background:#F9F0FF;color:#722ED1;border:1px solid #D3ADF7'
};
var drawerEl = document.getElementById('drawerOverlay'); var drawerEl = document.getElementById('drawerOverlay');
document.getElementById('menuBtn').addEventListener('click', function() { drawerEl.classList.add('show'); }); document.getElementById('menuBtn').addEventListener('click', function() { drawerEl.classList.add('show'); });
document.getElementById('drawerClose').addEventListener('click', function() { drawerEl.classList.remove('show'); }); document.getElementById('drawerClose').addEventListener('click', function() { drawerEl.classList.remove('show'); });
@@ -402,6 +398,7 @@ function buildNav(targetEl) {
html += '<a class="nav-item' + (currentView === 'all' ? ' active' : '') + '" href="#" data-view="all"><span class="nav-icon">&#x1F3E0;</span><span>全部文档</span><span class="nav-count">' + allItems.length + '</span></a>'; html += '<a class="nav-item' + (currentView === 'all' ? ' active' : '') + '" href="#" data-view="all"><span class="nav-icon">&#x1F3E0;</span><span>全部文档</span><span class="nav-count">' + allItems.length + '</span></a>';
html += '</div>'; html += '</div>';
for (const section of wikiData) { for (const section of wikiData) {
if (!section.items) continue;
html += '<div class="nav-section"><div class="nav-section-title">' + section.desc + '</div>'; html += '<div class="nav-section"><div class="nav-section-title">' + section.desc + '</div>';
html += '<a class="nav-item' + (currentView === section.dir ? ' active' : '') + '" href="#" data-view="' + section.dir + '"><span class="nav-icon">' + section.icon + '</span><span>' + section.dir + '</span><span class="nav-count">' + section.items.length + '</span></a>'; html += '<a class="nav-item' + (currentView === section.dir ? ' active' : '') + '" href="#" data-view="' + section.dir + '"><span class="nav-icon">' + section.icon + '</span><span>' + section.dir + '</span><span class="nav-count">' + section.items.length + '</span></a>';
html += '<div class="sub-nav' + (currentView === section.dir ? ' open' : '') + '">'; html += '<div class="sub-nav' + (currentView === section.dir ? ' open' : '') + '">';
@@ -420,6 +417,7 @@ function buildChips() {
var bar = document.getElementById('chipBar'); var bar = document.getElementById('chipBar');
var html = '<span class="chip' + (currentView === 'all' ? ' active' : '') + '" data-view="all">全部<span class="chip-count">' + allItems.length + '</span></span>'; var html = '<span class="chip' + (currentView === 'all' ? ' active' : '') + '" data-view="all">全部<span class="chip-count">' + allItems.length + '</span></span>';
for (const section of wikiData) { for (const section of wikiData) {
if (!section.items) continue;
html += '<span class="chip' + (currentView === section.dir ? ' active' : '') + '" data-view="' + section.dir + '">' + section.icon + ' ' + section.dir + '<span class="chip-count">' + section.items.length + '</span></span>'; html += '<span class="chip' + (currentView === section.dir ? ' active' : '') + '" data-view="' + section.dir + '">' + section.icon + ' ' + section.dir + '<span class="chip-count">' + section.items.length + '</span></span>';
} }
bar.innerHTML = html; bar.innerHTML = html;
@@ -447,6 +445,7 @@ function renderAllView(main) {
html += '<div class="stat-item"><span class="stat-num">' + filtered.length + '</span><span class="stat-label">' + (searchQuery ? '搜索结果' : '当前展示') + '</span></div>'; html += '<div class="stat-item"><span class="stat-num">' + filtered.length + '</span><span class="stat-label">' + (searchQuery ? '搜索结果' : '当前展示') + '</span></div>';
html += '</div>'; html += '</div>';
for (const section of wikiData) { for (const section of wikiData) {
if (!section.items) continue;
const items = searchQuery ? filtered.filter(function(i){ return i.section === section.dir; }) : section.items; const items = searchQuery ? filtered.filter(function(i){ return i.section === section.dir; }) : section.items;
if (!items.length) continue; if (!items.length) continue;
html += '<div class="wiki-section"><div class="wiki-section-title">' + section.icon + ' ' + section.dir + '</div>'; html += '<div class="wiki-section"><div class="wiki-section-title">' + section.icon + ' ' + section.dir + '</div>';
@@ -466,7 +465,7 @@ function renderAllView(main) {
function renderSectionView(main) { function renderSectionView(main) {
var section = wikiData.find(function(s){ return s.dir === currentView; }); var section = wikiData.find(function(s){ return s.dir === currentView; });
if (!section) return; if (!section || !section.items) return;
var filtered = searchQuery ? section.items.filter(function(i) { return i.title.toLowerCase().indexOf(searchQuery) !== -1 || i.desc.toLowerCase().indexOf(searchQuery) !== -1; }) : section.items; var filtered = searchQuery ? section.items.filter(function(i) { return i.title.toLowerCase().indexOf(searchQuery) !== -1 || i.desc.toLowerCase().indexOf(searchQuery) !== -1; }) : section.items;
var html = '<div class="breadcrumb"><a href="#" data-breadcrumb="all">Wiki 知识库</a><span class="sep">/</span><span>' + section.icon + ' ' + section.dir + '</span></div>'; var html = '<div class="breadcrumb"><a href="#" data-breadcrumb="all">Wiki 知识库</a><span class="sep">/</span><span>' + section.icon + ' ' + section.dir + '</span></div>';
html += '<div class="wiki-section"><div class="wiki-section-title">' + section.icon + ' ' + section.dir + '</div>'; html += '<div class="wiki-section"><div class="wiki-section-title">' + section.icon + ' ' + section.dir + '</div>';
@@ -76,8 +76,9 @@
font-weight: 700; font-weight: 700;
background: linear-gradient(135deg, var(--color-primary), #722ED1); background: linear-gradient(135deg, var(--color-primary), #722ED1);
-webkit-background-clip: text; -webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
} }
.header .back-link { .header .back-link {
margin-right: 16px; margin-right: 16px;
@@ -24,7 +24,7 @@
::-webkit-scrollbar-track{background:transparent;} ::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;} ::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:rgba(255,255,255,0.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:0 2rem;z-index:100;} .header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:rgba(255,255,255,0.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:0 2rem;z-index:100;}
.header h1{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--color-primary),#722ED1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;} .header h1{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--color-primary),#722ED1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.header .back-link{margin-right:16px;font-size:13px;color:var(--color-primary);text-decoration:none;flex-shrink:0;} .header .back-link{margin-right:16px;font-size:13px;color:var(--color-primary);text-decoration:none;flex-shrink:0;}
.header .version{margin-left:auto;font-size:12px;color:var(--text-tertiary);font-family:'SF Mono',Monaco,monospace;} .header .version{margin-left:auto;font-size:12px;color:var(--text-tertiary);font-family:'SF Mono',Monaco,monospace;}
.sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-container);border-right:1px solid var(--border);overflow-y:auto;padding:1.25rem 0;z-index:90;} .sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-container);border-right:1px solid var(--border);overflow-y:auto;padding:1.25rem 0;z-index:90;}
@@ -24,7 +24,7 @@
::-webkit-scrollbar-track{background:transparent;} ::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;} ::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:rgba(255,255,255,0.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:0 2rem;z-index:100;} .header{position:fixed;top:0;left:0;right:0;height:var(--header-h);background:rgba(255,255,255,0.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);display:flex;align-items:center;padding:0 2rem;z-index:100;}
.header h1{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--color-primary),#722ED1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;} .header h1{font-size:18px;font-weight:700;background:linear-gradient(135deg,var(--color-primary),#722ED1);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.header .back-link{margin-right:16px;font-size:13px;color:var(--color-primary);text-decoration:none;flex-shrink:0;} .header .back-link{margin-right:16px;font-size:13px;color:var(--color-primary);text-decoration:none;flex-shrink:0;}
.header .version{margin-left:auto;font-size:12px;color:var(--text-tertiary);font-family:'SF Mono',Monaco,monospace;} .header .version{margin-left:auto;font-size:12px;color:var(--text-tertiary);font-family:'SF Mono',Monaco,monospace;}
.sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-container);border-right:1px solid var(--border);overflow-y:auto;padding:1.25rem 0;z-index:90;} .sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-container);border-right:1px solid var(--border);overflow-y:auto;padding:1.25rem 0;z-index:90;}
@@ -5,53 +5,65 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>需求文档 vs 系统实际功能 对比分析报告</title> <title>需求文档 vs 系统实际功能 对比分析报告</title>
<style> <style>
:root {
--color-primary: #1677FF; --color-primary-hover: #4096FF; --color-primary-active: #0958D9; --color-primary-bg: #E6F4FF;
--color-success: #52C41A; --color-success-bg: #F6FFED; --color-success-border: #B7EB8F;
--color-warning: #FAAD14; --color-warning-bg: #FFFBE6; --color-warning-border: #FFE58F;
--color-error: #FF4D4F; --color-error-bg: #FFF2F0; --color-error-border: #FFCCC7;
--bg: #F5F5F5; --bg-container: #FFFFFF; --bg-elevated: #FAFAFA;
--border: #D9D9D9; --border-light: #F0F0F0;
--text-primary: #141414; --text-secondary: #595959; --text-tertiary: #8C8C8C;
--radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 1px 6px -1px rgba(0,0,0,0.02);
--shadow-md: 0 2px 4px rgba(0,0,0,0.04), 0 4px 12px -2px rgba(0,0,0,0.04);
}
* { margin: 0; padding: 0; box-sizing: border-box; } * { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, "Microsoft YaHei", "PingFang SC", sans-serif; background: #f0f2f5; color: #333; line-height: 1.8; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif; background: var(--bg); color: var(--text-primary); line-height: 1.8; font-size: 14px; }
.container { max-width: 1200px; margin: 0 auto; padding: 20px; } .container { max-width: 1200px; margin: 0 auto; padding: 20px; }
.header { background: linear-gradient(135deg, #1a73e8, #0d47a1); color: #fff; padding: 40px; border-radius: 12px; margin-bottom: 30px; text-align: center; } .header { background: linear-gradient(135deg, var(--color-primary), #722ED1); color: #fff; padding: 40px; border-radius: var(--radius-lg); margin-bottom: 30px; text-align: center; }
.header h1 { font-size: 28px; margin-bottom: 10px; } .header h1 { font-size: 28px; margin-bottom: 10px; }
.header p { font-size: 14px; opacity: 0.85; } .header p { font-size: 14px; opacity: 0.85; }
.summary-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 30px; } .summary-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 30px; }
.card { background: #fff; border-radius: 10px; padding: 24px; text-align: center; box-shadow: 0 2px 8px rgba(0,0,0,0.08); } .card { background: var(--bg-container); border-radius: var(--radius-md); padding: 24px; text-align: center; box-shadow: var(--shadow-sm); border: 1px solid var(--border-light); }
.card .number { font-size: 36px; font-weight: 700; margin: 8px 0; } .card .number { font-size: 36px; font-weight: 700; margin: 8px 0; }
.card .label { font-size: 14px; color: #666; } .card .label { font-size: 14px; color: var(--text-secondary); }
.card.match .number { color: #52c41a; } .card.match .number { color: var(--color-success); }
.card.exceed .number { color: #1890ff; } .card.exceed .number { color: var(--color-primary); }
.card.missing .number { color: #ff4d4f; } .card.missing .number { color: var(--color-error); }
.card.partial .number { color: #faad14; } .card.partial .number { color: var(--color-warning); }
.section { background: #fff; border-radius: 10px; margin-bottom: 20px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); overflow: hidden; } .section { background: var(--bg-container); border-radius: var(--radius-md); margin-bottom: 20px; box-shadow: var(--shadow-sm); border: 1px solid var(--border-light); overflow: hidden; }
.section-header { padding: 16px 24px; font-size: 18px; font-weight: 600; border-bottom: 1px solid #f0f0f0; display: flex; align-items: center; gap: 10px; } .section-header { padding: 16px 24px; font-size: 18px; font-weight: 600; border-bottom: 1px solid var(--border-light); display: flex; align-items: center; gap: 10px; }
.section-header .icon { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 16px; color: #fff; } .section-header .icon { width: 28px; height: 28px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 16px; color: #fff; }
.section-header .icon.green { background: #52c41a; } .section-header .icon.green { background: var(--color-success); }
.section-header .icon.blue { background: #1890ff; } .section-header .icon.blue { background: var(--color-primary); }
.section-header .icon.red { background: #ff4d4f; } .section-header .icon.red { background: var(--color-error); }
.section-header .icon.orange { background: #faad14; } .section-header .icon.orange { background: var(--color-warning); }
table { width: 100%; border-collapse: collapse; } table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #f0f0f0; font-size: 14px; } th, td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--border-light); font-size: 14px; }
th { background: #fafafa; font-weight: 600; color: #555; white-space: nowrap; } th { background: var(--bg-elevated); font-weight: 600; color: var(--text-secondary); white-space: nowrap; }
td:first-child { white-space: nowrap; } td:first-child { white-space: nowrap; }
tr:hover td { background: #f8faff; } tr:hover td { background: var(--color-primary-bg); }
.badge { display: inline-block; padding: 2px 10px; border-radius: 12px; font-size: 12px; font-weight: 500; white-space: nowrap; } .badge { display: inline-block; padding: 2px 10px; border-radius: 12px; font-size: 12px; font-weight: 500; white-space: nowrap; }
.badge.match { background: #f6ffed; color: #52c41a; border: 1px solid #b7eb8f; } .badge.match { background: var(--color-success-bg); color: var(--color-success); border: 1px solid var(--color-success-border); }
.badge.exceed { background: #e6f7ff; color: #1890ff; border: 1px solid #91d5ff; } .badge.exceed { background: var(--color-primary-bg); color: var(--color-primary); border: 1px solid #91CAFF; }
.badge.missing { background: #fff1f0; color: #ff4d4f; border: 1px solid #ffa39e; } .badge.missing { background: var(--color-error-bg); color: var(--color-error); border: 1px solid var(--color-error-border); }
.badge.partial { background: #fffbe6; color: #faad14; border: 1px solid #ffe58f; } .badge.partial { background: var(--color-warning-bg); color: var(--color-warning); border: 1px solid var(--color-warning-border); }
.badge.not-needed { background: #f5f5f5; color: #999; border: 1px solid #d9d9d9; } .badge.not-needed { background: var(--bg-elevated); color: var(--text-tertiary); border: 1px solid var(--border); }
.note { background: #fffbe6; border: 1px solid #ffe58f; border-radius: 8px; padding: 12px 16px; margin: 12px 16px; font-size: 13px; color: #8c6d1f; } .note { background: var(--color-warning-bg); border: 1px solid var(--color-warning-border); border-radius: var(--radius-md); padding: 12px 16px; margin: 12px 16px; font-size: 13px; color: #8c6d1f; }
.note.red { background: #fff1f0; border-color: #ffa39e; color: #a83232; } .note.red { background: var(--color-error-bg); border-color: var(--color-error-border); color: #a83232; }
.note.blue { background: #e6f7ff; border-color: #91d5ff; color: #096dd9; } .note.blue { background: var(--color-primary-bg); border-color: #91CAFF; color: #096dd9; }
.progress-bar { background: #f0f0f0; border-radius: 10px; height: 20px; overflow: hidden; margin: 8px 0; } .progress-bar { background: var(--border-light); border-radius: 10px; height: 20px; overflow: hidden; margin: 8px 0; }
.progress-bar .fill { height: 100%; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 600; min-width: 40px; } .progress-bar .fill { height: 100%; border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 12px; font-weight: 600; min-width: 40px; }
.fill.green { background: linear-gradient(90deg, #52c41a, #73d13d); } .fill.green { background: linear-gradient(90deg, var(--color-success), #73d13d); }
.fill.blue { background: linear-gradient(90deg, #1890ff, #40a9ff); } .fill.blue { background: linear-gradient(90deg, var(--color-primary), #40a9ff); }
.fill.orange { background: linear-gradient(90deg, #faad14, #ffc53d); } .fill.orange { background: linear-gradient(90deg, var(--color-warning), #ffc53d); }
.fill.red { background: linear-gradient(90deg, #ff4d4f, #ff7875); } .fill.red { background: linear-gradient(90deg, var(--color-error), #ff7875); }
.detail-text { font-size: 13px; color: #888; max-width: 300px; } .detail-text { font-size: 13px; color: var(--text-tertiary); max-width: 300px; }
.toc { background: #fff; border-radius: 10px; padding: 24px; margin-bottom: 30px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); } .toc { background: var(--bg-container); border-radius: var(--radius-md); padding: 24px; margin-bottom: 30px; box-shadow: var(--shadow-sm); border: 1px solid var(--border-light); }
.toc h3 { margin-bottom: 12px; font-size: 16px; } .toc h3 { margin-bottom: 12px; font-size: 16px; }
.toc a { display: block; padding: 4px 0; color: #1a73e8; text-decoration: none; font-size: 14px; } .toc a { display: block; padding: 4px 0; color: var(--color-primary); text-decoration: none; font-size: 14px; }
.toc a:hover { text-decoration: underline; } .toc a:hover { text-decoration: underline; }
.footer { text-align: center; padding: 20px; color: #999; font-size: 12px; } .footer { text-align: center; padding: 20px; color: var(--text-tertiary); font-size: 12px; }
@media (max-width: 768px) { .summary-cards { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .summary-cards { grid-template-columns: repeat(2, 1fr); } }
</style> </style>
</head> </head>
Binary file not shown.
@@ -0,0 +1,712 @@
# AI 工具全景图与角色赋能矩阵
> **编制单位**:上海电气集团数字科技有限公司 · 大客户及解决方案中心
> **编制日期**2026年5月
> **适用对象**:客户运营、数智应用、智慧企业、智能制造四个团队
> **时间基准**2025-2026年市场数据
---
## 目录
- [第一部分:AI 工具全景图](#第一部分ai-工具全景图)
- [1.1 通用大模型对话](#11-通用大模型对话)
- [1.2 代码辅助](#12-代码辅助)
- [1.3 文档与知识管理](#13-文档与知识管理)
- [1.4 数据分析](#14-数据分析)
- [1.5 设计与可视化](#15-设计与可视化)
- [1.6 自动化与工作流](#16-自动化与工作流)
- [1.7 垂直领域](#17-垂直领域)
- [第二部分:角色×工作内容×AI工具 赋能矩阵](#第二部分角色工作内容ai工具-赋能矩阵)
- [2.1 售前顾问](#21-售前顾问)
- [2.2 项目经理](#22-项目经理)
- [2.3 应用顾问](#23-应用顾问)
- [2.4 开发顾问](#24-开发顾问)
- [第三部分:推荐技术栈组合](#第三部分推荐技术栈组合)
- [3.1 🟢 轻量级组合](#31--轻量级组合人均--500元月)
- [3.2 🟡 标准级组合](#32--标准级组合人均-500-1500元月)
- [3.3 🔴 专业级组合](#33--专业级组合人均-1500-3000元月)
---
## 第一部分:AI 工具全景图
### 1.1 通用大模型对话
#### ① DeepSeek
| 维度 | 内容 |
|------|------|
| **所属公司** | 深度求索(DeepSeek |
| **擅长领域** | 深度推理、代码生成、数学分析、长文本理解 |
| **优点** | ① 推理能力在国产模型中处于第一梯队 ② 完全免费或极低成本 ③ 国内直连无访问障碍 |
| **缺点** | ① 多模态能力相对较弱 ② 企业级产品生态尚在建设中 |
| **适用场景** | 技术问题分析、方案初稿生成、代码审查辅助、复杂逻辑推理 |
| **私有化部署** | ✅ 开源模型可私有化部署(DeepSeek-V3/R1),硬件要求较高 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ② 通义千问(Qwen
| 维度 | 内容 |
|------|------|
| **所属公司** | 阿里巴巴 |
| **擅长领域** | 超长文本处理(100万+ tokens)、办公场景集成、中文理解 |
| **优点** | ① 百万级上下文窗口适合长文档分析 ② 与阿里云生态深度整合 ③ 企业级API稳定 |
| **缺点** | ① 部分场景输出风格偏模板化 ② 国际模型对比中代码能力略逊于 Claude |
| **适用场景** | 招标文件全文解读、长报告摘要、方案文档起草、知识库问答 |
| **私有化部署** | ✅ 开源模型(Qwen3系列)可本地部署,也可通过阿里云百炼平台调用 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ③ ChatGPTGPT-5 系列)
| 维度 | 内容 |
|------|------|
| **所属公司** | OpenAI |
| **擅长领域** | 全能型对话、多模态理解、复杂推理、创意生成 |
| **优点** | ① 综合能力全球最强之一 ② 插件与工具生态丰富(GPTs、联网搜索、代码执行) ③ 多模态能力突出(图片/语音/视频理解) |
| **缺点** | ① 国内访问需特殊网络或API中转 ② 价格较高(Plus $20/月,Pro $200/月) |
| **适用场景** | 高端方案创意、国际化项目交付、竞品分析、复杂问题研究 |
| **私有化部署** | ❌ 无开源版本,仅可通过API或企业版使用 |
| **推荐指数** | ⭐⭐⭐⭐(国内可用性扣分) |
#### ④ ClaudeClaude 4 系列)
| 维度 | 内容 |
|------|------|
| **所属公司** | Anthropic |
| **擅长领域** | 长文本理解与分析、代码辅助、逻辑推理、文档撰写 |
| **优点** | ① 超长上下文(200K tokens),长文档分析能力出色 ② 写作质量高,"人性化"表达自然 ③ 代码理解与分析能力强 |
| **缺点** | ① 国内直接访问受限 ② 中文生态工具集成不如国产模型丰富 |
| **适用场景** | 复杂方案撰写、技术架构分析、代码审查、深度研究报告 |
| **私有化部署** | ❌ 无开源版本,仅可通过API调用(可通过AWS Bedrock/Google Vertex AI |
| **推荐指数** | ⭐⭐⭐⭐(国内可用性扣分) |
#### ⑤ Kimi
| 维度 | 内容 |
|------|------|
| **所属公司** | 月之暗面(Moonshot AI |
| **擅长领域** | 超长文本处理、快速信息检索、多模态理解 |
| **优点** | ① 超长上下文处理稳定 ② 国内直连,响应速度快 ③ 联网搜索能力优秀 |
| **缺点** | ① 复杂推理能力与顶级模型有差距 ② API生态不如通义千问丰富 |
| **适用场景** | 竞品调研报告、政策法规梳理、长文档快速摘要、日常知识问答 |
| **私有化部署** | ❌ 暂无开源版本 |
| **推荐指数** | ⭐⭐⭐⭐ |
---
### 1.2 代码辅助
#### ① GitHub Copilot
| 维度 | 内容 |
|------|------|
| **所属公司** | GitHub(微软) |
| **擅长领域** | 代码自动补全、Chat问答、代码审查、Agent模式 |
| **优点** | ① IDE集成最成熟(VS Code/JetBrains等全系支持) ② 生态最丰富(180万+企业用户) ③ 性价比高($10/月个人版) |
| **缺点** | ① 国内网络访问可能不稳定 ② 对中文注释/业务语境理解不如国产工具 |
| **适用场景** | 日常编码补全、单元测试生成、代码审查、Bug修复建议 |
| **私有化部署** | ❌ 无本地部署;GitHub Copilot Enterprise 提供企业级安全管控 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ② Cursor
| 维度 | 内容 |
|------|------|
| **所属公司** | Anysphere |
| **擅长领域** | AI原生IDE、多文件编辑、代码库全局理解、Agent编码 |
| **优点** | ① 全代码库理解能力强,跨文件修改准确 ② Agent模式可端到端完成复杂开发任务 ③ 支持自定义模型接入 |
| **缺点** | ① 费用较高(Pro $20/月) ② 国内访问需特殊网络 |
| **适用场景** | 大型项目重构、跨模块功能开发、代码架构理解、快速原型开发 |
| **私有化部署** | ❌ 无本地部署选项 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ③ 通义灵码
| 维度 | 内容 |
|------|------|
| **所属公司** | 阿里巴巴 |
| **擅长领域** | 中文代码补全、企业级Java开发、JetBrains全系列IDE支持 |
| **优点** | ① 个人基础版完全免费 ② 中文业务语境理解优秀 ③ 企业版支持数据安全合规 |
| **缺点** | ① 复杂代码推理能力弱于 Copilot/Cursor ② 插件稳定性偶有问题 |
| **适用场景** | 国内团队日常编码、Java/微服务开发、代码注释生成、单元测试 |
| **私有化部署** | ✅ 企业版支持私有化部署和数据安全管控 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ④ Trae(字节跳动)
| 维度 | 内容 |
|------|------|
| **所属公司** | 字节跳动 |
| **擅长领域** | AI原生IDE、自然语言编程、SOLO模式 |
| **优点** | ① 免费版功能充足,日常开发足够 ② 对非技术背景人员友好 ③ 国内直连体验好 |
| **缺点** | ① 大型复杂项目稳定性待验证 ② 海外项目场景受限 |
| **适用场景** | 快速原型开发、低代码场景、初级开发者辅助、内部工具开发 |
| **私有化部署** | ❌ 暂无私有化部署选项 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ⑤ Claude Code
| 维度 | 内容 |
|------|------|
| **所属公司** | Anthropic |
| **擅长领域** | 终端级Agentic编程、代码库全局操作、自动化任务 |
| **优点** | ① 终端原生操作,遵循Unix哲学,可执行完整开发工作流 ② 代码库理解深度突出 ③ 支持自主执行(读取文件、编辑、运行命令) |
| **缺点** | ① 学习曲线较陡(命令行优先) ② 国内访问受限 |
| **适用场景** | DevOps脚本开发、自动化流水线编写、代码库深度重构、技术架构分析 |
| **私有化部署** | ❌ 通过 Anthropic API 使用 |
| **推荐指数** | ⭐⭐⭐⭐ |
---
### 1.3 文档与知识管理
#### ① 飞书智能伙伴(My AI)
| 维度 | 内容 |
|------|------|
| **所属公司** | 字节跳动 |
| **擅长领域** | 企业办公协同、会议纪要、文档生成、知识库管理 |
| **优点** | ① 与飞书全生态深度整合(文档/多维表格/会议/即时通讯) ② 支持会议纪要自动生成+待办跟踪 ③ 企业知识库智能问答 |
| **缺点** | ① 深度绑定飞书生态,跨平台协同受限 ② AI能力依赖底层模型能力上限 |
| **适用场景** | 会议纪要与待办生成、项目文档协同编辑、团队知识库问答、周报/月报自动生成 |
| **私有化部署** | ✅ 飞书企业版支持私有云部署 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ② Notion AI
| 维度 | 内容 |
|------|------|
| **所属公司** | Notion Labs |
| **擅长领域** | 知识管理、项目文档、Wiki协作、AI辅助写作 |
| **优点** | ① 文档+数据库+AI一体化体验优秀 ② 模板丰富,上手快 ③ AI写作辅助自然流畅 |
| **缺点** | ① 国内访问速度偏慢 ② 中文排版体验不如飞书 |
| **适用场景** | 项目Wiki管理、方案文档协作、知识沉淀与检索、客户档案管理 |
| **私有化部署** | ❌ 仅SaaS版本 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ③ GammaAI 演示文稿)
| 维度 | 内容 |
|------|------|
| **所属公司** | Gamma Tech |
| **擅长领域** | AI生成PPT/演示文稿、视觉化表达、快速排版 |
| **优点** | ① 输入主题即可一键生成精美PPT ② 支持多种风格模板 ③ 在线协作与导出方便 |
| **缺点** | ① 中文模板相对较少 ② 复杂业务逻辑的表达需手动调整 |
| **适用场景** | 售前方案PPT快速生成、项目汇报材料、内部培训课件 |
| **私有化部署** | ❌ 仅SaaS版本 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ④ 金山文档 WPS AI
| 维度 | 内容 |
|------|------|
| **所属公司** | 金山办公 |
| **擅长领域** | 办公文档AI辅助、表格分析、PPT生成、PDF处理 |
| **优点** | ① 国产办公软件领导者,兼容性好 ② AI辅助覆盖Word/Excel/PPT/PDF全链路 ③ 企业版支持私有化 |
| **缺点** | ① AI功能需付费解锁 ② 复杂分析能力不如专业工具 |
| **适用场景** | 合同文档辅助编辑、数据报表生成、投标文件排版、方案PPT制作 |
| **私有化部署** | ✅ WPS 365 企业版支持私有云/混合云部署 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ⑤ Napkin AI
| 维度 | 内容 |
|------|------|
| **所属公司** | Napkin AI |
| **擅长领域** | 文本转可视化图表、流程图、思维导图 |
| **优点** | ① 粘贴文字即可自动生成专业图表 ② 风格多样(流程图/架构图/信息图) ③ 操作简单 |
| **缺点** | ① 中文标注支持一般 ② 复杂业务图表需手动调整 |
| **适用场景** | 方案中的架构图/流程图生成、汇报材料可视化、概念关系图 |
| **私有化部署** | ❌ 仅SaaS版本 |
| **推荐指数** | ⭐⭐⭐ |
---
### 1.4 数据分析
#### ① ChatGPT Code InterpreterAdvanced Data Analysis
| 维度 | 内容 |
|------|------|
| **所属公司** | OpenAI |
| **擅长领域** | 上传数据文件直接分析、可视化图表生成、统计建模 |
| **优点** | ① 上传Excel/CSV即可获得专业分析报告 ② 自动生成可视化图表 ③ 支持Python代码执行 |
| **缺点** | ① 国内访问受限 ② 大文件处理能力有上限 |
| **适用场景** | 项目数据分析报告、客户业务数据洞察、财务数据建模 |
| **私有化部署** | ❌ 仅ChatGPT Plus/Pro可用 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ② Chat2DB
| 维度 | 内容 |
|------|------|
| **所属公司** | Chat2DB(国产开源) |
| **擅长领域** | 自然语言转SQL查询、数据库管理、数据可视化 |
| **优点** | ① 自然语言描述即可生成SQL ② 支持多种数据库(MySQL/PostgreSQL/Oracle等) ③ 开源免费,可私有化 |
| **缺点** | ① 复杂SQL生成准确率有提升空间 ② 可视化功能偏基础 |
| **适用场景** | 客户系统数据查询、数据库迁移辅助、快速数据分析 |
| **私有化部署** | ✅ 开源,支持本地部署 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ③ Julius AI
| 维度 | 内容 |
|------|------|
| **所属公司** | Julius AI |
| **擅长领域** | 数据可视化、统计分析、AI驱动的数据探索 |
| **优点** | ① 交互体验好,自然语言驱动分析 ② 图表样式专业美观 ③ 支持多种数据源 |
| **缺点** | ① 国内访问不便 ② 免费版有使用次数限制 |
| **适用场景** | 客户数据分析报告、项目KPI可视化、业务趋势分析 |
| **私有化部署** | ❌ 仅SaaS版本 |
| **推荐指数** | ⭐⭐⭐ |
#### ④ 阿里云 Quick BI(智能分析)
| 维度 | 内容 |
|------|------|
| **所属公司** | 阿里巴巴 |
| **擅长领域** | 企业级BI报表、数据大屏、智能分析 |
| **优点** | ① 企业级数据分析平台,功能完整 ② 与阿里云数据产品深度集成 ③ 支持AI自然语言查询 |
| **缺点** | ① 价格偏高 ② 学习曲线较陡 |
| **适用场景** | 企业级数据报表、客户业务分析平台、项目运营大屏 |
| **私有化部署** | ✅ 支持私有化部署 |
| **推荐指数** | ⭐⭐⭐⭐ |
---
### 1.5 设计与可视化
#### ① Midjourney
| 维度 | 内容 |
|------|------|
| **所属公司** | Midjourney Inc. |
| **擅长领域** | AI图像生成、概念设计、场景渲染 |
| **优点** | ① 图像质量业内领先 ② 风格多样,效果惊艳 ③ 社区灵感丰富 |
| **缺点** | ① 国内访问需特殊网络 ② 商用版权有争议 |
| **适用场景** | 方案概念图、项目效果图、演示视觉素材 |
| **私有化部署** | ❌ 无 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ② 即时设计 AI
| 维度 | 内容 |
|------|------|
| **所属公司** | 即时设计(北京雪云科技) |
| **擅长领域** | UI/UX设计、原型设计、设计稿转代码 |
| **优点** | ① 国产Figma替代品,国内访问流畅 ② AI生成功能(文字生UI/设计稿) ③ 支持设计系统管理 |
| **缺点** | ① 国际项目协作不如Figma通用 ② 插件生态不如Figma丰富 |
| **适用场景** | 系统原型设计、UI界面设计、交互原型、设计规范管理 |
| **私有化部署** | ✅ 企业版支持私有化部署 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ③ Figma AI
| 维度 | 内容 |
|------|------|
| **所属公司** | FigmaAdobe旗下) |
| **擅长领域** | UI/UX协作设计、原型、设计系统 |
| **优点** | ① 全球设计协作标准工具 ② AI辅助设计(自动生成布局/组件建议) ③ 实时多人协作 |
| **缺点** | ① 国内访问偶尔不稳定 ② AI功能需付费版 |
| **适用场景** | 国际化项目UI设计、客户系统原型、设计交付 |
| **私有化部署** | ❌ 仅SaaS版本 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ④ DALL-EChatGPT内置)
| 维度 | 内容 |
|------|------|
| **所属公司** | OpenAI |
| **擅长领域** | AI图像生成、概念可视化、营销素材 |
| **优点** | ① 与ChatGPT深度集成,对话式生成 ② 中文提示词理解较好 ③ 生成速度快 |
| **缺点** | ① 图像精细度不如Midjourney ② 国内访问受限 |
| **适用场景** | 方案配图快速生成、概念可视化、营销素材 |
| **私有化部署** | ❌ 无 |
| **推荐指数** | ⭐⭐⭐ |
#### ⑤ 可画 Canva AI
| 维度 | 内容 |
|------|------|
| **所属公司** | Canva |
| **擅长领域** | 平面设计、营销物料、社交媒体素材 |
| **优点** | ① 模板海量,上手极简单 ② AI一键生成设计稿 ③ 国内有中文版 |
| **缺点** | ① 专业设计能力不如Figma ② 高级AI功能需Pro版 |
| **适用场景** | 营销物料设计、社交媒体图片、简单海报和Banner |
| **私有化部署** | ❌ 仅SaaS版本;企业版可定制 |
| **推荐指数** | ⭐⭐⭐⭐ |
---
### 1.6 自动化与工作流
#### ① Dify
| 维度 | 内容 |
|------|------|
| **所属公司** | Dify.AI(国产开源) |
| **擅长领域** | LLM应用编排、RAG知识库、AI Agent工作流 |
| **优点** | ① 开源免费,可完全私有化 ② 可视化编排AI工作流 ③ 支持多种大模型接入 |
| **缺点** | ① 企业版价格较高(定制报价) ② 需要一定技术基础搭建 |
| **适用场景** | 企业知识库问答、智能客服Bot、文档处理流水线、多模型路由 |
| **私有化部署** | ✅ 开源社区版免费自部署;企业版需购买许可 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ② 扣子 Coze
| 维度 | 内容 |
|------|------|
| **所属公司** | 字节跳动(火山引擎) |
| **擅长领域** | 自然语言搭建AI智能体、工作流编排、插件市场 |
| **优点** | ① 零代码搭建AI Agent,上手极快 ② 插件生态丰富 ③ 国内直连体验好 |
| **缺点** | ① 企业版费用从¥498/月起 ② 深度定制能力不如Dify |
| **适用场景** | 快速搭建智能客服、招标文件分析Agent、内部知识问答Bot |
| **私有化部署** | ⚠️ 企业版支持有限定制;Coze Studio开源可本地运行 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ③ n8n
| 维度 | 内容 |
|------|------|
| **所属公司** | n8n.io(德国) |
| **擅长领域** | 通用工作流自动化、多系统API集成、数据管道 |
| **优点** | ① 开源免费可自托管 ② 400+系统连接器,集成能力强 ③ 可视化拖拽编排 |
| **缺点** | ① 国内社区资源较少 ② 生产环境需运维投入 |
| **适用场景** | 跨系统数据同步、定时报告自动生成、邮件/消息自动化通知 |
| **私有化部署** | ✅ 社区版完全免费自部署;企业版 $299/月起 |
| **推荐指数** | ⭐⭐⭐⭐⭐ |
#### ④ Zapier AI
| 维度 | 内容 |
|------|------|
| **所属公司** | Zapier |
| **擅长领域** | SaaS应用连接、自动化工作流、AI增强集成 |
| **优点** | ① 7000+应用连接器,全球最大 ② AI辅助创建工作流 ③ 稳定性高 |
| **缺点** | ① 价格较高(Starter $19.99/月起) ② 国内SaaS生态覆盖有限 |
| **适用场景** | 国际项目工具链集成、邮件自动化、CRM数据同步 |
| **私有化部署** | ❌ 仅SaaS版本 |
| **推荐指数** | ⭐⭐⭐ |
#### ⑤ 影刀 RPA
| 维度 | 内容 |
|------|------|
| **所属公司** | 影刀科技(国产) |
| **擅长领域** | RPA机器人流程自动化、桌面/网页自动化、AI+RPA |
| **优点** | ① 国产RPA领导者,国内生态完善 ② 支持AI增强自动化 ③ 企业级稳定 |
| **缺点** | ① 企业版费用较高 ② 复杂流程编排需要学习 |
| **适用场景** | 财务自动化、数据采集、系统间批量操作、报表自动生成 |
| **私有化部署** | ✅ 支持私有化部署 |
| **推荐指数** | ⭐⭐⭐⭐ |
---
### 1.7 垂直领域
#### ① 云境标书 AI
| 维度 | 内容 |
|------|------|
| **所属公司** | 云境科技 |
| **擅长领域** | 投标文件智能生成、招标文件解析、标书结构化 |
| **优点** | ① 支持数千页长文本处理 ② 免费开放招标解析和目录生成 ③ 自动生成投标响应表 |
| **缺点** | ① 生成质量需人工复核 ② 复杂技术要求需专业补充 |
| **适用场景** | 招标文件解读、投标文件初稿生成、评分标准对标分析 |
| **私有化部署** | ⚠️ 支持企业定制方案 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ② 火眼审阅
| 维度 | 内容 |
|------|------|
| **所属公司** | 火眼科技 |
| **擅长领域** | 合同智能审查、风险条款识别、合规检查 |
| **优点** | ① 专注合同审查细分领域 ② 一键导出清洁版/批注版/审查意见书 ③ 风险条款精准定位 |
| **缺点** | ① 仅聚焦合同审查,功能较单一 ② 企业版费用需洽谈 |
| **适用场景** | 合同条款风险审查、合规性检查、合同对比分析 |
| **私有化部署** | ✅ 支持企业私有化部署 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ③ 幂律智能
| 维度 | 内容 |
|------|------|
| **所属公司** | 幂律智能 |
| **擅长领域** | 智能合同起草、合同协作审查、条款库管理 |
| **优点** | ① 覆盖合同全生命周期(起草→审查→签署→管理) ② 智能起草+协作审查 ③ 企业条款库沉淀 |
| **缺点** | ① 主要面向法务团队 ② 实施周期较长 |
| **适用场景** | 项目合同起草、合同评审流程、条款标准化管理 |
| **私有化部署** | ✅ 支持企业级私有部署 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ④ AlphaGPT(法律AI
| 维度 | 内容 |
|------|------|
| **所属公司** | 幂律智能 |
| **擅长领域** | 法律智能问答、法规检索、案例研究 |
| **优点** | ① 国内率先通过备案的专业法律AI ② 法律数据库丰富 ③ 多轮对话交互体验好 |
| **缺点** | ① 法律专业领域外适用性有限 ② 复杂法律问题仍需律师确认 |
| **适用场景** | 项目合规性咨询、合同法律问题查询、行业法规研究 |
| **私有化部署** | ✅ 支持 |
| **推荐指数** | ⭐⭐⭐⭐ |
#### ⑤ 契约锁
| 维度 | 内容 |
|------|------|
| **所属公司** | 契约锁(泛微旗下) |
| **擅长领域** | 电子签章、AI合同管理、用印管理 |
| **优点** | ① 已落地15项AI场景(智能起草/审查/用章推荐/高危阻断) ② 电子签章合规 ③ 与OA系统深度集成 |
| **缺点** | ① 合同AI能力不如专业合同审查工具 ② 主要价值在签章管理 |
| **适用场景** | 合同电子签署、用印管理、合同审批流程 |
| **私有化部署** | ✅ 支持私有化部署 |
| **推荐指数** | ⭐⭐⭐⭐ |
---
## 第二部分:角色×工作内容×AI工具 赋能矩阵
### 2.1 售前顾问
| 工作内容 | 首选工具 | 备选工具 | 效率提升 | 具体应用场景 |
|----------|---------|---------|---------|------------|
| **需求调研** | DeepSeek / 通义千问 | Kimi | 40-50% | 将客户访谈录音转文字后,用AI提取关键需求点、痛点清单,自动生成结构化需求调研报告 |
| **招标文件解读** | 云境标书AI | 通义千问(长文本) | 50-60% | 上传招标文件PDF,AI自动提取项目概况、资质要求、技术参数、评分标准、废标条款,生成结构化解析报告 |
| **投标方案编写** | 通义千问 + Gamma | DeepSeek + WPS AI | 30-40% | 基于招标文件解析结果,AI生成方案初稿框架和各章节要点,人工补充专业细节后通过Gamma生成演示PPT |
| **售前方案编写** | Claude / 通义千问 | ChatGPT | 35-45% | 输入项目背景和客户需求,AI生成技术方案框架、系统架构图描述、实施方法论,输出专业方案文档 |
| **合同洽谈** | 火眼审阅 | 幂律智能 | 40-50% | 上传合同草案,AI自动标记风险条款、合规问题,提供修改建议,生成批注版和审查意见书 |
| **竞品分析** | Kimi + ChatGPT | DeepSeek | 50-60% | AI联网搜索竞品最新动态、产品功能对比,自动生成结构化竞品分析报告,含优劣势和差异化策略 |
| **客户沟通纪要** | 飞书智能伙伴 | 通义千问 | 60-70% | 会议录音自动转文字,AI提取关键决策、待办事项、责任人,生成结构化会议纪要并同步任务管理 |
### 2.2 项目经理
| 工作内容 | 首选工具 | 备选工具 | 效率提升 | 具体应用场景 |
|----------|---------|---------|---------|------------|
| **计划制定** | ChatGPT / 通义千问 | Claude | 30-40% | 输入项目范围和里程碑,AI生成WBS分解结构、甘特图建议、资源分配方案,支持多种项目管理方法论 |
| **阶段汇报** | 通义千问 + WPS AI | 飞书智能伙伴 | 40-50% | 输入项目进展数据,AI自动生成周报/月报文档,包含进度概览、风险预警、下阶段计划,一键排版输出 |
| **团队管理** | 飞书智能伙伴 | Notion AI | 20-30% | AI辅助生成团队沟通话术、绩效反馈模板、会议议程;自动跟踪待办完成率并生成提醒 |
| **质量管理** | DeepSeek / 通义千问 | ChatGPT | 25-35% | 输入质量检查清单和缺陷数据,AI分析质量趋势、识别高频问题类型,生成质量改进建议报告 |
| **问题管理** | DeepSeek | 通义千问 | 30-40% | 记录问题描述和上下文,AI分析根因、推荐解决方案、评估影响范围,辅助制定应对策略 |
| **风险管理** | Claude / DeepSeek | ChatGPT | 35-45% | 输入项目背景和风险清单,AI进行风险评估(概率×影响矩阵),生成风险应对预案和触发条件 |
| **项目总结** | 通义千问 | Kimi | 40-50% | 输入项目全过程数据,AI自动生成项目总结报告、经验教训文档、可复用的最佳实践清单 |
### 2.3 应用顾问
| 工作内容 | 首选工具 | 备选工具 | 效率提升 | 具体应用场景 |
|----------|---------|---------|---------|------------|
| **蓝图设计** | Claude + Napkin AI | ChatGPT + 即时设计 | 30-40% | AI辅助梳理业务流程,生成业务流程图、系统架构图、数据流图;Napkin AI将文字描述转为专业可视化图表 |
| **原型设计** | 即时设计 AI | Figma AI | 40-50% | 输入功能需求和用户故事,AI自动生成UI原型草稿、页面布局方案,支持快速迭代和交互演示 |
| **接口设计** | Cursor / Claude Code | GitHub Copilot | 35-45% | AI根据业务需求自动生成API接口文档(OpenAPI/Swagger),包含请求/响应示例、错误码定义 |
| **FS编制(功能规格)** | Claude / 通义千问 | ChatGPT | 30-40% | 输入业务蓝图和原型,AI生成结构化FS文档(含功能描述、业务规则、界面元素、数据校验逻辑) |
| **测试** | 通义千问 + DeepSeek | GitHub Copilot | 35-45% | AI根据FS文档自动生成测试用例(正向/反向/边界),生成测试数据,辅助编写自动化测试脚本 |
| **数据迁移** | Chat2DB + DeepSeek | 通义千问 | 40-50% | AI分析源/目标数据结构差异,自动生成映射规则、转换脚本和校验逻辑,辅助处理数据清洗 |
| **上线支持** | 通义千问 | DeepSeek | 25-35% | AI辅助生成上线检查清单、用户操作手册、常见问题FAQ、培训课件大纲 |
### 2.4 开发顾问
| 工作内容 | 首选工具 | 备选工具 | 效率提升 | 具体应用场景 |
|----------|---------|---------|---------|------------|
| **FS沟通理解** | Claude / 通义千问 | DeepSeek | 30-40% | 将FS文档输入AI,生成技术实现方案建议、技术难点分析、开发工作量评估 |
| **前端开发** | Cursor | GitHub Copilot + 通义灵码 | 40-60% | Cursor理解前端项目全局结构,跨组件修改代码;Copilot/灵码处理日常编码补全和UI组件生成 |
| **后端开发** | GitHub Copilot + Cursor | 通义灵码 | 45-60% | Copilot处理代码补全和单元测试生成;Cursor处理复杂业务逻辑开发和数据库交互代码 |
| **数据库开发** | Chat2DB + GitHub Copilot | 通义灵码 | 40-50% | 用自然语言描述数据需求,Chat2DB生成SQL/存储过程/索引建议;Copilot辅助ORM代码编写 |
| **单元测试** | GitHub Copilot | 通义灵码 | 50-60% | 选中函数/方法,Copilot自动生成完整测试用例(含正向、反向、边界场景),覆盖率可达80%+ |
| **集成测试** | DeepSeek + Cursor | Claude Code | 30-40% | AI根据接口文档生成集成测试脚本、Mock数据、测试环境配置 |
| **Bug修复** | Cursor | GitHub Copilot | 40-50% | 粘贴错误日志和上下文代码,Cursor定位Bug根因并提供修复方案,支持跨文件修改 |
| **代码审查** | Claude Code | GitHub Copilot | 35-45% | AI审查代码变更,识别潜在Bug、性能问题、安全风险、代码规范问题,生成审查报告 |
| **技术文档** | Claude / 通义千问 | DeepSeek | 40-50% | 输入代码和设计文档,AI自动生成API文档、部署文档、架构说明文档、变更记录 |
---
## 第三部分:推荐技术栈组合
### 3.1 🟢 轻量级组合(人均 < 500元/月)
> **定位**:预算有限的初创团队或小规模项目组,以免费/低成本工具为主
#### 工具清单
| 工具 | 用途 | 月费/人 | 备注 |
|------|------|---------|------|
| DeepSeek(免费) | 通用对话/推理 | ¥0 | 国产顶级推理模型,完全免费 |
| 通义千问(免费) | 通用对话/长文本 | ¥0 | 百万级上下文,长文档利器 |
| 通义灵码(免费版) | 代码辅助 | ¥0 | 个人基础版免费,日常编码够用 |
| Kimi(免费) | 信息检索/文档分析 | ¥0 | 联网搜索能力强 |
| 飞书智能伙伴 | 办公协同/会议 | 含飞书基础版 | 飞书基础版即可使用 |
| 扣子 Coze(免费版) | AI Agent搭建 | ¥0 | 零代码搭建智能体 |
| Dify(社区版) | AI工作流 | ¥0(自托管) | 需自备服务器,约¥30/月 |
| 即时设计(免费版) | UI原型 | ¥0 | 基础功能免费 |
| WPS AI(基础版) | 文档处理 | ~¥30 | WPS会员含基础AI |
#### 费用估算
| 项目 | 费用 |
|------|------|
| **工具订阅** | ¥30-60/人/月 |
| **服务器(Dify自托管)** | ¥30-50/月(团队共享) |
| **合计人均** | **¥50-120/人/月** |
#### 适用团队规模
- 5-15人小型团队
- 项目制小组
- 初创期业务单元
#### 优势与局限
- ✅ 成本极低,核心工具全部免费
- ✅ 国内全链路无障碍使用
- ⚠️ 缺少海外顶级模型(ChatGPT/Claude/Copilot
- ⚠️ 无私有化部署能力,数据安全性依赖SaaS平台
---
### 3.2 🟡 标准级组合(人均 500-1500元/月)
> **定位**:中等规模团队的标准化AI工具链,兼顾国内外优质工具
#### 工具清单
| 工具 | 用途 | 月费/人 | 备注 |
|------|------|---------|------|
| **通用模型** | | | |
| DeepSeek + 通义千问 | 国产通用对话 | ¥0-50 | 日常对话和分析主力 |
| ChatGPT Plus | 高端对话/分析 | ~¥145($20) | 通过API中转或企业采购 |
| **代码辅助** | | | |
| GitHub Copilot Pro | 代码补全/测试 | ~¥72$10 | IDE集成最成熟 |
| 通义灵码(企业版) | 代码辅助+合规 | ~¥59 | 国内合规+私有化 |
| **文档与知识** | | | |
| 飞书智能伙伴(企业版) | 办公协同 | 含飞书企业版 | 约¥30-60/人/月 |
| WPS AIPro版) | 文档处理 | ~¥50 | 全链路AI文档处理 |
| Gamma Pro | PPT生成 | ~¥72$10 | 方案演示必备 |
| **数据分析** | | | |
| Chat2DB(开源) | 数据库查询 | ¥0 | 自然语言转SQL |
| **设计与可视化** | | | |
| 即时设计 AI(团队版) | UI原型 | ~¥30-50 | 国产设计工具 |
| Napkin AI | 图表可视化 | ~¥50 | 文字转图表 |
| **自动化** | | | |
| Dify(专业版) | AI工作流 | ~¥430/团队($59) | 团队共享,人均摊薄 |
| 扣子 Coze(进阶版) | AI Agent | ~¥40 | 快速搭建智能体 |
#### 费用估算
| 项目 | 费用 |
|------|------|
| **工具订阅** | ¥550-750/人/月 |
| **团队共享工具(Dify等)** | ¥50-100/人/月(均摊) |
| **API用量(按量付费)** | ¥50-200/人/月 |
| **合计人均** | **¥650-1050/人/月** |
#### 适用团队规模
- 15-50人中型团队
- 多项目并行的业务部门
- 需要标准化交付流程的组织
#### 优势与局限
- ✅ 国内外工具组合,能力互补
- ✅ ChatGPT加持高端场景
- ✅ GitHub Copilot大幅提升开发效率
- ⚠️ 需要管理多个工具的账号和费用
- ⚠️ 部分海外工具有访问稳定性风险
---
### 3.3 🔴 专业级组合(人均 1500-3000元/月)
> **定位**:大型团队的专业级AI工具矩阵,全面覆盖企业级安全、合规和私有化需求
#### 工具清单
| 工具 | 用途 | 月费/人 | 备注 |
|------|------|---------|------|
| **通用模型** | | | |
| DeepSeek + 通义千问(API | 国产模型底座 | ¥100-200API | 大批量调用 |
| ChatGPT Pro/Team | 高端分析 | ~¥290-1450 | 按场景选择 |
| Claude Pro | 深度分析/写作 | ~¥145($20) | 长文档和代码分析 |
| **代码辅助** | | | |
| Cursor Pro | AI原生IDE | ~¥145$20 | 复杂项目开发 |
| GitHub Copilot Business | 代码补全/安全 | ~¥138($19) | 企业级安全管控 |
| 通义灵码(企业版) | 代码辅助+合规 | ~¥59-100 | 私有化部署 |
| **文档与知识** | | | |
| 飞书企业旗舰版 | 全生态协同 | ~¥60-100 | 含智能伙伴 |
| WPS 365 企业版 | 办公文档 | ~¥50-80 | 私有化可选 |
| Gamma Business | 演示文稿 | ~¥145$20 | 高端演示 |
| **数据分析** | | | |
| Quick BI | 企业级BI | ¥100-200 | 数据大屏和报表 |
| Chat2DB(私有化) | 数据查询 | 一次性部署费 | 私有化部署 |
| **设计与可视化** | | | |
| 即时设计 AI(企业版) | UI设计 | ~¥50-80 | 私有化部署 |
| Figma Professional | 国际协作设计 | ~¥108$15) | 国际项目 |
| Midjourney | 概念图/效果图 | ~¥216($30) | 高质量图像生成 |
| **自动化与工作流** | | | |
| Dify(企业版/自托管) | AI工作流 | ¥200-500(均摊) | 全面私有化 |
| n8n(自托管) | 系统自动化 | ~¥50-100(服务器) | 400+系统连接 |
| 扣子 Coze(企业版) | AI Agent | ~¥100-200 | 智能体平台 |
| **垂直领域** | | | |
| 云境标书AI | 投标文件 | ~¥100-200 | 投标效率工具 |
| 火眼审阅 | 合同审查 | ~¥100-200 | 风险管控 |
| 契约锁 | 电子签章 | ~¥50-100 | 合同管理 |
#### 费用估算
| 项目 | 费用 |
|------|------|
| **工具订阅** | ¥1,500-2,200/人/月 |
| **团队共享工具(均摊)** | ¥200-400/人/月 |
| **API用量** | ¥100-300/人/月 |
| **私有化部署均摊(年化)** | ¥100-200/人/月 |
| **合计人均** | **¥1,900-3,100/人/月** |
#### 适用团队规模
- 50-200人大型团队
- 多部门协同的事业部
- 有数据安全合规要求的企业
#### 优势与局限
- ✅ 全链路覆盖,从售前到交付完整AI赋能
- ✅ 核心工具支持私有化部署,数据安全可控
- ✅ 国内外顶级工具组合,能力无短板
- ✅ 垂直领域工具(投标/合同/签章)深度赋能
- ⚠️ 投入较大,需要管理层支持和ROI评估
- ⚠️ 需要专职AI工具管理员负责运维和培训
---
## 附录:工具速查索引
### 按预算级别快速选型
| 工具类别 | 🟢 轻量级 | 🟡 标准级 | 🔴 专业级 |
|----------|----------|----------|----------|
| 通用对话 | DeepSeek + 通义千问 + Kimi | + ChatGPT Plus | + Claude Pro + API |
| 代码辅助 | 通义灵码免费版 | + GitHub Copilot Pro | + Cursor Pro + Copilot Business |
| 文档协同 | 飞书基础版 + WPS基础 | + WPS AI Pro + Gamma | + 飞书旗舰 + WPS企业 + Gamma |
| 数据分析 | Chat2DB(开源) | + ChatGPT数据分析 | + Quick BI |
| 设计可视化 | 即时设计免费版 | + 即时设计团队 + Napkin | + 即时设计企业 + Figma + MJ |
| 自动化 | Dify社区版 + Coze免费 | + Dify专业 + Coze进阶 | + Dify企业 + n8n + Coze企业 |
| 垂直领域 | — | 云境标书AI | + 火眼审阅 + 契约锁 |
### 私有化部署能力汇总
| 工具 | 私有化选项 | 部署方式 | 数据安全等级 |
|------|-----------|---------|------------|
| DeepSeek | ✅ 开源模型 | GPU服务器自部署 | ⭐⭐⭐⭐⭐ |
| 通义千问 | ✅ 开源模型 | GPU服务器 / 阿里云百炼 | ⭐⭐⭐⭐⭐ |
| 通义灵码企业版 | ✅ 企业版 | 私有云部署 | ⭐⭐⭐⭐⭐ |
| Dify | ✅ 开源 | Docker自部署 | ⭐⭐⭐⭐⭐ |
| n8n | ✅ 开源 | Docker自部署 | ⭐⭐⭐⭐⭐ |
| Chat2DB | ✅ 开源 | 本地部署 | ⭐⭐⭐⭐⭐ |
| 即时设计企业版 | ✅ 企业版 | 私有云 | ⭐⭐⭐⭐ |
| WPS 365企业版 | ✅ 企业版 | 私有云/混合云 | ⭐⭐⭐⭐⭐ |
| 飞书企业版 | ✅ 企业版 | 私有云 | ⭐⭐⭐⭐⭐ |
| 火眼审阅 | ✅ 企业版 | 私有化部署 | ⭐⭐⭐⭐ |
| 契约锁 | ✅ 企业版 | 私有化部署 | ⭐⭐⭐⭐ |
| 扣子 Coze | ⚠️ 有限 | Coze Studio开源 / 企业版定制 | ⭐⭐⭐ |
---
> **文档版本**v1.0
> **更新日期**2026年5月30日
> **维护责任人**:大客户及解决方案中心 · AI工具选型组
> **下次评审日期**:2026年9月(建议每季度评审一次工具选型)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,443 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>研发型企业 CRMEB 自动发布方案 — Gitea CI/CD 流水线</title>
<style>
:root {
--color-primary: #1677FF; --color-primary-hover: #4096FF; --color-primary-active: #0958D9; --color-primary-bg: #E6F4FF;
--color-success: #52C41A; --color-success-bg: #F6FFED; --color-success-border: #B7EB8F;
--color-warning: #FAAD14; --color-warning-bg: #FFFBE6; --color-warning-border: #FFE58F;
--color-error: #FF4D4F; --color-error-bg: #FFF2F0; --color-error-border: #FFCCC7;
--bg: #F5F5F5; --bg-container: #FFFFFF; --bg-elevated: #FAFAFA;
--border: #D9D9D9; --border-light: #F0F0F0;
--text-primary: #141414; --text-secondary: #595959; --text-tertiary: #8C8C8C;
--radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.03), 0 1px 6px -1px rgba(0,0,0,0.02);
--shadow-md: 0 2px 4px rgba(0,0,0,0.04), 0 4px 12px -2px rgba(0,0,0,0.04);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--text-primary);line-height:1.8;font-size:14px;}
.header{position:sticky;top:0;z-index:100;height:64px;background:linear-gradient(135deg,#1677FF,#722ED1);display:flex;align-items:center;padding:0 2rem;box-shadow:0 2px 8px rgba(22,119,255,0.15);}
.header h1{font-size:18px;font-weight:700;color:#fff;}
.header .back-link{margin-right:16px;font-size:13px;color:rgba(255,255,255,0.85);text-decoration:none;flex-shrink:0;}
.header .back-link:hover{color:#fff;text-decoration:underline;}
.container{max-width:1200px;margin:0 auto;padding:32px 40px 64px;}
section{margin:36px 0;}
section h2{font-size:22px;line-height:30px;padding:0 0 10px 14px;border-left:4px solid var(--color-primary);border-bottom:1px solid var(--border-light);margin-bottom:20px;}
section h3{font-size:18px;line-height:26px;margin:24px 0 12px;padding-left:12px;border-left:3px solid #722ED1;color:#722ED1;}
section h4{font-size:15px;line-height:22px;margin:16px 0 8px;color:#444;font-weight:600;}
p{color:var(--text-secondary);font-size:14px;margin:10px 0;}
table{width:100%;border-collapse:collapse;font-size:13px;margin:14px 0;}
th,td{padding:10px 14px;border:1px solid var(--border);text-align:left;vertical-align:top;}
th{background:var(--bg-elevated);font-weight:700;color:var(--text-primary);white-space:nowrap;}
td{background:var(--bg-container);color:var(--text-secondary);}
tbody tr:hover td{background:var(--color-primary-bg);}
.code-block{background:#1E1E1E;color:#D4D4D4;border-radius:var(--radius-md);padding:16px 20px;margin:14px 0;font-family:'SF Mono',Monaco,monospace;font-size:13px;line-height:1.7;overflow-x:auto;white-space:pre;}
.code-block .comment{color:#6A9955;}
pre{margin:0;}
ul,ol{margin:8px 0 8px 20px;}
li{margin:4px 0;color:var(--text-secondary);font-size:14px;}
.tree{font-family:'SF Mono',Monaco,monospace;font-size:13px;color:var(--text-secondary);line-height:1.6;margin:14px 0;padding:12px 16px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border-light);}
.footer{text-align:center;padding:28px 0;color:var(--text-tertiary);font-size:13px;border-top:1px solid var(--border-light);margin-top:40px;}
@media(max-width:768px){.container{padding:20px 16px 40px;}.header{padding:0 1rem;}}
</style>
</head>
<body>
<header class="header">
<a class="back-link" href="../../index.html">← 知识库</a>
<h1>CRMEB 自动发布方案</h1>
</header>
<div class="container">
<section>
<h2>一、整体架构</h2>
<div class="tree">
┌──────────────────────────────────────────────────────────┐
│ Gitea (47.115.231.200) │
│ 代码仓库: admin-api / front-api / admin-web │
│ Gitea Actions CI/CD │
├──────────────────────────────────────────────────────────┤
│ Runner (47.122.125.216) │
│ Maven 构建 → npm 构建 → 停服 → 替换 JAR → 启服 │
├──────────────────────────────────────────────────────────┤
│ 部署目标 (47.122.125.216) │
│ /opt/crmeb/admin/ ← admin-api JAR │
│ /opt/crmeb/front/ ← front-api JAR │
│ /opt/crmeb/web/dist/ ← admin-web 静态文件 │
└──────────────────────────────────────────────────────────┘
</div>
<p><strong>三台服务器分工</strong></p>
<table>
<tr><th>服务器</th><th>角色</th></tr>
<tr><td>47.115.231.200</td><td>Gitea 代码托管 + CI 调度</td></tr>
<tr><td>47.122.125.216</td><td>Runner(构建+部署)+ 生产运行</td></tr>
<tr><td>39.100.114.100</td><td>Nginx 入口(已有,不变)</td></tr>
</table>
</section>
<section>
<h2>二、Gitea 安装(47.115.231.200</h2>
<div class="code-block">ssh root@47.115.231.200
# Docker 已装,直接部署
docker run -d \
--name gitea \
--restart always \
-p 3000:3000 \
-p 2222:22 \
-v /data/gitea:/data \
-e GITEA__server__DOMAIN=gitea.ycbat.com \
-e GITEA__server__ROOT_URL=https://gitea.ycbat.com \
-e GITEA__actions__ENABLED=true \
gitea/gitea:latest
# DNS: gitea.ycbat.com → 47.115.231.200
# Nginx 反代在 39.100.114.100 上加一条</div>
<p><strong>Nginx 反代</strong>39.100.114.100 <code>/etc/nginx/conf.d/gitea.ycbat.com.conf</code>):</p>
<div class="code-block">server {
listen 80;
server_name gitea.ycbat.com;
client_max_body_size 100m;
location / {
proxy_pass http://47.115.231.200:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}</div>
</section>
<section>
<h2>三、NPM 私服(Verdaccio</h2>
<p>前端依赖统一走私有 NPM 仓库,加速安装并缓存上游包。</p>
<h3>3.1 架构</h3>
<table>
<tr><th></th><th>IP</th><th>角色</th><th>配置</th></tr>
<tr><td>Nginx 入口</td><td>39.100.114.100</td><td>反向代理</td><td><code>/etc/nginx/conf.d/npm.ycbat.com.conf</code></td></tr>
<tr><td>Verdaccio</td><td>47.115.231.200</td><td>私服</td><td>端口 4873<code>/data/verdaccio/config.yaml</code></td></tr>
</table>
<h3>3.2 Nginx 反代</h3>
<div class="code-block"># 39.100.114.100 — /etc/nginx/conf.d/npm.ycbat.com.conf
server {
listen 80;
server_name npm.ycbat.com;
client_max_body_size 100m;
location / {
proxy_pass http://47.115.231.200:4873;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}</div>
<h3>3.3 Verdaccio 配置</h3>
<div class="code-block"># 47.115.231.200 — /data/verdaccio/config.yaml
storage: /data/verdaccio/storage
uplinks:
npmjs:
url: https://registry.npmmirror.com/ # 阿里云镜像
packages:
'@mycompany/*':
access: $all
publish: $authenticated
'**':
access: $all
proxy: npmjs
logs: { type: stdout, format: pretty, level: info }</div>
<h3>3.4 客户端配置</h3>
<div class="code-block"># 项目根目录 .npmrc
registry=http://npm.ycbat.com/</div>
<h3>3.5 发布私有包</h3>
<div class="code-block"># 首次登录(只需一次)
npm login --registry=http://npm.ycbat.com/
# 发布 @mycompany 作用域包
npm publish --registry=http://npm.ycbat.com/</div>
<p>Verdaccio 进程通过 <code>pm2</code> 守护:<code>pm2 start verdaccio</code></p>
</section>
<section>
<h2>四、Runner 安装(47.122.125.216</h2>
<p>Runner 负责执行构建任务,装在<strong>生产服务器上</strong>,省去跨服务器传 JAR 的步骤。</p>
<div class="code-block">ssh root@47.122.125.216
# 1. 安装 Maven
apt install -y maven
# 2. 下载 Gitea Actions Runner
curl -L -o /usr/local/bin/act_runner \
https://gitea.com/gitea/act_runner/releases/download/v0.2.11/act_runner-0.2.11-linux-amd64
chmod +x /usr/local/bin/act_runner
# 3. 注册 Runner(先去 Gitea → Site Admin → Runners → 获取 token
act_runner register \
--instance https://gitea.ycbat.com \
--token &lt;RUNNER_TOKEN&gt; \
--name "prod-runner" \
--labels "prod,ubuntu,maven"
# 4. systemd 守护
cat &gt; /etc/systemd/system/gitea-runner.service &lt;&lt; 'EOF'
[Unit]
Description=Gitea Actions Runner
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/act_runner daemon
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable gitea-runner
systemctl start gitea-runner</div>
</section>
<section>
<h2>五、代码仓库结构</h2>
<p>在 Gitea 上创建 3 个仓库,推送源码:</p>
<div class="tree">
gitea.ycbat.com/crmeb/
├── admin-api/ # 管理后台 APIJava
│ ├── src/
│ ├── pom.xml
│ ├── .gitea/workflows/deploy.yml
│ └── .gitea/settings.xml # Maven 私服配置
├── front-api/ # 小程序 APIJava
│ ├── src/
│ ├── pom.xml
│ └── .gitea/workflows/deploy.yml
└── admin-web/ # 管理后台前端(Vue.js)
├── src/
├── package.json
├── .npmrc # registry=http://npm.ycbat.com/
└── .gitea/workflows/deploy.yml
</div>
</section>
<section>
<h2>六、CI/CD 流水线配置</h2>
<h3>5.1 admin-apiJava 后端)</h3>
<div class="code-block"># .gitea/workflows/deploy.yml
name: Build &amp; Deploy Admin API
on:
push:
branches: [main]
jobs:
deploy:
runs-on: prod
steps:
- uses: actions/checkout@v4
- name: Build JAR
run: mvn clean package -DskipTests -s .gitea/settings.xml
- name: Stop Service
run: /opt/crmeb/admin/ctl.sh stop || true
- name: Deploy JAR
run: |
cp target/Crmeb-admin.jar /opt/crmeb/admin/
cp target/classes/application-prod.yml /opt/crmeb/admin/ 2&gt;/dev/null || true
- name: Start Service
run: /opt/crmeb/admin/ctl.sh start
- name: Health Check
run: |
sleep 10
curl -sf -o /dev/null https://adminapi.hblj.asia/ &amp;&amp; echo "OK" || echo "FAIL"</div>
<h3>5.2 front-apiJava 后端)</h3>
<div class="code-block"># .gitea/workflows/deploy.yml
name: Build &amp; Deploy Front API
on:
push:
branches: [main]
jobs:
deploy:
runs-on: prod
steps:
- uses: actions/checkout@v4
- name: Build JAR
run: mvn clean package -DskipTests -s .gitea/settings.xml
- name: Stop Service
run: /opt/crmeb/front/ctl.sh stop || true
- name: Deploy JAR
run: |
cp target/Crmeb-front.jar /opt/crmeb/front/
- name: Start Service
run: /opt/crmeb/front/ctl.sh start
- name: Health Check
run: |
sleep 10
curl -sf -o /dev/null https://miniappapi.hblj.asia/ &amp;&amp; echo "OK" || echo "FAIL"</div>
<h3>5.3 admin-webVue.js 前端)</h3>
<div class="code-block"># .gitea/workflows/deploy.yml
name: Build &amp; Deploy Admin Web
on:
push:
branches: [main]
jobs:
deploy:
runs-on: prod
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: npm ci --registry=http://npm.ycbat.com/
- name: Build
run: npm run build:prod
- name: Deploy
run: |
rm -rf /opt/crmeb/web/dist/*
cp -r dist/* /opt/crmeb/web/dist/
- name: Health Check
run: curl -sf -o /dev/null https://admin.hblj.asia/ &amp;&amp; echo "OK"</div>
</section>
<section>
<h2>七、Gitea Secrets 配置</h2>
<p>仓库 → Settings → Secrets,添加:</p>
<table>
<tr><th>Secret 名</th><th></th><th>用途</th></tr>
<tr><td>(不需 secrets</td><td></td><td>Runner 在本机执行,直接读写本地文件</td></tr>
</table>
<p>因为 Runner 和部署目标在同一台机器,<strong>不需要 SCP/SSH 密码</strong>。构建产物直接 <code>cp</code> 到目标目录。</p>
</section>
<section>
<h2>八、Maven settings.xml(私服配置)</h2>
<div class="code-block">&lt;!-- .gitea/settings.xml — 仓库根目录 --&gt;
&lt;settings&gt;
&lt;mirrors&gt;
&lt;mirror&gt;
&lt;id&gt;aliyun&lt;/id&gt;
&lt;mirrorOf&gt;central&lt;/mirrorOf&gt;
&lt;name&gt;Aliyun Maven&lt;/name&gt;
&lt;url&gt;https://maven.aliyun.com/repository/public&lt;/url&gt;
&lt;/mirror&gt;
&lt;/mirrors&gt;
&lt;/settings&gt;</div>
</section>
<section>
<h2>九、实施步骤</h2>
<div class="tree">
Phase 1: 基础设施(1 小时)
├── 47.115.231.200 安装 Gitea
├── 39.100.114.100 配置 gitea.ycbat.com 反代
├── 47.122.125.216 安装 Maven + Runner
└── Gitea 创建组织 crmeb + 3 个仓库
Phase 2: 代码入库(2 小时)
├── 从生产服务器提取源码(反编译或从原始开发环境)
├── admin-api 源码 → git push
├── front-api 源码 → git push
├── admin-web 源码 → git push
└── 每个仓库配置 .gitea/workflows/deploy.yml
Phase 3: 验证(30 分钟)
├── 修改一个无害的改动(如版本号)
├── git push → 观察 Gitea Actions 自动构建
├── 确认服务自动重启
└── 确认 health check 通过
</div>
</section>
<section>
<h2>十、Gitea 分支保护</h2>
<p>每个仓库 Settings → Branches → 添加规则:</p>
<table>
<tr><th>规则</th><th></th></tr>
<tr><td>分支</td><td>main</td></tr>
<tr><td>禁止直接 push</td><td></td></tr>
<tr><td>PR 必须 Approve</td><td>1 人</td></tr>
<tr><td>PR 必须 CI 通过</td><td></td></tr>
</table>
<p>日常开发流程:</p>
<div class="tree">
feature 分支 → 开发 → git push → 创建 PR
→ Gitea Actions 自动测试(不部署)
→ Code Review
→ Merge to main
→ Gitea Actions 自动部署到生产
</div>
</section>
<section>
<h2>十一、回滚</h2>
<div class="code-block"># 在 47.122.125.216 上
cd /opt/crmeb/admin
cp Crmeb-admin.jar Crmeb-admin.jar.bak # 部署前 Runner 自动备份
# 回滚
cp Crmeb-admin.jar.bak Crmeb-admin.jar &amp;&amp; ./ctl.sh restart</div>
<p>在 deploy.yml 中加入自动备份:</p>
<div class="code-block">- name: Backup
run: cp /opt/crmeb/admin/Crmeb-admin.jar /opt/crmeb/admin/Crmeb-admin.jar.bak</div>
</section>
<div class="footer">CRMEB 自动发布方案 · <a href="../../index.html" style="color:var(--color-primary);">返回知识库</a></div>
</div>
</body>
</html>
Binary file not shown.