.01
.02
思考:根据用户查询,代理生成关于如何解决问题的思路。 行动:代理根据其思考执行某些操作,利用可用的工具或 API,例如谷歌搜索、文件加载等。 观察:代理分析其行动结果,并决定是否继续该过程或提供最终答案。
思考:关于任务的推理。 行动:要执行的动作,例如“搜索”。 行动输入:执行该动作的输入,例如搜索查询。 观察:该动作的结果。 思考:基于观察的进一步推理。 最终答案:代理的结论。
思考:为了准确回答这个查询,我需要找到关于最近的印度与英格兰测试系列赛的信息,确定最佳球员,并收集他们的表现细节。我将开始搜索系列赛的结果。 行动:搜索 行动输入:“2024 年印度与英格兰测试系列赛结果” 观察:最近的印度与英格兰测试系列赛以印度 4-1 获胜告终,该系列赛于 2024 年 1 月至 3 月在印度进行。
.03
分析球员表现趋势。 预测最佳击球顺序或投球调整。 根据击球手的击球区域建议场上布阵。
理解复杂的客户查询。 获取相关产品信息和故障排除指南。 逐步引导客户解决问题。
评估学生当前的知识水平。 将复杂主题分解为可管理的小块。 根据学生的反馈调整教学风格。 提供实时反馈并建议额外资源。
.04
!pip install llama-index
!pip install duckduckgo-search
!pip install llama-index-llms-gemini
from llama_index.core.tools import FunctionTool
from duckduckgo_search import DDGS
from llama_index.llms.gemini import Gemini
from llama_index.core import Settings
import os
GOOGLE_API_KEY = "" # 在这里添加您的 API 密钥
os.environ["GOOGLE_API_KEY"] = GOOGLE_API_KEY
llm = Gemini()
Settings.llm = llm
def search(query:str) -> str:
"""
Args:
query: 用户提示
return:
context (str): 用户查询的搜索结果
"""
req = DDGS()
response = req.text(query, max_results=4)
context = ""
for result in response:
context += result['body']
return context
search_tool = FunctionTool.from_defaults(fn=search)
from llama_index.core.agent import ReActAgent
agent = ReActAgent.from_tools(
[search_tool],
llm=llm,
verbose=True,
allow_parallel_tool_calls=True
)
template = """
你是一位专业的体育分析记者。
分析 Virat Kohli 在 2024 年 IPL 的表现趋势,并提供他的优缺点。
还需提供 Virat Kohli 在 IPL 2024 的总得分。
我还需要他在同一赛季的最高分。
"""
response = agent.chat(template)
print(response)
.05
参考:
https://medium.com/@akash-modi/logical-reasoning-with-react-agent-from-scratch-in-python-part-2-b74ef462244b