智能体实战(需求分析助手)二、需求分析助手第一版实现(支持需求提取、整理、痛点分析、需求分类、优先级分析、需求文档生成等功能)

embedded/2024/12/23 15:14:25/

基于提供的调用 qwen-plus 大模型的实战代码,我将对需求分析助手的第一迭代功能目标进行实现设计。以下是基于该示例代码的第一迭代功能实现细化方案:


功能 1:用户与需求分析助手交互界面(文本交互)

实现步骤:
  1. 界面设计:设计一个简洁的文本交互界面,可以使用命令行界面 (CLI) 的交互方式(。
  2. 接收用户输入:实现功能用于接收用户需求的文本描述。
  3. 反馈显示:将大模型生成的反馈(如分析结果和分类)显示给用户。

功能 2:需求获取与提问模板

实现步骤:
  1. 需求模板设计:创建一个标准模板,包含:
    • 需求目标
    • 痛点
    • 解决方案
    • 案例参考
    • 紧急程度
  2. 动态提问:根据模板,逐步引导用户填写各项关键信息。
  3. 输入验证:确保用户填写的信息完整,并进行初步格式校验。

功能 3:需求分类与优先级评估

实现步骤:
  1. 分类模型:在 prompt 中添加需求分类逻辑:功能需求、非功能需求等。
  2. 优先级评估:基于紧急程度字段,实现初步算法;例如:
    • 高:用户输入“必须马上完成”
    • 中:用户输入“计划两周内完成”
    • 低:用户输入“长期目标”。

功能 4:输出初步需求列表

实现步骤:
  1. 需求输出格式:结构化展示整理的需求列表,包括分类和优先级。
  2. 导出功能:支持将需求列表导出为 Markdown 文件。

代码参考

没有环境或者环境不会搭建的同学请参考前面写过的这篇文章:基本开发环境搭建篇

import os
import dashscope# 设置 Dashscope API 密钥(需要替换为实际值)
DASHSCOPE_API_KEY = os.getenv("DASHSCOPE_API_KEY", "your_api_key_here")# 使用 qwen-plus 进行需求整理和分类
def analyze_requirements(requirements_text):prompt = """请分析以下用户需求:1. 结合用户需求描述,生成包括业务场景、价值和痛点的内容。2. 将每个需求分类为功能需求或非功能需求。3. 根据紧急程度(高、中/低)评估每个需求的优先级。4. 输出格式为:- 原始需求描述:- 业务场景:- 价值:- 痛点:- 类型:- 优先级:"""messages = [{"role": "system", "content": prompt},{"role": "user", "content": requirements_text}]try:response = dashscope.Generation.call(api_key=DASHSCOPE_API_KEY,model="qwen-plus",messages=messages,result_format="message")content = response.get("output", {}).get("choices", [{}])[0].get("message", {}).get("content")return contentexcept Exception as e:return f"调用模型时出错: {e}"# 处理用户输入,确保换行符作为文本的一部分
def collect_input(prompt):print(prompt)lines = []print("(按两次回车结束输入)")while True:line = input()if line == "":# 检测连续空输入,结束多行输入if not lines or lines[-1] == "":breaklines.append(line)return " ".join(lines).strip()# 获取用户需求的函数
def collect_requirements():print("\n请按照提示输入您的需求信息:")requirements = []while True:print("\n=== 新的需求 ===")goal = collect_input("1. 您的目标是什么?")pain_point = collect_input("2. 您希望解决哪些痛点?")solution = collect_input("3. 描述您的解决方案:")examples = collect_input("4. 提供相关的示例或参考(可选):")urgency = collect_input("5. 紧急程度如何(高/中/低)?")requirement = (f"目标: {goal}\n"f"痛点: {pain_point}\n"f"解决方案: {solution}\n"f"示例: {examples}\n"f"紧急程度: {urgency}\n")requirements.append(requirement)while True:more = input("\n是否需要添加另一个需求?(是/否):").strip().lower()if more in ["是", "yes", "否", "no"]:breakprint("请输入明确的回答:是/否")if more in ["否", "no"]:breakreturn "\n".join(requirements)# 保存需求列表到文件
def save_requirements_to_file(content, filename="requirements.md"):try:with open(filename, "w", encoding="utf-8") as file:file.write("# 需求分析报告\n\n")file.write(content)print(f"\n需求分析报告已保存到 {filename}")except Exception as e:print(f"\n保存文件时出错: {e}")# 主函数
def main():print("=== 欢迎使用需求分析助手 ===\n")# Step 1: Collect requirementsrequirements_text = collect_requirements()while True:# Step 2: Analyze requirements using qwen-plus modelprint("\n正在分析需求,请稍候...")analysis_result = analyze_requirements(requirements_text)print("\n=== 分析结果 ===")print(analysis_result)# Step 3: Ask for confirmationconfirm = input("\n是否确认需求并生成文件?(是/否):").strip().lower()if confirm in ["是", "yes"]:save_requirements_to_file(analysis_result)breakelif confirm in ["否", "no"]:print("\n请完善您的需求:")additional_requirements = collect_requirements()requirements_text += "\n" + additional_requirementselse:print("请输入明确的回答:是/否")if __name__ == "__main__":main()

运行效果

1、需求素材案例:

需求描述:
在设计一款智能汽车时,我们的目标是打造一个集成了尖端科技、舒适体验和安全保障的移动空间。这款汽车将配备自动驾驶功能,能够在复杂的交通环境中安全导航,同时减轻驾驶员的疲劳。车内将有一个智能语音助手,能够理解并执行乘客的指令,如调整车内温度、播放音乐、导航至目的地等。此外,车辆将配备先进的传感器和摄像头,以实现360度的环境感知,确保在任何天气和光照条件下都能提供准确的路况信息。车内娱乐系统将支持高清视频流和游戏,让乘客在长途旅行中也能享受娱乐。同时,车辆将具备远程控制功能,允许车主通过智能手机应用监控和控制车辆状态,如预冷或预热车内环境、远程锁定和解锁车门等。为了提高能效,车辆将采用混合动力或纯电动驱动,配备能量回收系统,以减少能源消耗并降低运行成本。

用户痛点:
主要集中在传统汽车的驾驶疲劳、操作复杂性、安全问题以及环境影响上。智能汽车通过自动化和智能化解决了这些问题,提供了更加便捷、安全和环保的出行选择。例如,自动驾驶功能可以减少因人为操作失误导致的交通事故,智能语音助手简化了驾驶过程中的操作,而电动驱动则减少了对环境的污染。

案例:我们可以借鉴特斯拉Model S的成功。特斯拉Model S不仅以其电动动力系统和自动驾驶功能著称,还以其简洁的内饰设计和集成的触摸屏控制中心吸引了消费者。这款车通过软件更新不断引入新功能,如自动驾驶辅助系统Autopilot和Over-the-Air更新,这些都极大地提升了用户体验,并减少了对传统服务站的依赖。通过这样的案例,我们可以看到智能汽车如何通过不断的技术创新和用户友好的设计来满足现代出行的需求。

2、生成需求文档效果:

在这里插入图片描述


总结

基于以上方案,每个功能模块均可以基于 qwen-plus 的大模型实现核心逻辑,同时将输入输出格式化为结构化需求列表。
本篇实现了一个基本的需求收集,需求分析,需求报告生成的“需求分析助手”,此助手已经具备较强的需求分析能力,后续章节将按照迭代计划持续迭代升级打造一个功能完善的需求分析助手!


http://www.ppmy.cn/embedded/148101.html

相关文章

git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表

好的,git branch -r 这个命令用于列出远程分支。让我详细解释一下: 命令: git branch -rdgqdgqdeMac-mini ProductAuthentication % git branch -rorigin/main作用: 这个命令会显示你本地仓库知道的所有 远程分支 的列表。它不…

网络基础(二)

目录 1. 跨网段通信1.1 IP 地址1.2 通信流程1.3 IP vs Mac1.4. 数据包封装和分用 2. 端口号3. TPC && UDP4. 网络字节序 网络基础(一) 上一篇文章中,我们介绍了网络协议的基本概念和分层结构。协议是确保不同主机间顺利通信的约定&am…

ChatGPT之父:奥尔特曼

奥尔特曼 阿尔特曼一般指萨姆奥尔特曼,他是OpenAI的联合创始人兼首席执行官,被称为“ChatGPT之父”.以下是其具体介绍: 个人经历 1985年4月22日出生于美国芝加哥,8岁学会编程,9岁拥有电脑,对信息技术和互联网产生兴趣.高中就读于约翰巴勒斯中学,后进入斯坦福大学主修计…

如何实现层叠布局

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GirdView Widget,本章回中将介绍Stack这种Widget,闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 在Flutter中Stack主要用来叠加显示其它的Widget,类似我们日常生活中的楼层或者说PS中的图层,因此它也是一…

Python中面向对象编程思想

目录 前言 一、面向对象是什么? 二、编程的核心概念 1.类与对象 2.常见类内置方法 小结 三、面向对象编程的特性 四、实例分析 总结 前言 本文旨在深入探讨Python中的面向对象编程(OOP)概念,包括其核心思想、实现方式以及最佳实践…

RK356x bsp 5 - 海华AW-CM358SM Wi-Fi/Bt模组调试记录

文章目录 1、环境介绍2、目标3、海华AW-CM358SM3.1、基本信息3.2、支持SDIO3.03.3、电气特性 4、适配流程步骤5、让SDIO控制器工作,且可以扫到WIFI卡5.1、dts配置5.2、验证 6、Wi-Fi 适配6.1、dts配置6.2、驱动移植6.2.1、kernel menuconfig6.2.2、传统驱动移植6.2.…

【Linux】系统编程--基本概念

更多精彩内容..... 🎉❤️博主の主页✨😘 Stark、-CSDN博客 操作系统 操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。 计算机系统由处理器、内存、磁盘、键盘、显示器、网络接口以及各种…

【C++】sophus : sim3.hpp 描述了在 3D 空间中的缩放、旋转和平移 (十九)

sim3.hpp 文件定义了与 Sim(3) 群相关的类和操作。Sim(3) 群描述了在 3D 空间中的缩放、旋转和平移。以下是对该文件主要内容的总结: 主要类和命名空间 命名空间 Sophus Sophus 命名空间包含了与 Sim(3) 群相关的所有类和函数定义。 类模板 Sim3Base Sim3Base 是一个…