一个基于 Next.js 15 和百度千帆 ERNIE-4.5 的 AI 企业需求评估系统,帮助企业快速评估其 AI 技术方案的可行性和合理性。
文档索引:请查看
docs/README.md,集中列出了使用/部署、架构、协作与资料类文档。
当企业计划引入 AI 技术时,常常面临这些困惑:
- 选型迷茫:ERNIE、Qwen、DeepSeek...不知道选哪个模型?
- 资源不清:我的硬件能不能跑起来?需要几张卡?
- 方案不明:技术选型是否合理?是不是过度设计了?
- 成本模糊:投入产出比如何?值不值得做?
传统方案往往需要花费数周时间,咨询多个技术专家,成本高昂且效率低下。
本产品提供一站式智能评估,让企业在 3 分钟内获得:
- ✅ AI 驱动的专业建议 - 基于 ERNIE-4.5 的 7 维度深度分析
- ✅ 可视化评估报告 - 仪表盘、雷达图、进度条直观展示
- ✅ 分阶段实施路径 - 短期/中期/长期具体建议
- ✅ 成本效益分析 - 投入产出比清晰呈现
- 企业决策者:快速了解 AI 项目可行性,辅助决策
- 技术负责人:评估技术方案合理性,优化选型
- 产品经理:理解 AI 能力边界,规划产品路线
- AI 初学者:学习 AI 落地的最佳实践
- 极速体验:3 分钟完成评估,实时进度反馈,无需等待
- 专业深度:7 大维度全面分析,不仅告诉你"行不行",更告诉你"为什么"和"怎么做"
- 零学习成本:表单式交互,填空即可,无需专业知识
- 开箱即用:SQLite 零配置,5 分钟本地启动,clone 即可运行
- 手机号登录/注册 - JWT 身份验证,支持验证码登录
- 智能需求评估 - 基于 ERNIE-4.5-turbo-128k 的深度技术评估
- 多维度分析 - 7 大维度全面评估技术方案合理性
- 可视化结果展示 - 仪表盘、雷达图、进度条等丰富图表
- 实时进度反馈 - 评估过程中显示详细进度和预计时间
- 反馈系统 - 支持模块反馈和通用反馈
- 响应式设计 - 完美适配桌面端和移动端
- 模型与业务匹配度 - 评估所选模型是否适合业务场景(如视觉任务需要多模态模型)
- 大模型必要性 - 判断是否真正需要大语言模型(如 OCR 场景可能更适合专用模型)
- 微调必要性与数据充分性 - 评估是否需要微调以及训练数据是否充足
- 业务可行性与实施路径 - 提供分阶段实施建议(短期/中期/不建议)
- 性能需求合理性 - 分析 QPS 和并发数要求是否合理
- 成本效益分析 - 评估模型选型的成本合理性
- 领域特性考虑 - 针对医疗、金融、法律等特殊领域的额外建议
- Next.js 15 - React 服务端渲染框架(App Router)
- TypeScript - 类型安全
- Tailwind CSS - 原子化 CSS 框架
- shadcn/ui - 基于 Radix UI 的高质量组件库
- Recharts - 数据可视化图表库
- Next.js API Routes - 服务端 API
- Prisma ORM - 类型安全的数据库 ORM
- SQLite - 轻量级数据库(开发环境)
- JWT - 用户身份验证
- 百度千帆 API - ERNIE-4.5-turbo-128k 模型
- Few-Shot Learning - 5 个详细示例案例指导评估
- 结构化输出 - JSON Schema 强制输出格式
- Node.js 18+
- npm 或 yarn
- Git
git clone https://github.com/ethan7zhanghx/ai-calculator.git
cd ai-calculatornpm install --legacy-peer-deps注意: 必须使用
--legacy-peer-deps标志,因为项目使用了 React 19。
第一步:复制环境变量模板文件
cp .env.example .env第二步:编辑 .env 文件,填入真实的配置
使用任意文本编辑器打开 .env 文件:
# 方式1:使用 vim
vim .env
# 方式2:使用 VS Code
code .env
# 方式3:使用系统默认编辑器
open .env必须修改的配置:
# 数据库连接(保持默认即可)
DATABASE_URL="file:./dev.db"
# 百度千帆 API 密钥(⚠️ 必须填入真实的 API Key)
QIANFAN_API_KEY="bce-v3/ALTAK-xxxxxxx/xxxxxxx" # ← 替换成你的真实 API Key
# JWT 密钥(可以保持默认,或自定义 32 位以上随机字符串)
JWT_SECRET="your-local-jwt-secret-key-change-this"
JWT_EXPIRES_IN="7d"如何获取 QIANFAN_API_KEY:
- 访问 百度智能云千帆控制台
- 创建应用并获取 API Key
- 将完整的 API Key 填入
.env文件 - 格式示例:
bce-v3/ALTAK-DqUYq5oZjYhHmb1DYJylj/c303c3f9d0dd5adb9753ff2d07afff862d38faa2
⚠️ 重要:QIANFAN_API_KEY必须填入真实的值,否则评估功能无法使用!
.env 文件)!
第一步:验证环境变量文件是否存在
# 检查 .env 文件是否存在
ls -la .env
# 如果提示 "No such file or directory",说明文件不存在
# 请返回步骤 3,执行:cp .env.example .env第二步:验证环境变量内容
# 查看 .env 文件内容
cat .env
# 确认输出中包含:
# DATABASE_URL="file:./dev.db"
# QIANFAN_API_KEY=bce-v3/ALTAK-xxxxx(你的真实 API Key)第三步:初始化数据库
npx prisma generate
npx prisma db push这会:
- 生成 Prisma Client
- 创建本地 SQLite 数据库(
prisma/dev.db) - 创建所有数据表
无需安装 PostgreSQL!本地开发使用 SQLite,零配置!
如果仍然报错 "Environment variable not found: DATABASE_URL":
- 确认
.env文件在项目根目录(与package.json同级) - 确认文件内容格式正确(每个注释单独一行)
- 尝试重启终端后重新运行命令
npm run dev访问 http://localhost:3000 即可看到应用!
本地开发:使用 SQLite(零配置,开箱即用)
- ✅ 无需安装数据库软件
- ✅ 数据存储在本地文件
prisma/dev.db - ✅ 适合快速开发和测试
生产环境(Vercel):使用 PostgreSQL
- 🚀 Vercel 部署时自动切换
- 🔒 使用 Prisma Accelerate 云数据库
- 📊 支持多用户并发访问
您不需要关心生产环境的数据库配置,clone 代码后直接运行即可!
本项目包含完整的后台管理系统,支持数据统计、用户管理和权限管理。
- 访问地址: http://localhost:3000/admin (本地) 或 https://your-domain.com/admin (生产)
- 权限要求: 需要管理员权限才能访问
- 数据大屏: 用户、评估、反馈的实时统计和趋势分析
- 用户管理: 查看所有用户及其活跃度
- 评估记录: 浏览所有评估历史和详细参数
- 反馈管理: 查看用户反馈和建议
- 管理员管理: (仅超级管理员)授予/撤销管理员权限
prisma/*.db)不会提交到GitHub
- 本地开发: 数据保存在本地SQLite数据库
- 生产环境: 数据保存在云端PostgreSQL数据库
- 完全隔离: 本地和生产环境的数据互不影响
ai-calculator/
├── app/ # Next.js 15 App Router
│ ├── admin/ # 后台管理页面
│ ├── api/ # API 路由
│ │ ├── admin/ # 后台管理 API
│ │ ├── auth/ # 身份验证 API
│ │ ├── evaluate/ # 评估 API
│ │ └── feedback/ # 反馈 API
│ ├── page.tsx # 主页面
│ └── layout.tsx # 根布局
├── components/ # React 组件
│ ├── ui/ # shadcn/ui 基础组件
│ ├── evaluation-progress.tsx # 评估进度组件
│ ├── technical-evaluation-detailed.tsx # 技术评估详情
│ ├── input-summary.tsx # 输入配置摘要
│ └── ...
├── lib/ # 工具库
│ ├── technical-evaluator.ts # 核心评估逻辑(LLM)
│ ├── model-knowledge-base.ts # 模型参数知识库
│ ├── types.ts # TypeScript 类型定义
│ ├── prisma.ts # Prisma 客户端
│ ├── jwt.ts # JWT 工具
│ └── password.ts # 密码加密
├── prisma/ # Prisma 配置
│ ├── schema.prisma # 数据库模型
│ └── dev.db # SQLite 数据库(开发)
├── scripts/ # 工具脚本
│ └── set-super-admin.ts # 超级管理员设置(私密)
├── start.sh # 一键启动脚本
├── .env.example # 环境变量示例
└── README.md # 项目文档
-
模型知识注入 (
lib/model-knowledge-base.ts)- 存储 8 个主流模型的客观参数(参数量、架构、模态、上下文窗口、视觉能力)
- 评估时将相关模型信息注入到 LLM 上下文中
-
Few-Shot Learning (
lib/technical-evaluator.ts)- 系统提示词定义评估原则和评分标准
- 5 个详细案例覆盖常见场景:
- 视觉任务使用纯文本模型(低分案例)
- OCR 场景过度使用 LLM(低分案例)
- 客服系统合理方案(高分案例)
- 医疗领域复杂场景(中等分数 + 分阶段建议)
- 金融风控数据不足(低分 + 替代方案)
-
结构化输出
- 使用
response_format: { type: "json_object" }确保一致的 JSON 格式 - 低温度参数(0.3)提高评估稳定性
- 使用
-
用户体验优化
- 评估期间显示 7 阶段进度(对应 7 个评估维度)
- 平滑进度条动画(0-95%)
- 实时计时和剩余时间估算
- User - 用户信息(手机号、密码哈希)
- Evaluation - 评估记录(输入配置、评估结果、时间戳)
- Feedback - 用户反馈
- 输入手机号,系统自动判断是登录还是注册
- 开发环境验证码固定为:
123456
- 模型选择:GPT-4、GPT-3.5、Claude 3、Llama 3 等
- 硬件配置:GPU 型号和卡数
- 业务场景:详细描述你的 AI 应用场景
- 数据信息:训练数据量、类型、质量
- 性能要求:期望 QPS 和并发数
- 点击"开始评估"按钮
- 等待 15-30 秒(首次评估时间较长)
- 实时查看评估进度
- 综合评分:0-100 分,分段显示(红/黄/蓝/绿)
- 7 维度详细分析:每个维度包含状态标识和详细分析
- 实施路径建议:短期(1-2 月)、中期(3-6 月)、不建议
- 关键问题和警告:红色/黄色高亮显示
- 优化建议:蓝色卡片展示
- 点击右侧配置卡片底部的"重新编辑配置"按钮
- 修改参数后重新提交
# 安装依赖(必须使用 --legacy-peer-deps)
npm install --legacy-peer-deps
# 启动开发服务器
npm run dev
# 同步数据库结构(本地开发使用)
npx prisma db push
# 查看数据库(可视化工具)
npx prisma studio
# 重新生成 Prisma Client
npx prisma generate
# 类型检查
npx tsc --noEmit
# 构建生产版本
npm run build| 变量名 | 说明 | 必填 | 示例 |
|---|---|---|---|
DATABASE_URL |
数据库连接字符串 | 是 | file:./dev.db |
JWT_SECRET |
JWT 签名密钥 | 是 | 至少 32 字符的强密码 |
JWT_EXPIRES_IN |
JWT 过期时间 | 否 | 7d(默认 7 天) |
QIANFAN_API_KEY |
百度千帆 API 密钥 | 是 | bce-v3/ALTAK-xxx/xxx |
- 生产环境 JWT 密钥:必须使用强随机密钥
- 数据库迁移:生产环境建议使用 PostgreSQL 或 MySQL
- API Key 安全:不要将
.env提交到代码仓库 - CORS 配置:如果前后端分离部署,需要配置 CORS
用户登录/注册
请求体:
{
"phone": "13800138000",
"verificationCode": "123456"
}响应:
{
"success": true,
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "user-id",
"phone": "13800138000"
}
}
}提交评估请求
请求头:
Authorization: Bearer <token>
请求体:
{
"model": "GPT-4",
"hardware": "NVIDIA A100",
"cardCount": 4,
"businessScenario": "智能客服系统...",
"businessData": {
"volume": 10000,
"types": ["text", "qa_pair"],
"quality": "high"
},
"performanceRequirements": {
"qps": 100,
"concurrency": 50
}
}响应:(包含 7 维度详细评估结果)
提交用户反馈
解决方案:必须使用 --legacy-peer-deps 标志
npm install --legacy-peer-deps原因:没有创建 .env 文件,或文件位置不对
完整解决步骤:
# 1. 确认当前在项目根目录
pwd
# 应该显示类似:/Users/xxx/ai-calculator
# 2. 检查 .env 文件是否存在
ls -la .env
# 如果显示 "No such file or directory",说明文件不存在
# 3. 复制模板文件
cp .env.example .env
# 4. 验证文件已创建
ls -la .env
# 应该显示文件信息
# 5. 查看文件内容
cat .env
# 确认包含 DATABASE_URL="file:./dev.db"
# 6. 重新运行 Prisma 命令
npx prisma generate
npx prisma db push特别注意:
.env文件必须在项目根目录(与package.json同级)- 文件名是
.env(注意开头有个点.) - Prisma CLI 只读取
.env文件,不读取.env.local
解决方案:运行生成命令
npx prisma generate解决方案:运行数据库同步
npx prisma db push解决方案:检查 .env 文件中是否正确配置了 QIANFAN_API_KEY
错误示例:
DATABASE_URL="file:./dev.db"
#JWT Secret # ❌ 注释后面直接跟变量
JWT_SECRET="xxx"正确格式:
# 数据库连接
DATABASE_URL="file:./dev.db"
# JWT 密钥(注释必须单独一行)
JWT_SECRET="xxx"关键点:
- ✅ 每个注释必须单独一行
- ✅ 变量定义前不能有注释
- ✅ 建议使用
cp .env.example .env复制模板
解决方案:删除 SQLite 数据库文件并重新初始化
rm prisma/dev.db
npx prisma db pushA: 首次评估通常需要 1-3 分钟(包含技术方案和商业价值两大模块的深度分析)
A: 目前知识库包含 GPT-4、GPT-3.5、Claude 3 Opus/Sonnet、Llama 3 70B/8B、Mistral Large/7B。可在 lib/model-knowledge-base.ts 中添加更多模型。
A: 评估基于 ERNIE-4.5 和精心设计的 Few-Shot 案例,但建议作为决策参考而非唯一依据。复杂场景建议咨询专业 AI 架构师。
A: 评估输入和结果会存储在本地数据库中,关联到你的账号。本地数据和生产环境数据完全隔离,互不影响。
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/your-feature - 提交更改:
git commit -m 'Add some feature' - 推送到分支:
git push origin feature/your-feature - 提交 Pull Request
MIT License
注意:本项目仅供学习和参考使用,不提供任何形式的技术支持保证。生产环境使用请自行评估风险。