Apify 数据集
Apify Dataset 是一个为存储结构化的网络抓取结果而构建的可扩展且只追加的存储系统,支持顺序访问,主要用于存储如产品列表或Google搜索结果等数据,并可以导出为JSON、CSV或Excel等多种格式。数据集主要用于保存 Apify Actors 的结果——这些是用于各种网络抓取、爬虫和数据提取用例的无服务器云程序。
此笔记本展示了如何将Apify数据集加载到LangChain中。
前置条件
您需要在Apify平台上有现有的数据集。此示例展示了如何加载由网站内容爬虫生成的数据集。
%pip install --upgrade --quiet langchain langchain-apify langchain-openai
首先,将 ApifyDatasetLoader 导入到您的源代码中:
from langchain_apify import ApifyDatasetLoader
from langchain_core.documents import Document
API 参考:文档
找到您的Apify API令牌和OpenAI API密钥,并将这些初始化为环境变量:
import os
os.environ["APIFY_API_TOKEN"] = "your-apify-api-token"
os.environ["OPENAI_API_KEY"] = "your-openai-api-key"
然后提供一个函数,将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.indexes import VectorstoreIndexCreator
from langchain_apify import ApifyWrapper
from langchain_core.documents import Document
from langchain_core.vectorstores import InMemoryVectorStore
from langchain_openai import ChatOpenAI
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(
vectorstore_cls=InMemoryVectorStore, embedding=OpenAIEmbeddings()
).from_loaders([loader])
llm = ChatOpenAI(model="gpt-4o-mini")
query = "What is Apify?"
result = index.query_with_sources(query, llm=llm)
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.
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