> For the complete documentation index, see [llms.txt](https://doc.thordata.com/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.thordata.com/doc/zh/pa-qu/serp-api/ji-cheng/sdk-ji-cheng/ru-he-shi-yong-langchain-she-ding-thordata.md).

# 如何使用LangChain设定ThorData

安装 Thordata LangChain 软件包，配置 API Token，查询本地化 SERP 数据，并在 LangChain Agent 中使用搜索结果。

将 ThorData 与 LangChain 集成，为基于 LLM 的代理提供可靠、匿名且可扩展的 Web 访问权限，以执行真实世界的数据任务。涵盖 190个国家/地区。

您可以使用 <kbd>langchain-thordata</kbd> Python 包来实现此集成，该集成支援以下功能：

* ThorSerpTool - ThorData 提供强大的 SERP API，让您可以使用地理定位和高级自定义选项查询搜寻引擎（Google、Bing、Yandex、DuckDuckGo），这对于需要即时网路资讯的 AI 代理尤其有用。

或者通过 ThorData 的 MCP（模型上下文协定） —— 一个提供各种抓取和自动化工具的本地伺服器。虽然它不是<kbd>langchain-thordata</kbd>包的一部分，但可以透过 LangChain 的 <kbd>Tool</kbd> 或 <kbd>RequestsWrapper</kbd>手动集成。

**如何将ThorData与LangChain集成**

{% stepper %}
{% step %}
**获取您的ThorData API Token**

* 登入您的[ThorData 控制面板](https://dashboard.thordata.com/serp-api/get-started)。
* 前往[SERP API-API Token](https://dashboard.thordata.com/serp-api/get-started)。如果您尚未生成API Token，请生成一个。
  {% endstep %}

{% step %}
**安装ThorData集成**

运行以下命令安装用于LangChain的ThorData集成包：

```
pip install langchain-thordata
```

{% endstep %}

{% step %}
**设定环境变量**

将您的ThorData API Token设定为环境变量：

```
import os
os.environ["THOR_API_KEY"] = "your-token"
```

{% endstep %}

{% step %}
**使用ThorData + LangChain 集成**

API 参考：[SERP API 文档](https://dashboard.thordata.com/serp-api/get-started)

基本用法

```
from langchain_thordata import ThorSerpTool

search_tool = ThorSerpTool.from_env()

result = search_tool.invoke({
"query": "LangChain tutorial",
"engine": "google",
"params": {
"gl": "us",
"hl": "en",
"device": "desktop",
},
})

print(result)
```

{% endstep %}

{% step %}
**在Agent中使用**

```
from langchain_thordata import ThorSerpTool
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
tool = ThorSerpTool.from_env()

# Tool calling without langchain_classic agents
model_with_tools = llm.bind_tools([tool])
response = model_with_tools.invoke("Search for the latest LangChain news")
print(response)
```

{% endstep %}
{% endstepper %}
