Apify 数据集

Apify Datasetopen in new window 是一个可扩展的追加写入存储,用于存储结构化的网络抓取结果,例如产品列表或谷歌搜索结果,并可以将其导出为 JSON、CSV 或 Excel 等各种格式。数据集主要用于保存 Apify Actorsopen in new window 的结果,这些 Actors 是用于各种网络抓取、爬行和数据提取用例的无服务器云程序。

这个笔记本演示了如何将 Apify 数据集加载到 LangChain 中。

先决条件

您需要在 Apify 平台上拥有一个现有的数据集。如果您还没有,请首先查看这个笔记本,了解如何使用 Apify 提取文档、知识库、帮助中心或博客的内容。

#!pip install apify-client

首先,将 ApifyDatasetLoader 导入到您的源代码中:

from langchain.document_loaders import ApifyDatasetLoader
from langchain.document_loaders.base import Document

然后提供一个将 Apify 数据集记录字段映射到 LangChain Document 格式的函数。

例如,如果您的数据集项目的结构如下所示:

{
    "url": "https://apify.com",
    "text": "Apify is the best web scraping and automation platform."
}

下面的代码中的映射函数将把它们转换为 LangChain Document 格式,这样您就可以进一步使用任何 LLM 模型(例如问题回答)来处理它们。

loader = ApifyDatasetLoader(
    dataset_id="your-dataset-id",
    dataset_mapping_function=lambda dataset_item: Document(
        page_content=dataset_item["text"], metadata={"source": dataset_item["url"]}
    ),
)
data = loader.load()

使用问答示例

在这个示例中,我们使用数据集中的数据来回答一个问题。

from langchain.docstore.document import Document
from langchain.document_loaders import ApifyDatasetLoader
from langchain.indexes import VectorstoreIndexCreator
loader = ApifyDatasetLoader(
    dataset_id="your-dataset-id",
    dataset_mapping_function=lambda item: Document(
        page_content=item["text"] or "", metadata={"source": item["url"]}
    ),
)
index = VectorstoreIndexCreator().from_loaders([loader])
query = "What is Apify?"
result = index.query_with_sources(query)
print(result["answer"])
print(result["sources"])

Apify是一个用于开发、运行和共享无服务器云程序的平台。它使用户能够创建网页抓取和自动化工具,并在Apify平台上发布它们。

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
Last Updated:
Contributors: 刘强