Oxylabs
Oxylabs 是一家领先的网络情报采集平台,秉承最高的商业、道德和合规标准,使全球企业能够解锁数据驱动的洞察。
概览
此包包含LangChain与Oxylabs的集成,使用LangChain框架通过Oxylabs Web Scraper API抓取Google搜索结果。
以下类由此包提供:<br>
OxylabsSearchRun- 一个工具,返回格式化的抓取的Google搜索结果OxylabsSearchResults- 一个工具,返回以JSON格式抓取的Google搜索结果OxylabsSearchAPIWrapper- 一个用于初始化Oxylabs API的API包装器
| 定价 |
|---|
| ✅ Free 5,000 results for 1 week |
设置
安装所需的依赖项。
%pip install -qU langchain-oxylabs
Credentials
设置适当的API密钥和环境变量。创建您的API用户凭证:在 Oxylabs控制台 注册免费试用或购买产品以创建您的API用户凭证(OXYLABS_USERNAME 和 OXYLABS_PASSWORD)。
import getpass
import os
os.environ["OXYLABS_USERNAME"] = getpass.getpass("Enter your Oxylabs username: ")
os.environ["OXYLABS_PASSWORD"] = getpass.getpass("Enter your Oxylabs password: ")
Instantiation
from langchain_oxylabs import OxylabsSearchAPIWrapper, OxylabsSearchRun
oxylabs_wrapper = OxylabsSearchAPIWrapper()
tool_ = OxylabsSearchRun(wrapper=oxylabs_wrapper)
Invocation
直接使用参数调用
The OxylabsSearchRun 工具接受一个单一的“查询”参数,该参数应该是一个自然语言查询,并返回组合字符串格式的结果:
tool_.invoke({"query": "Restaurants in Paris."})
Invoke with ToolCall
tool_ = OxylabsSearchRun(
wrapper=oxylabs_wrapper,
kwargs={
"result_categories": [
"local_information",
"combined_search_result",
]
},
)
from pprint import pprint
model_generated_tool_call = {
"args": {
"query": "Visit restaurants in Vilnius.",
"geo_location": "Vilnius,Lithuania",
},
"id": "1",
"name": "oxylabs_search",
"type": "tool_call",
}
tool_call_result = tool_.invoke(model_generated_tool_call)
# The content is a JSON string of results
pprint(tool_call_result.content)
使用于代理
安装所需的依赖项。
%pip install -qU "langchain[openai]" langgraph
import getpass
import os
from langchain.chat_models import init_chat_model
os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter API key for OpenAI: ")
llm = init_chat_model("gpt-4o-mini", model_provider="openai")
API 参考:init_chat_model
from langgraph.prebuilt import create_react_agent
# Initialize OxylabsSearchRun tool
tool_ = OxylabsSearchRun(wrapper=oxylabs_wrapper)
agent = create_react_agent(llm, [tool_])
user_input = "What happened in the latest Burning Man floods?"
for step in agent.stream(
{"messages": user_input},
stream_mode="values",
):
step["messages"][-1].pretty_print()
API 参考:create_react_agent
JSON结果
OxylabsSearchResults 工具可以作为 OxylabsSearchRun 的替代品以获取JSON格式的结果:
import json
from langchain_oxylabs import OxylabsSearchResults
tool_ = OxylabsSearchResults(wrapper=oxylabs_wrapper)
response_results = tool_.invoke({"query": "What are the most famous artists?"})
response_results = json.loads(response_results)
for result in response_results:
for key, value in result.items():
print(f"{key}: {value}")
API 参考
More information about this integration package can be found here: https://github.com/oxylabs/langchain-oxylabs
Oxylabs Web Scraper API 文档: https://developers.oxylabs.io/scraper-apis/web-scraper-api