| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #!/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()
|