基于Python编写一个简化版AI Agent智能体

基于Python编写一个简化版AI Agent智能体import os from dotenv import load dotenv from langchain openai import ChatOpenAI from langchain core prompts import ChatPromptTe PromptTempla from langchain core tools import Tool import

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate, PromptTemplate from langchain_core.tools import Tool import json

加载环境变量

load_dotenv() os.environ[“OPENAI_API_KEY”] = “sk-淘宝key” api_key = os.getenv(‘OPENAI_API_KEY’)

========== 1. 初始化 LLM(大语言模型) ==========

LangChain 特点:统一的 LLM 接口,支持多种模型提供商

llm = ChatOpenAI(

base_url="https://api.openai.com/v1", api_key=api_key, model="gpt-4o", temperature=0.7 # LangChain 特点:统一的参数配置 

)

以下是具体的子任务方法

def research_destination():

print("进行目的地研究 - 收集当地文化、天气和景点信息") 

def book_transportation():

print("预订交通工具 - 选择航班和当地交通方式") 

def reserve_accommodation():

print("安排住宿 - 根据预算选择酒店或民宿") 

def plan_activities():

print("规划每日活动 - 创建景点游览和餐饮计划") 

def prepare_documents():

print("准备旅行文件 - 检查签证、打印预订确认单") 

def pack_luggage():

print("整理行李 - 根据天气准备衣物和必需品") 

def confirm_arrival():

print("确认抵达安排 - 联系接机服务和酒店") 

def calculator():

print(12*25) 

LangChain 特点:统一的工具接口定义

tools = [

Tool( name="research_destination", func=research_destination, description="进行目的地研究 - 收集当地文化、天气和景点信息" ), Tool( name="book_transportation", func=book_transportation, description="预订交通工具 - 选择航班和当地交通方式" ), Tool( name="reserve_accommodation", func=reserve_accommodation, description="安排住宿 - 根据预算选择酒店或民宿" ), Tool( name="plan_activities", func=book_transportation, description="规划每日活动 - 创建景点游览和餐饮计划" ), Tool( name="prepare_documents", func=prepare_documents, description="准备旅行文件 - 检查签证、打印预订确认单" ), Tool( name="pack_luggage", func=pack_luggage, description="整理行李 - 根据天气准备衣物和必需品" ), Tool( name="calculator", func=calculator, description="执行简单的数学计算,如加减乘除运算" ), Tool( name="confirm_arrival", func=confirm_arrival, description="确认抵达安排 - 联系接机服务和酒店" ) 

] def explain_and_process(json_data):

""" 解释并处理旅行计划JSON数据 参数: json_data -- 包含旅行计划步骤的JSON字符串 返回: 处理后的计划步骤列表 """ # 1. 解析JSON数据 try: plan_data = json.loads(json_data) print("✅ JSON解析成功!数据结构验证通过") except json.JSONDecodeError as e: print(f"❌ JSON解析错误: {str(e)}") return None # 2. 解释数据结构 print(" 

🔍 JSON结构分析:“)

print(f"- 顶层对象包含 {len(plan_data)} 个键: {list(plan_data.keys())}") print(f"- 'steps' 键包含 {len(plan_data['steps'])} 个步骤") # 3. 提取并处理步骤数据 steps = [] print(" 

📋 计划步骤详情:”)

for step in plan_data["steps"]: # 验证必要字段 if "id" not in step or "description" not in step: print(f"⚠️ 警告: 步骤缺少必要字段 - {step}") continue # 创建步骤对象 step_obj = { "id": step["id"], "description": step["description"], "status": "pending" # 添加执行状态 } steps.append(step_obj) # 打印步骤信息 print(f"步骤 {step['id']}: {step['description']}") if "research_destination" in step['description'].lower(): research_destination() elif "book_transportation" in step['description'].lower(): book_transportation() elif "reserve_accommodation" in step['description'].lower(): reserve_accommodation() elif "plan_activities" in step['description'].lower(): plan_activities() elif "prepare_documents" in step['description'].lower(): prepare_documents() elif "pack_luggage" in step['description'].lower(): pack_luggage() elif "calculator" in step['description'].lower(): calculator() elif "confirm_arrival" in step['description'].lower(): confirm_arrival() # 4. 添加额外信息 print(" 

✨ 处理后的数据结构:“)

print(f"- 总步骤数: {len(steps)}") print(f"- 首个步骤: {steps[0]['description']}") print(f"- 最后步骤: {steps[-1]['description']}") return steps 

def plan_agents():

""" 演示简化版 Agents:手动工具选择和执行 LangChain 特点:工具集成和智能选择(这里用简化版演示概念) """ print("=" * 50) print("🤖 简化版 Agents 演示:计划选择与执行") print("=" * 50) # 创建工具选择提示词 tool_selection_prompt = ChatPromptTemplate.from_messages([ ("system", """你是一个专业任务规划AI。请将以下任务分解为5-7个有序的关键步骤。 输出要求: 1. 只输出JSON格式,而且JSON格式要正确 2. JSON内容包含一个"steps"数组,每个步骤是一个对象,包含"id"(数字序号)和"description"(用到的步骤,如research_destination) 3. 确保步骤间有逻辑顺序和依赖关系 可以用到的步骤: 1. research_destination - 进行目的地研究 - 收集当地文化、天气和景点信息 2. book_transportation - 预订交通工具 - 选择航班和当地交通方式 3. reserve_accommodation - 安排住宿 - 根据预算选择酒店或民宿 4. plan_activities - 规划每日活动 - 创建景点游览和餐饮计划 5. prepare_documents - 准备旅行文件 - 检查签证、打印预订确认单 6. pack_luggage - 整理行李 - 根据天气准备衣物和必需品 7. calculator - 执行数学计算 8. confirm_arrival - 确认抵达安排 - 联系接机服务和酒店 """), ("human", "{question}") ]) tool_chain = tool_selection_prompt | llm question = '我要去日本东京,帮我安排行程。' print(f"👤 用户问题:{question}") # 1. 工具选择 selection_result = tool_chain.invoke({"question": question}) response_json = selection_result.content.replace('json','').replace('','') print(f"🧠 返回json:{response_json}") explain_and_process(response_json) 

def main():

try: print("=== AI旅行规划Agent演示 ===") plan_agents() print("✅ 所有演示完成!") except Exception as e: print(f"❌ 演示过程中出现错误:{str(e)}") print("请检查 API 密钥和网络连接") 

if name == “main”:

main() 

小讯
上一篇 2026-04-24 14:01
下一篇 2026-04-24 13:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/275334.html