使用LangChain轻松实现实时搜索:SearchApi Google搜索API指南

193 阅读2分钟

引言

在现代应用中,实时搜索功能至关重要。SearchApi提供了一种直接获取搜索引擎结果页面(SERP)数据的方式。本文将介绍如何在LangChain中使用SearchApi,帮助开发者快速集成和使用这一强大的工具。

主要内容

环境设置

  1. 前往 SearchApi官网 注册一个免费账户。

  2. 获取API密钥,将其设置为环境变量:

    export SEARCHAPI_API_KEY='your_api_key_here'
    
  3. 设置OpenAI API密钥:

    export OPENAI_API_KEY='your_openai_api_key_here'
    

SearchApiAPIWrapper使用

SearchApiAPIWrapper是一个便捷的工具,可用于将SearchApi功能包装在LangChain中。

导入并使用SearchApiAPIWrapper的基本步骤:

from langchain_community.utilities import SearchApiAPIWrapper
from langchain_openai import OpenAI
from langchain.agents import initialize_agent, Tool, AgentType

import os

# 设置环境变量
os.environ["SEARCHAPI_API_KEY"] = "your_api_key_here"
os.environ['OPENAI_API_KEY'] = "your_openai_api_key_here"

# 实例化OpenAI和SearchApi
llm = OpenAI(temperature=0)
search = SearchApiAPIWrapper()

# 定义工具
tools = [
    Tool(
        name="Intermediate Answer",
        func=search.run,
        description="用于执行搜索的工具"
    )
]

# 初始化Agent
self_ask_with_search = initialize_agent(tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True)

# 使用Agent运行查询
self_ask_with_search.run("Who lived longer: Plato, Socrates, or Aristotle?")

代码示例

以下是一个完整的示例,用于比较Plato, Socrates和Aristotle的寿命:

from langchain_community.utilities import SearchApiAPIWrapper
from langchain_openai import OpenAI
from langchain.agents import initialize_agent, Tool, AgentType
import os

# 设置环境变量(确保API代理可用,提升访问稳定性)
os.environ["SEARCHAPI_API_KEY"] = "your_api_key_here"  # 使用API代理服务提高访问稳定性
os.environ['OPENAI_API_KEY'] = "your_openai_api_key_here"

# 创建语言模型和搜索实例
llm = OpenAI(temperature=0)
search = SearchApiAPIWrapper()

# 定义工具集合
tools = [
    Tool(
        name="Intermediate Answer",
        func=search.run,
        description="useful for when you need to ask with search"
    )
]

# 初始化和运行Agent
self_ask_with_search = initialize_agent(tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True)
answer = self_ask_with_search.run("Who lived longer: Plato, Socrates, or Aristotle?")
print(answer)

常见问题和解决方案

  • API访问限制: 由于网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。

  • 环境变量设置错误: 确保在运行脚本之前,环境变量已正确设置。

总结和进一步学习资源

整合SearchApi在LangChain中实现实时搜索功能非常简单且高效。利用本文介绍的工具和方法,您可以轻松地将这一功能应用于各种场景。

进一步学习资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---