软件工程第二次团队作业——构建智能体

news/2025/10/22 10:32:16/文章来源:https://www.cnblogs.com/fanglingchen/p/19157326

WeaTrip天气感知型旅游规划Agent说明文档

🌟项目概述

1.系统背景

WeaTrip是一个基于MCP协议的智能天气旅行助手系统,它通过自然语言交互为用户提供精准的天气查询和个性化的旅行建议。整个系统采用分层架构设计,从前端用户界面到后端服务处理形成了完整的业务闭环。

2.系统目标

  • 根据用户输入的城市和旅行需求提供个性化天气建议
  • 采用DeepSeek大语言模型进行自然语言理解和意图识别
  • 实现基于MCP协议的可扩展架构
  • 提供直观的聊天式用户交互界面

3.开发模式:敏捷开发实践🚀

本项目采用敏捷开发模型进行迭代开发,旨在快速响应需求变化,持续交付可用的软件增量。我们的实践体现在以下几个方面:

  • 迭代式开发:我们将项目划分为多个短周期(Sprint),每个Sprint都包含计划、设计、编码、测试和评审环节,确保产品功能持续完善。本文所展示的即为我们当前Sprint周期内交付的可工作软件成果。
  • 用户故事驱动:在需求分析阶段,我们基于“用户角色与画像”创建了详细的用户故事(User Stories),例如“作为一个自由行爱好者,我希望查询目的地的天气报告,以便我能够准备合适的衣物和规划户外活动”。这些故事明确了功能的验收标准,指导我们的开发与测试。
  • 持续集成与交付:我们建立了持续集成流程,通过频繁的代码集成与构建,快速发现并修复缺陷,保证了基础代码库的稳定。
  • 定期站会与评审:团队每个小周期(2~3天)进行站会,同步进度、识别障碍。

📋 需求描述

1.问题陈述

用户在为旅行做规划时,面临以下痛点:

  • 信息割裂:需要分别在旅游网站、天气APP等多个平台获取信息,并进行人工整合,过程繁琐
  • 计划僵化:静态计划无法应对天气突变,可能导致户外活动因恶劣天气而取消,影响行程
  • 决策困难:在众多景点和活动中,难以根据实时环境条件(如温度、降水、紫外线)做出最优选择

2.解决方案

开发一款智能Agent,用户只需输入目标旅游城市/地点,Agent将:

  • 自动获取该地点的近期(例如,未来1-3天)精准天气预报
  • 基于天气数据,智能推荐最适合的景点、活动和安排
  • 生成一份结构清晰、考虑天气因素的个性化旅游计划

3.核心价值主张

  • 对用户:一站式、智能化规划,获得更舒适、更安全的旅行体验
  • 对团队:打造一款具有市场差异化的AI产品,展示团队在AI应用层的能力

4.用户画像

用户类型 特征 核心需求
自由行爱好者 25-40岁,喜欢自主规划,追求深度体验 获得独特、本地化推荐,避免天气"踩雷"
家庭出游规划者 30-45岁,带老人孩子出行 室内备选方案,天气预警,舒适度优先
商务出差兼游览者 28-50岁,行程紧张 快速生成基于当时天气的高效游览建议

5.原型界面设计

基于用户研究和使用场景分析,我们设计了简洁直观的聊天式界面,确保用户能够轻松获取天气信息和旅行建议。
image

image

image


🔄 业务流描述

1.用户界面交互流程

用户交互始于简介直观的聊天界面。应用启动后,用户首先看到WeaTrip智能助手的主界面。顶部是应用名称"WeaTrip",中间区域展示智能助手"小W"的头像和欢迎语:"请输入目的地,我将根据当地天气为你生成专属出行计划"。

界面底部是用户输入区域,包含文本输入框和功能按钮。用户可以通过文本输入框直接输入城市名称或旅行需求。点击Agent名称还可以查看功能简介。

视觉设计上采用绿色系配色方案,用户消息使用绿色气泡,AI回复使用灰色气泡,确保良好的视觉层次和阅读体验。

2.智能意图识别与工具选择

当用户输入查询后,系统启动智能处理流程。MCP客户端首先将用户输入与系统提示词组合,发送给DeepSeek大语言模型进行意图分析。同时,客户端向MCP服务器查询可用工具列表,为模型决策提供支持。

工具选择逻辑:

  • 简单查询 → get_weather工具(当前天气)
  • 多日规划 → get_forecast工具(5天预报)
  • 旅行建议 → weather_report工具(详细报告)

DeepSeek模型基于用户查询的内容进行意图分析。如果用户简单询问"北京天气",模型可能选择get_weather工具;如果用户询问"北京未来几天天气",则可能选择get_forecast;如果用户表达"想去北京旅游,需要天气建议",模型更可能选择weather_report工具,因为它能生成包含穿衣建议和活动推荐的详细报告。这个决策过程完全由大语言模型自主完成,体现了系统的智能化特性。

3.天气数据获取与处理流程

一旦工具被选定,MCP客户端会调用相应的工具函数。服务器接收请求后,构建符合OpenWeatherMap API规范的查询参数,包括地理位置、API密钥、测量单位和语言设置。

4.智能报告生成与旅游建议

对于更复杂的需求,当用户请求旅游建议时,系统会调用weather_report工具。这个工具不仅返回原始天气数据,还包含提示模板功能。工具内部首先获取基础天气信息,然后使用正则表达式解析关键数据点,最后返回一个结构化数据,包含原始数据、提示模板名称和模板参数。

MCP客户端识别到这个结构后,会自动调用对应的weather_prompt提示模板。DeepSeek模型基于这个模板和具体天气数据,生成自然、专业且贴近生活的最终回复,真正实现从"天气数据"到"旅行建议"的智能转换。

5.完整的业务闭环与价值交付

最终,生成的天气报告或旅行建议通过MCP客户端返回前端界面,以对话气泡的形式展示给用户。整个业务流程从用户输入开始,经过意图识别、工具选择、数据获取、智能分析和内容生成,最终以有价值的旅行建议结束,形成了完整的业务闭环。

系统最大的价值在于将技术性的天气数据转化为用户真正需要的决策支持信息。用户不需要理解温度、湿度、风速等数据的具体含义,而是直接获得"适合穿什么衣服"、"可以进行什么活动"等实用的旅行建议,真正体现了智能助手的技术价值和应用价值。


⚙️ 实现说明

整体架构设计

MCP服务器端 - 数据服务层:

  • 角色定位:天气信息工具模块的提供者,扮演"数据提供者"角色
  • 核心功能
    • 通过OpenWeatherMap API获取实时天气与未来预报数据
    • 通过MCP协议以标准化工具形式暴露功能给客户端
    • 处理模型工具调用请求,访问外部天气数据源,格式化结果并返回标准化响应

MCP客户端 - 智能决策层:

  • 角色定位:基于DeepSeek V3大语言模型的智能决策中枢,充当"智能中间人"角色
  • 核心功能
    • 通过MCP协议与后端工具通信,通过DeepSeek API与大模型交互
    • 理解用户自然语言问题,自动决定是否调用MCP工具
    • 根据工具返回结果生成最终的自然语言回答

前端用户界面 - 交互展示层:

  • 角色定位:基于现代Web技术栈的可视化交互平台,扮演"用户友好门户"角色
  • 核心功能
    • 通过多模态输入方式(文字、语音、文件、快捷模板)收集用户出行需求
    • 将MCP客户端返回的天气数据转化为直观的出行建议展示
    • 提供流畅的对话体验和完整的对话历史管理

核心工作流程

用户输入 → 前端界面(交互收集) → MCP客户端(意图理解) → DeepSeek模型(智能决策)
工具选择 → MCP服务器(数据处理) → 天气API(数据获取) → 数据格式化
响应展示 ← 前端界面(可视化) ← MCP客户端(结果合成) ← 模板生成

MCP_SERVER实现说明

一、服务器端结构设计

整个服务器端系统主要由以下几个核心模块组成:

模块名称 主要功能
FastMCP 服务实例 定义并运行一个名为"weather"的 MCP 服务端,负责注册所有天气工具和提示模板
OpenWeatherMap 接口封装 实现与外部天气 API 的通信,包括异步请求与响应解析
数据格式化模块 将 JSON 天气数据转换为可读文本格式,便于模型理解和展示
MCP 工具函数(@mcp.tool) 提供可被模型直接调用的功能接口,如获取当前天气、获取五日天气预报等
提示模板模块(@mcp.prompt) 定义天气报告生成模板,引导模型输出自然语言播报内容
综合报告生成器 结合工具数据与模板,返回结构化的报告输入,供模型自动生成天气说明

系统整体运行逻辑如下:

二、主要功能流程

1. 服务初始化与注册

在程序启动时,首先通过以下代码创建一个 MCP 服务实例:

mcp = FastMCP("weather")
2. API 配置与请求封装

程序中定义了与 OpenWeatherMap 的通信参数,同时实现了核心请求函数 make_weather_request(url),用于发送异步 HTTP 请求。

3. 数据格式化逻辑

函数 format_weather_data(data, units) 负责将API返回的原始 JSON 格式数据转换为可读的多行文本输出,提取并格式化城市名、国家代码、天气描述、温度、湿度、风速等核心信息。

4. 工具函数注册与调用

本项目定义了三个主要 MCP 工具:

  1. get_weather():获取指定城市的实时天气信息
  2. get_forecast():获取未来五天(以三小时为间隔)的天气预报数据
  3. weather_report():结合天气信息与提示模板,生成结构化报告输入
5. 天气报告提示模板

程序还定义了一个提示模板函数 weather_prompt(),通过 @mcp.prompt() 装饰器注册。该模板用于指导大语言模型如何根据结构化天气数据生成自然语言报告。

6. 综合报告生成与模板绑定

weather_report() 是系统的综合性工具函数,它结合了前述两个模块的功能。最终返回结果为一个包含三部分内容的 JSON 对象。

7. 服务运行与通信机制

程序通过标准输入输出(stdio)与客户端进行通信,从而确保跨语言、跨进程的兼容性。

三、运行流程总结

MCP Server 的工作流程可以概括为以下步骤:

  1. 启动服务端进程并注册天气工具与模板
  2. 等待客户端发起工具调用请求
  3. 根据请求参数访问 OpenWeatherMap API
  4. 获取并格式化天气数据
  5. 将结果返回客户端,或与模板绑定生成结构化报告
  6. 客户端或模型据此生成自然语言回答

MCP_CLIENT实现说明

一、系统结构设计

整个系统分为以下几个核心模块:

模块名称 主要功能
DeepSeekMCPClient 客户端核心类,负责与 MCP 服务连接、调用工具、与模型通信
MCP Server(外部服务) 提供可调用的工具函数,如天气查询、计算器等
DeepSeek API 负责理解用户请求,决定是否使用工具,并生成自然语言回答
AsyncExitStack 异步资源管理器,用于在程序结束时自动关闭连接、释放资源

二、主要功能流程

1. 程序启动与参数解析

main() 函数中,程序首先解析命令行参数,要求输入 MCP 服务端脚本路径(.py.js 文件)。

2. 创建并初始化客户端

def_init_() 函数负责创建一个DeepSeekMCPClient() 类的客户端,并进行初始化,从环境变量中读取KEY和URL。

3. 与 MCP 服务器建立连接

connect_to_server() 函数负责与 MCP 服务端建立通信连接,根据文件后缀判断使用 pythonnode 选择启动命令。

4. 处理用户请求

主循环函数 chat_loop() 提供简单的命令行交互界面,用户输入问题,程序调用 process_query() 处理,输出模型回答或工具的响应。

5. 调用模型处理请求

process_query() 是系统的核心函数,构造包含系统提示和用户输入的 messages 列表,向 MCP 服务端请求可用工具,将MCP工具信息转换为模型可理解的格式。

6. 工具调用与结果处理

若模型请求调用工具,解析工具名称与参数,调用 session.call_tool() 执行工具,获取工具执行结果并打印,将结果加入到对话历史。

7. 资源清理

当程序结束时(无论正常退出还是异常中断),cleanup() 函数会自动关闭会话和通信通道,释放资源。

前端用户界面实现说明

一、应用结构设计

1.系统架构

整个前端设计分为以下几个板块:

层级 功能模块 主要职责
用户界面层 侧边栏导航,主聊天区域,输入控制区 界面布局和交互设计
业务逻辑层 对话管理,消息处理,语音识别 核心业务逻辑处理
数据层 本地存储,状态管理 数据持久化和状态维护
工具层 文件处理,动画效果,JSON解析 辅助功能实现
2.核心功能模块
  • JSON数据预处理:专门处理MCP客户端返回的JSON结构,提取纯文本内容
  • 视觉系统配置:采用青绿色品牌主色,现代Inter字体,确保视觉一致性

二、主要功能流程

1.应用初始化与界面构建

在页面加载时,通过DOMContentLoaded事件初始化前端应用,确保在DOM完全加载后执行初始化。

2.数据通信与处理

前端通过HTTP API与后端Web服务器通信,专门处理MCP客户端返回的复杂JSON结构,提取出纯净的文本内容用于界面显示。

3.多模态输入处理逻辑

用户输入支持四种方式,前端负责统一处理和格式化:

  • 文本输入:通过智能 textarea 元素接收,支持自适应高度调整
  • 语音输入:集成 Web Speech API,实现实时语音转文字功能
  • 文件上传:支持图片和文档文件,提供预览和大小验证(≤5MB)
  • 快捷模板:预设常用出行问题,一键填充输入框
4.对话状态管理与数据持久化

定义了完整的对话管理机制:

  • createNewChat():创建新对话会话,重置界面状态
  • loadChat(chatId):加载指定对话历史,恢复消息记录
  • saveChatData():将对话数据保存到本地存储
  • deleteChat(chatId):删除指定对话,包括标题和消息记录
5.消息渲染与界面更新

函数 addMessage(content, isUser, skipSave) 负责将消息内容转换为可视化的聊天气泡,支持消息复制功能。

6.响应式布局与交互机制
  • 桌面端(≥1024px):固定侧边栏布局,主内容添加内边距
  • 移动端:侧滑导航设计,触摸友好的交互
  • 自适应:输入框高度自动调整,动画效果适配

🎯 使用示例(功能演示)

1. 智能体简介

智能体简介

2. 整体界面

整体用户界面

3. 询问天气功能

(1) 北京的天气

北京的天气

(2) 北京未来三天的天气

北京未来三天天气

(3) 北京天气报告

天气报告

4. 对话管理功能

建立新对话

新建对话

删除对话

删除对话

5. 智能交互功能

灵活回答

灵活回答样例

语音识别输入

语音识别输入

复制功能

复制功能

搜索功能

搜索功能

修改对话名

修改对话名

修改成功

修改成功


👥 小组分工

角色类型 姓名 担任角色 主要职责
项目管理 余琪丽 项目经理兼前后端联调 • 制定项目计划和里程碑 • 协调开发资源和进度 • 主持前后端接口联调 • 跟踪项目风险和问题
需求设计 蒋伊妍 需求文档、原型设计 • 收集和分析用户需求 • 编写产品需求文档(PRD) • 设计产品原型和交互流程 • 维护需求变更记录
后端开发 郑乐妍 MCP架构主开发 • 负责MCP核心架构设计 • 实现关键业务逻辑模块 • 性能优化和代码审查 • 技术难点攻关
后端开发 钟媛 MCP_server开发 • 服务端业务功能开发 • 数据库设计和优化 • 业务流程图绘制 • 接口文档编写
客户端开发 钟扬 MCP_client开发 • MCP客户端架构设计 • 核心功能模块实现 • 编写架构实现文档 • 客户端性能优化
前端开发 洪蓉玫 前端网页设计 • 用户界面视觉设计 • 页面布局和样式实现 • 设计规范制定 • 用户体验优化
前端开发 黄依萍 前端网页设计 • 前端页面组件开发 • 交互效果实现 • 响应式设计适配 • 浏览器兼容性处理
前端开发 姜品伊 前端设计实现 • 编写设计实现文档 • 代码规范制定 • 前端架构优化
前端开发 徐紫嫣 前端设计实现 • 编写组件使用文档 • 前端测试用例编写 • 技术方案验证
测试文档 方怡玥 软件测试 • 编写测试计划和用例 • 缺陷跟踪和管理
测试文档 陈芳玲 博客撰写、前后端联调 • 编写项目技术博客 • 协助前后端联调测试 • 用户文档编写

🔗 GitHub 链接

[请在此处添加GitHub仓库链接]


WeaTrip - 智能天气旅行助手,让每一次出行都遇见好天气!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年10月抗老面霜对比榜:五款热门单品数据化排名

入秋之后,皮肤最先感知到湿度下降和昼夜温差,很多25岁以上的用户会在镜子里发现“法令纹好像又深了一点”。抗老面霜的搜索量因此每年10月出现全年次高峰,电商后台数据显示“紧致、淡纹、不闷痘”是当月高频关联词。…

2025年小型低温冷冻机厂家权威推荐榜:工业风冷/一体式螺杆低温/工业低温冷冻设备专业选购指南

2025年小型低温冷冻机厂家权威推荐榜:工业风冷/一体式螺杆低温/工业低温冷冻设备专业选购指南 在工业制造领域,温度控制系统的稳定性和精确度直接影响生产效率和产品质量。小型低温冷冻机作为工业温控系统的核心设备…

PWM实现LED渐变效果及彩灯控制

一、硬件 1. 核心电路设计模块 参数要求 典型值PWM控制器 带PWM输出的MCU STM32F103/ESP32LED类型 共阳/共阴RGB LED WS2812B(数字控制)限流电阻 根据LED正向压降计算 220Ω-1kΩ电源 3.3V/5V系统供电 200mA以上连接示…

2025年法兰保护罩厂家推荐排行榜,阀门保温罩,法兰罩,法兰防溅罩,法兰保护套,专业防护与定制服务深度解析

2025年法兰保护罩厂家推荐排行榜,阀门保温罩,法兰罩,法兰防溅罩,法兰保护套,专业防护与定制服务深度解析 在工业生产领域,法兰连接、阀门系统作为关键设备组件,其防护性能直接影响生产安全与运行效率。随着工业…

2025 山东家用电梯厂家最新优选清单:电梯厂家/家用电梯厂家/山东电梯厂家/5个品牌覆盖政策适配、高性价比、别墅定制

随着山东老旧小区改造提速与别墅居住品质升级,家用电梯需求呈现 “政策适配、智能升级、精准服务” 三大趋势。不同于泛化推荐,本文结合政策契合度、细分场景适配性及企业服务特色,筛选出 2025 年山东家用电梯值得关…

Python 中单下划线与双下划线命名的使用

Python 中单下划线与双下划线命名的使用 在 Python 中,变量或函数名前的“下划线”并非简单的装饰,而是承载着“访问权限”和“设计意图”的重要约定。无论是单下划线(_name)还是双下划线(__name),都服务于“区…

2025 年复合材料桥架厂家最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析

随着工业建设水平的不断提升,复合材料桥架因其耐腐蚀、轻量化、高强度等特性,在电力、通信、交通等领域的应用日益广泛。行业数据显示,2024年我国复合材料桥架市场规模已达85亿元,年增长率稳定在12%左右。本文基于…

记2025羊城杯部分题目的解题思路

好久没打CTF了,打个羊城杯回顾一下,记录一下做题过程。本文涵盖2025羊城杯的Web、Misc、Reverse等部分题目。0.前言 好久没打CTF了,打个羊城杯回顾一下,记录一下做题过程。 1.web1 给了份php代码 <?php ​ err…

2025年10月企业数字化转型服务商评测榜:精选五强排名

正在犹豫“到底把有限预算投向哪家数字化服务商”的您,大概率正面临以下场景:生产线数据孤岛让排产失控、渠道库存不透明导致资金占压、集团财务合并报表滞后错失决策窗口。政策层面,工信部《中小企业数字化赋能专项…

2025代码托管平台全景分析:本土化突围与全球化博弈

2025代码托管平台全景分析:本土化突围与全球化博弈 在数字化转型加速推进的当下,代码托管平台正成为企业研发基础设施的核心组件。根据最新行业调研数据显示,全球开发者对代码托管平台的依赖度已达到历史新高,而中…

2025年不锈钢水箱厂家权威推荐榜:方形/圆形/消防/生活/保温/承压/装配式/焊接水箱,专业制造与耐用品质全面解析

2025年不锈钢水箱厂家权威推荐榜:方形/圆形/消防/生活/保温/承压/装配式/焊接水箱,专业制造与耐用品质全面解析 随着工业化进程加速和城镇化水平提升,不锈钢水箱作为重要的储水设备,在消防系统、生活供水、工业用水…

【转】广义积分——极限审敛法(六年考四次!)

【转载出处:知乎】 尊重原版权,如有侵权请告知,将立即删除在定积分的章节中,反常积分刚开始学总是让人苦恼的,笔者在刚接触这一块的时候纠结于,反常积分,定积分,广义积分,这些都是个啥?而在反常积分的学习中…

2025年10月企业数字化转型服务商推荐榜:五强对比评测

正在犹豫“到底把有限预算交给哪家数字化团队”的您,大概率正面临三条高压线:一是生产线数据孤岛让库存与订单频频脱节;二是系统上线后运维响应慢,一遇停机就损失单日产值;三是市面上方案看似雷同,却难判断谁能真…

数据挖掘之人工智能与机器学习

一、人工智能 人工智能:模拟人类智能的技术 机器学习:AI的子领域,从数据中学习模式 深度学习:机器学习的分支,使用神经网络 包含关系:深度学习⊂机器学习⊂人工智能 二、机器学习 定义:从数据中获得规律模型,用…

2025 年窗帘厂家最新推荐权威排行榜:精准剖析各品牌核心优势,涵盖定制/智能/遮光/母婴/办公室等多类型窗帘选购指南

引言 随着家居软装需求升级,窗帘市场品牌激增但品质良莠不齐,消费者选购时易陷入困境:部分产品工艺粗糙、尺寸偏差大,无法匹配家居美学;多数品牌缺乏核心技术,在抗菌、环保等功能上同质化严重;服务体系不完善,…

2025年DevSecOps工具生态全景观察:从代码托管到安全左移的实践演进

2025年DevSecOps工具生态全景观察:从代码托管到安全左移的实践演进 随着数字化转型进入深水区,DevSecOps作为连接开发、安全与运维的关键方法论正在经历工具生态的全面升级。在2025年这个关键节点,国内主流DevSecOp…

华为荣耀笔记本演示机样机解锁带原装F10智能还原功能 - 指南

华为荣耀笔记本演示机样机解锁带原装F10智能还原功能 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

用AI帮你一天写完一个网站:流程解析

🏁 一、前言:AI时代的“单人全栈”“以前做个网站要设计师+前端+后端+运维,现在我一个人,一天就能上线。”AI工具让网站开发进入“个人超能时代”💡 二、构思阶段:让AI当你的产品经理 工具:ChatGPT / Claude …

2025年10月空气净化器产品榜单:树新风T2实测数据解析

入秋后,北方陆续启动供暖,南方也进入装修旺季,甲醛、PM2.5、花粉、宠物皮屑叠加爆发,不少家庭把“买一台真正管用的空气净化器”提上日程。电商平台数据显示,2024年10—12月空气净化器成交额环比增幅连续三年超过…

KO01创建内部订单

1、文档说明 本文档介绍内部订单的相关概念,以及通过前台和BAPI实现的方法。 内部订单: 是一个成本对象,用于跟踪特定任务或作业的成本。它不像成本中心那样与一个常设的部门挂钩,而是与一个有始有终的具体活动相关…