2026年AI开发-python-langchain框架(3-21-Structured Chat ReAct 智能体构建及对比 ZeroShot ReAct)

AI开发-python-langchain框架(3-21-Structured Chat ReAct 智能体构建及对比 ZeroShot ReAct)coding utf 8 import os from dotenv import load dotenv from langchain agents import AgentExecuto create structured chat agent from langchain core tools import Tool from langchain openai

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



# -- coding: utf-8 -- import os from dotenv import load_dotenv from langchain.agents import AgentExecutor, create_structured_chat_agent from langchain_core.tools import Tool from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from datetime import datetime import re import json

加载环境变量

load_dotenv()

========================

1. 配置 LLM

========================

DEEPSEEK_API_KEY = “123” # 替换为实际的 API Key llm = ChatOpenAI(

api_key=DEEPSEEK_API_KEY, base_url="http://192.168.0.100:8000/v1", # Deepseek 的 API 基础地址 model="Qwen3-235B-A22B", # Deepseek 对话模型(可选:deepseek-chat-pro 等高级模型) temperature=0.1, # 温度参数(0-1,越低越稳定) max_tokens=1024 # 最大生成 tokens 

)

========================

2. 工具定义

========================

def get_current_time(input_str: str = “”) -> str:

"""获取当前系统时间""" return f"当前时间:{datetime.now().strftime('%Y年%m月%d日 %H:%M:%S')}" 

def calculate_math_expression(expression: str) -> str:

"""安全计算数学表达式""" try: if not re.match(r'^[d+-*/().s]+$', expression): return "表达式包含非法字符" result = eval(expression, {"__builtins__": {}}, {}) return f"计算结果:{result}" except: return "计算失败" 

tools = [

Tool( name="GetCurrentTime", func=get_current_time, description="获取当前系统时间,输入为空字符串" ), Tool( name="CalculateMathExpression", func=calculate_math_expression, description="计算数学表达式" ) 

]

========================

3. 【关键修复】超强约束 Prompt,禁止输出 标签

========================

prompt = ChatPromptTemplate.from_messages([

("system", """ 

你必须只输出纯 JSON,绝对禁止输出 、思考过程、解释文字、中文说明等任何内容

可用工具: {tools}

工具名称: {tool_names}

【输出格式 严格遵守】 {{“action”:“工具名”,“action_input”:“输入内容”}}

完成任务后输出: {{“action”:“Final Answer”,“action_input”:“直接回答结果”}}

禁止任何多余文字!只输出 JSON! “”“),

("human", "{input}"), ("ai", "{agent_scratchpad}"), 

])

========================

4. 创建 Agent

========================

agent = create_structured_chat_agent(llm, tools, prompt)

agent_executor = AgentExecutor(

agent=agent, tools=tools, verbose=True, handle_parsing_errors=True, # 容错解析错误 max_iterations=3, 

)

========================

5. 测试

========================

if name == “main”:

print("🔍 任务1:获取当前时间") result1 = agent_executor.invoke({"input": "现在几点了?只告诉我结果"}) print("✅ 最终答案:", result1["output"]) print(" 

” + “=”*60 + “ “)

print("🧮 任务2:数学计算") result2 = agent_executor.invoke({"input": "计算 100*(25+15)/4 - 80 等于多少?"}) print("✅ 最终答案:", result2["output"]) 

小讯
上一篇 2026-04-09 14:03
下一篇 2026-04-09 14:01

相关推荐

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