练习项目:多智能体天气查询系统

练习项目:多智能体天气查询系统

一、项目背景

1.0 技术栈

技术 版本 说明
Python 3.12+ 编程语言
uv 0.10+ Python 包管理器(虚拟环境)
openai-agents 0.12.5 OpenAI Agents SDK,多智能体框架
openai - OpenAI API 客户端(兼容 DeepSeek)
pydantic - 数据验证和设置管理
python-dotenv 1.2.2 环境变量管理
DeepSeek API - LLM 提供商(R1 推理模型、V3 对话模型)

虚拟环境管理(uv):

bash 复制代码
# 创建虚拟环境
uv venv

# 安装依赖
uv pip install openai-agents python-dotenv pydantic

# 运行脚本
uv run python xxx.py

# 运行模块
uv run python -m module_name

API 配置(.env):

bash 复制代码
API_KEY=your-api-key
BASE_URL=https://api.qnaigc.com/v1  # 或其他兼容 API 地址

系统架构

复制代码
用户输入: "北京今天天气怎么样?"
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│  规划智能体【系统管理器】(DeepSeek-R1)                      │
│  分析用户意图、提取城市名、确定调用策略                       │
└─────────────────────────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│  分配智能体【服务管理器】(DeepSeek-V3)                       │
│  调用天气查询工具                                            │
└─────────────────────────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│  天气查询工具                                               │
│  返回指定城市的天气信息                                       │
└─────────────────────────────────────────────────────────────┘
       │
       ▼
┌─────────────────────────────────────────────────────────────┐
│  格式化智能体【输出适配器】                                  │
│  根据用户语言格式化输出(中文/英文)                          │
└─────────────────────────────────────────────────────────────┘
       │
       ▼
  返回格式化后的天气信息

项目结构要求

复制代码
weather_agent/
├── __init__.py
├── agents/
│   ├── __init__.py
│   ├── planner.py          # 规划智能体 (deepseek-r1)
│   ├── dispatcher.py       # 分配智能体 (deepseek-v3)
│   └── formatters.py       # 格式化智能体
├── tools/
│   ├── __init__.py
│   └── weather_tools.py    # 天气查询工具
├── workflow.py             # 工作流(支持流式输出)
├── models.py               # 数据模型
└── demo.py                # 演示入口

技术要求

  1. 模型选择

    • 规划智能体使用 deepseek-r1
    • 其他智能体使用 deepseek-v3
  2. 环境配置

    • 使用 .env 文件配置 API_KEY 和 BASE_URL
  3. 流式输出

    • 参考 knowledge_agent/workflow.py 实现流式输出
  4. 工具实现

    • 使用 @function_tool 装饰器
    • 实现天气查询功能(可使用模拟数据)
  5. 多语言支持

    • 中文查询返回中文天气信息
    • 英文查询返回英文天气信息

功能要求

  1. 城市识别:从用户输入中提取城市名称
  2. 天气查询:查询指定城市的天气
  3. 多语言输出:根据用户语言返回对应格式
  4. 错误处理:对无效城市给出友好提示

验收标准

  1. 运行 python -m weather_agent.demo
  2. 输入测试:
    • "北京今天天气怎么样?" → 返回中文天气
    • "How's the weather in Tokyo?" → 返回英文天气
  3. 实现流式输出,实时显示各阶段进度

扩展挑战(可选)

  1. 支持多天预报查询
  2. 支持温度单位切换(摄氏度/华氏度)
  3. 添加更多天气信息(湿度、风力、空气质量等)
  4. 使用真实的天气 API(如 OpenWeatherMap)

参考资料

  • multi_agent_coordinator/ - 完整参考实现
  • knowledge_agent/workflow.py - 流式输出参考
  • .env - 环境配置参考
相关推荐
余俊晖2 小时前
多模态文档解析新进展:多模态OCR解析文档中的任意内容实现方案
人工智能·自然语言处理·多模态
LSssT.2 小时前
【01】什么是机器学习?理论基础与技术要点
人工智能·机器学习
余俊晖2 小时前
多模态文档解析最新开源进展:2B参数FireRed-OCR模型方法、数据
人工智能·自然语言处理·ocr·多模态
xixixi777772 小时前
5G核心网核心之辨:从服务化架构(SBA)到网络切片的深度实践解析
人工智能·网络安全·信息与通信·通信
Cha0DD2 小时前
【由浅入深探究langchain】第四集-(RAG)语义搜索-数据入库
人工智能·ai·langchain
ryrhhhh2 小时前
AI流量闭环搭建指南:矩阵跃动龙虾机器人+GEO,从占位到转化全自动化
人工智能·矩阵·机器人
YOLO视觉与编程2 小时前
一文读懂-yolo26如何预测识别图片|视频|摄像头|文件夹检测适用v8v11
人工智能·深度学习·yolo·目标检测·机器学习
互联网江湖2 小时前
阅文集团站在旧时代里,迎接IP+AI的新春天
人工智能
新缸中之脑2 小时前
mflux:Mac本地生图AI工具
人工智能·macos