#!/usr/bin/env python3 """ 基础Agent示例 - LangChain学习起点 ================================= 这个文件展示了如何创建一个简单的Agent,包含: 1. 基础的LLM调用 2. 简单的提示词设计 3. 基本的结果处理 运行方法: python examples/basic_agent.py """ import os import sys from typing import Dict, Any from dotenv import load_dotenv # 加载环境变量 load_dotenv() try: from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate except ImportError as e: print(f"❌ 缺少依赖包: {e}") print("请运行: pip install langchain langchain-openai python-dotenv") sys.exit(1) class BasicAgent: """基础Agent示例""" def __init__(self): """初始化Agent""" api_key = os.getenv('DEEPSEEK_API_KEY') if not api_key: raise ValueError("请在.env文件中设置DEEPSEEK_API_KEY") # 初始化LLM self.llm = ChatOpenAI( model="deepseek-chat", api_key=api_key, base_url="https://api.deepseek.com", temperature=0.1 ) # 创建提示词模板 self.prompt_template = ChatPromptTemplate.from_messages([ ("system", "你是一个专业的数据分析师,请简洁地回答用户的问题。"), ("user", "{question}") ]) print("✅ BasicAgent初始化完成") def analyze_data(self, question: str, data_sample: str = None) -> Dict[str, Any]: """ 分析数据并返回结果 Args: question: 用户问题 data_sample: 数据样本(可选) Returns: 分析结果字典 """ try: # 构建完整的查询 full_question = question if data_sample: full_question += f"\n\n数据样本: {data_sample}" # 创建链并调用 chain = self.prompt_template | self.llm response = chain.invoke({"question": full_question}) return { "success": True, "question": question, "data_sample": data_sample, "answer": response.content, "model": "deepseek-chat" } except Exception as e: return { "success": False, "question": question, "error": str(e) } def main(): """主函数 - 演示基本Agent功能""" print("🚀 基础Agent示例") print("=" * 50) try: # 创建Agent实例 agent = BasicAgent() # 示例问题 questions = [ "请解释什么是数据分析", "如何提高数据分析的准确性?", "数据可视化的重要性是什么?" ] print("\n🧪 测试Agent功能:") print("-" * 30) # 逐个测试问题 for i, question in enumerate(questions, 1): print(f"\n📋 问题 {i}: {question}") result = agent.analyze_data(question) if result["success"]: print(f"✅ 回答: {result['answer'][:100]}...") else: print(f"❌ 错误: {result['error']}") print("\n🎉 基础Agent示例完成!") print("\n💡 下一步学习建议:") print("1. 查看 examples/state_machine.py - 学习LangGraph状态机") print("2. 查看 examples/advanced_agent.py - 学习高级Agent功能") print("3. 阅读 PRACTICE_GUIDE.md - 获取完整学习路径") except Exception as e: print(f"❌ 运行出错: {e}") print("\n🔧 故障排除:") print("1. 检查 .env 文件是否存在") print("2. 确认 DEEPSEEK_API_KEY 已正确设置") print("3. 确认网络连接正常") print("4. 运行: pip install -r requirements.txt") if __name__ == "__main__": main()