我开源了一个AI需求分析工具 | 适合交作业和学习

我开源了一个AI需求分析工具 | 适合交作业和学习

在这里插入图片描述

🚀 前言

大家好!最近在学习软件工程和大模型应用开发的过程中,我发现许多学生都遇到了需求分析AI的题目。把一份需求文档转化为用户故事、实体关系或数据库设计,对于初学者来说确实有些挑战。

于是我开发了一个基于AI的需求分析工具——AI需求分析师,希望能帮助正在学习软件工程或数据库设计的同学们:

  • 快速理解需求文档转换为技术设计的过程
  • 为课程作业提供灵感和参考
  • 学习现代前端框架和AI应用开发

项目已经开源在GitHub上(地址在文末),欢迎大家使用、学习和贡献!

欢迎大家Fork或是Star这个项目!

📋 项目介绍

AI需求分析师是一个完整的Web应用,基于现代前端框架Remix构建,集成了OpenAI API,能够智能分析需求文档,自动生成用户故事、需求实体和数据库设计。

项目特点:

  • 完整的用户系统:注册、登录、找回密码等功能
  • 💡 AI驱动分析:使用OpenAI API智能解析需求文档
  • 📊 三种分析结果:用户故事、实体分析、数据库设计
  • 🎨 美观的UI:基于TailwindCSS的现代界面设计
  • 📱 响应式设计:完美支持移动端和桌面端
  • 🔐 安全可靠:完善的错误处理和数据验证

技术栈

  • 前端框架Remix - React框架,带有服务器端渲染
  • 样式方案TailwindCSS - 实用优先的CSS框架
  • 数据库Prisma + SQLite(可扩展至其他数据库)
  • 认证:自定义JWT会话认证系统
  • AI集成:OpenAI API(GPT-4)

🖼️ 效果展示

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述
在这里插入图片描述

  1. 首页:展示应用介绍和主要功能
  2. 项目管理页:展示用户创建的所有项目
  3. 需求分析页:展示需求输入和分析结果
  4. 用户故事示例:AI生成的用户故事格式和内容
  5. 实体分析示例:AI识别的业务实体及关系
  6. 数据库设计示例:AI推荐的数据库模式设计

💻 如何使用

安装步骤

  1. 克隆仓库
git clone https://github.com/yourusername/ai-requirements-analyzer.git
cd ai-requirements-analyzer
  1. 安装依赖
npm install
  1. 设置环境变量
vim .env
# 编辑.env文件,添加必要的配置
  1. 初始化数据库
npx prisma migrate dev --name init
  1. 启动开发服务器
npm run dev
  1. 访问应用
http://localhost:5173

环境变量配置

项目需要以下环境变量:

# 数据库配置
DATABASE_URL="file:./dev.db"

# 会话安全密钥
SESSION_SECRET="your-super-secret-session-key"

# OpenAI API密钥
OPENAI_API_KEY="your-openai-api-key"

# 应用URL - 用于生成密码重置链接
APP_URL="http://localhost:5173"

# 邮件服务器配置
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_SECURE="false"
SMTP_USER="your-email@gmail.com"
SMTP_PASS="your-app-password"

💡 提示:如果你只是学习使用,不需要真实的邮件功能,可以使用Ethereal提供的测试服务,详见项目README。

🔍 核心功能详解

1. 用户故事生成

输入一份需求文档后,AI会自动解析并生成符合敏捷开发标准的用户故事,格式为:

作为一个[角色],我想要[功能],以便[好处]。

这对学习敏捷开发和用户故事编写的同学非常有帮助。AI会尝试识别所有可能的角色和功能点,确保复盖面广泛。

2. 需求实体分析

AI会识别需求文档中提到的所有业务实体,并分析它们的属性和关系。例如,对于一个学生管理系统,可能会识别出:

  • 学生(属性:学号、姓名、年龄…)
  • 课程(属性:课程ID、名称、学分…)
  • 关系:学生可以选修多门课程,一门课程可以被多个学生选修

这对于理解实体关系和学习领域建模的同学很有启发。

3. 数据库设计生成

基于实体分析,AI会自动生成数据库设计方案,包括:

  • 表结构定义
  • 字段类型和约束
  • 主键和外键关系
  • 索引建议

这对数据库课程的作业和设计很有帮助,可以作为一个参考或起点。

📚 学习价值

这个项目不仅是一个实用工具,更是一个学习平台,学生可以从中学习到:

  1. 现代前端开发

    • React和Remix框架的使用
    • TailwindCSS的实用优先CSS理念
    • 响应式设计和组件化开发
  2. 后端和数据库知识

    • Prisma ORM的使用
    • 数据库关系设计
    • RESTful API设计
  3. AI应用开发

    • 提示工程技术(Prompt Engineering)
    • 大语言模型集成方法
    • AI生成内容的处理和展示
  4. 软件工程实践

    • 需求分析方法论
    • 用户故事编写
    • 实体关系设计
    • 数据库模式设计

🛠️ 定制和学习建议

对CS/软件工程专业学生的建议

  1. 学习代码结构

    • 研究项目的文件结构和模块设计
    • 了解前后端数据流和状态管理
  2. 扩展功能

    • 添加导出功能(PDF、Word等)
    • 实现版本历史记录
    • 添加团队协作功能
  3. 改进AI提示词

    • 修改app/utils/openai.server.ts中的提示词
    • 尝试不同的格式和指令,比较效果
    • 研究如何更好地引导AI生成结构化内容

对数据库课程学生的建议

  1. 扩展数据库设计功能

    • 添加ER图生成
    • 支持SQL脚本导出
    • 添加不同数据库平台的特定语法支持
  2. 改进实体识别

    • 优化实体关系的识别算法
    • 添加对多对多关系的更好支持
    • 实现更复杂的数据完整性约束识别

对AI/ML专业学生的建议

  1. 优化模型使用

    • 尝试不同的温度和参数设置
    • 比较不同模型(GPT-3.5 vs GPT-4)的效果差异
    • 实现结果评估和反馈机制
  2. 添加本地模型支持

    • 集成开源模型如LLaMA(可以使用ollama)
    • 研究如何降低API成本
    • 实现混合提示策略

🤝 如何贡献

我非常欢迎同学们对这个项目进行贡献!无论是修复bug、添加新功能,还是改进文档,都是非常宝贵的。

贡献流程:

  1. Fork仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开Pull Request

📞 联系我

如果你有任何问题、建议或想法,欢迎通过以下方式联系我:

⭐ 结语

希望这个工具能够帮助更多正在学习软件工程、数据库设计或AI应用开发的同学。技术是为了解决问题,而学习技术的过程中,动手实践永远是最好的老师。

如果这个项目对你有帮助,别忘了在GitHub上给它一个星星⭐,这是对我最大的鼓励!


🔗 项目地址GitHub - AI需求分析师
🔗 部属地址Vercel - 部属地址 (純前端)

感谢阅读!欢迎在评论区留言讨论,也欢迎分享给可能需要的同学!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值