)
DeepSeek ReAct 实战手把手教你打造一个智能生活小助手附完整代码在当今AI技术飞速发展的时代大模型如DeepSeek已经展现出惊人的推理和生成能力。然而即使是这些强大的模型在面对某些垂直领域或实时性要求较高的任务时仍然存在局限性。这时结合ReAct框架构建的Agent系统就显得尤为重要。本文将带你从零开始一步步实现一个基于DeepSeek和ReAct的智能生活助手解决实际生活中的常见问题。1. 为什么需要Agent大模型虽然强大但存在几个明显的局限性知识时效性未联网状态下无法获取最新信息领域专业性对特定领域如医疗、法律缺乏深度知识操作执行无法直接调用外部API或执行具体操作Agent系统的核心价值在于它能够自主规划任务分解动态调用外部工具持续学习和优化决策提示一个优秀的Agent系统不是要替代大模型而是通过框架设计弥补其不足实现112的效果。2. ReAct框架解析ReActReasoningActing是一种将推理与行动结合的思维框架其核心工作流程如下Thought → Action → Observation → Thought → ... → Final Answer2.1 关键组件详解组件功能描述实现要点Thought任务分析和规划引导模型进行逻辑推理Action工具调用决策明确可用的工具集Observation结果评估验证工具执行效果2.2 典型执行流程初始化阶段加载大模型DeepSeek定义可用工具集构建ReAct提示模板执行循环while not task_completed: # 生成Thought thought generate_thought(prompt) # 决定是否需要Action if needs_action(thought): action select_action(thought) result execute_action(action) update_prompt_with_observation(result) else: final_answer extract_answer(thought) break3. 实战开发智能生活助手3.1 环境准备首先确保安装必要的Python包pip install openai python-dotenv3.2 工具定义我们创建一个tools.py文件定义查询水果价格的工具def query_fruit_price(fruit: str) - float: 查询水果单价模拟数据 price_map { 苹果: 5.8, 香蕉: 3.2, 橙子: 4.5 } return price_map.get(fruit, 0.0) TOOLS [{ name: query_fruit_price, description: 查询指定水果的单价, parameters: { type: object, properties: { fruit: {type: string} }, required: [fruit] } }]3.3 ReAct提示工程构建提示模板是核心环节这里我们优化后的模板REACT_TEMPLATE 你是一个智能生活助手请遵循以下规则 1. 先思考是否需要使用工具 2. 如需工具严格按格式执行Thought: 需要使用的工具及原因 Action: 工具名称 Action Input: {参数名:参数值}3. 获得Observation后继续思考 4. 最终答案格式Final Answer: 完整回答当前可用工具{tools} 问题{query} 3.4 主逻辑实现创建agent.py实现核心逻辑import re import json from openai import OpenAI class LifeAssistant: def __init__(self, api_key): self.client OpenAI(api_keyapi_key) self.memory [] def run(self, query): prompt self._build_prompt(query) while True: response self._get_llm_response(prompt) if Final Answer in response: return self._extract_final_answer(response) action self._parse_action(response) result self._execute_action(action) prompt f\nObservation: {result} def _execute_action(self, action): if action[name] query_fruit_price: return query_fruit_price(action[input][fruit])4. 高级优化技巧4.1 错误处理机制def safe_execute(action): try: return execute_action(action) except Exception as e: return fError: {str(e)}4.2 记忆增强实现简单的对话记忆class Memory: def __init__(self, max_length5): self.history [] self.max_length max_length def add(self, role, content): self.history.append({role: role, content: content}) if len(self.history) self.max_length: self.history.pop(0)4.3 性能监控添加执行计时装饰器import time def timer(func): def wrapper(*args, **kwargs): start time.time() result func(*args, **kwargs) print(f{func.__name__} executed in {time.time()-start:.2f}s) return result return wrapper5. 完整代码示例以下是整合后的核心代码结构smart_assistant/ ├── __init__.py ├── agent.py # 主逻辑 ├── tools.py # 工具定义 ├── memory.py # 记忆模块 └── utils.py # 辅助函数关键执行示例assistant LifeAssistant(api_keyyour_key) response assistant.run(3个苹果和2把香蕉总共多少钱) print(response)在实际项目中这种架构已经成功应用于智能家居控制个人健康管理家庭财务规划开发过程中发现几个关键点工具描述的准确性直接影响模型调用效果适度的记忆长度能显著提升对话连贯性错误处理不可或缺特别是API调用场景