TavilySearchResults和AgentExecutor的使用

文章介绍了如何使用ChatGLM库在Python环境中创建一个反应式代理,通过LLMChain和Tongyi进行交互,并利用TavilySearch和SerpAPI进行搜索,以获取关于特定问题的答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下llm使用的是ChatGLM。目前测试tongyi是报错的。

# !pip install -U langchain
# !pip install -U langchainhub
# !pip install -U langchain_openai
# !pip install -U dashscope

from langchain.chains import LLMChain
from langchain_community.llms import Tongyi
from langchain_community.tools.tavily_search import TavilySearchResults

import ChatGLM
from langchain.agents import AgentExecutor, create_structured_chat_agent, load_tools, create_react_agent

from langchain import hub
import os
from langchain.prompts import PromptTemplate
os.environ["DASHSCOPE_API_KEY"] = "sk-cc1c8314fdbd43ceaf26ec1824d5dd3b"
os.environ["SERPAPI_API_KEY"] = "9675cecd56acf05b5a881e6241b01dfd15aaf194"
os.environ["TAVILY_API_KEY"] = "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"

from langchain_community.utilities import SerpAPIWrapper
from langchain_community.tools import DuckDuckGoSearchRun
llm = ChatGLM.ChatGLM_LLM()
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
search = TavilySearchResults()
tools = [search]
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(
    agent=agent, tools=tools,verbose=True
)
output = agent_executor.invoke({"input": "2023年底中国大陆上映了哪些电影"})
print(output["output"])














### Tavily Search Results 使用说明 Tavily Search API 是一种专门为 AI 应用设计的强大搜索工具,能够帮助开发者实现实时、精确的信息检索功能[^1]。该 API 提供的结果不仅限于简单的关键词匹配,还涵盖了更丰富的数据维度,例如标题、URL、摘要以及具体的答案片段。 #### 获取 Tavily Search Results 的方法 要使用 Tavily Search API 来获取搜索结果,需遵循以下方式: 1. **注册并获取 API Key**: 开发者需要访问官方文档页面或其指定链接来申请账户,并获得专属的 API 密钥[^3]。 2. **安装必要的依赖库**: 如果计划在 Python 中集成此 API,则可借助 `requests` 或其他 HTTP 请求库发送请求。以下是所需代码示例: ```python import requests api_key = 'your_api_key_here' url = "https://api.tavily.com/v1/search" headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", } payload = { "query": "example query", # 替换为目标查询字符串 "num_results": 5 # 设置返回结果数量 } response = requests.post(url, json=payload, headers=headers) data = response.json() ``` 3. **解析响应数据结构**: 返回的数据通常会包含多个字段,其中最重要的部分如下所示: - `title`: 结果对应的网页标题; - `url`: 对应网页地址; - `snippet`: 截取自目标网站的内容摘要; - `answer`: 自动提取的答案(如果适用)。 #### 关键参数详解 - `query`: 用户输入的关键字或者自然语言问题。 - `num_results`: 希望接收的最大结果数目,默认值可能因具体实现而异。 - `include_answer`: 是否尝试从内容中抽取直接答案,默认情况下可能是关闭状态。 更多高级选项可通过查阅完整的 [Tavily Search API 文档](#) 获得进一步指导[^2]。 --- ### 示例:展示如何处理 JSON 数据 假设我们已经成功调用了上述接口并得到了一些样本数据,下面是如何遍历这些记录的一个简单例子: ```python for result in data['results']: print(f"Title: {result['title']}") print(f"URL: {result['url']}") print(f"Snippet: {result['snippet']}\n") if 'answer' in result and result['answer']: print(f"Answer: {result['answer']}") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值