from langchain_openai import ChatOpenAI
from langchain_community.agent_toolkits.load_tools import load_tools
from langchain.agents import AgentExecutor, create_react_agent
from langchain_core.prompts import PromptTemplate
llm = ChatOpenAI(
model="gpt-4o-mini",
base_url="https://api.openai-proxy.org/v1",
api_key="sk-d21LjbL0djjUVb",
)
tools = load_tools(["ddg-search"], llm=llm)
template = """尽可能地回答以下问题。你可以使用以下工具:
{tools}
请使用以下格式:
问题: 你需要回答的输入问题
思考: 你应该总是思考该做什么
行动: 要采取的行动,应该是 [{tool_names}] 中的一个工具
行动输入: 行动的输入
观察: 行动的结果
... (这个 思考/行动/行动输入/观察 的过程可以重复N次)
思考: 我现在知道最终答案了
最终答案: 对原始输入问题的最终答案
开始!
问题: {input}
思考:{agent_scratchpad}"""
prompt = PromptTemplate.from_template(template)
agent = create_react_agent(
llm=llm,
tools=tools,
prompt=prompt,
)
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True,
handle_parsing_errors=True,
max_iterations=10
)
question = "帮我分析最新的特斯拉股票表现如何?如果可以的话,请给出一些数据支持。"
try:
result = agent_executor.invoke({"input": question})
print("-" * 120)
print("最终答案:", result["output"])
except Exception as e:
print(f"执行过程中出现错误: {e}")
