Apify

这个文档演示了如何在LangChain中使用Apify集成

Apifyopen in new window是一个用于网页抓取和数据提取的云平台,提供了一个名为"Actors"的预制应用程序生态系统,用于各种网页抓取、爬取和数据提取场景。例如,您可以使用它来提取Google搜索结果、Instagram和Facebook个人资料、Amazon或Shopify上的产品、Google地图评论等等。

在本示例中,我们将使用Website Content Crawleropen in new window Actor,它可以深度爬取文档、知识库、帮助中心或博客等网站,并从网页中提取文本内容。然后我们将这些文档输入到一个向量索引中,并从中回答问题。

#!pip install apify-client

首先,在您的源代码中导入ApifyWrapper

from langchain.document_loaders.base import Document
from langchain.indexes import VectorstoreIndexCreator
from langchain.utilities import ApifyWrapper

使用您的Apify API令牌open in new window和此示例的目的,还有您的OpenAI API密钥来初始化它:

import os
os.environ["OPENAI_API_KEY"] = "Your OpenAI API key"
os.environ["APIFY_API_TOKEN"] = "Your Apify API token"

apify = ApifyWrapper()

然后运行Actor,等待其完成,并从Apify数据集中获取结果到LangChain文档加载器。

请注意,如果您已经在Apify数据集中有一些结果,可以直接使用ApifyDatasetLoader加载它们,如此笔记本所示。在那个笔记本中,您还可以找到dataset_mapping_function的解释,它用于将Apify数据集记录中的字段映射到LangChain Document的字段。

loader = apify.call_actor(
    actor_id="apify/website-content-crawler",
    run_input={"startUrls": [{"url": "https://python.langchain.com/en/latest/"}]},
    dataset_mapping_function=lambda item: Document(
        page_content=item["text"] or "", metadata={"source": item["url"]}
    ),
)

从已爬取的文档中初始化向量索引:

index = VectorstoreIndexCreator().from_loaders([loader])

And finally, query the vector index:

query = "What is LangChain?"
result = index.query_with_sources(query)
print(result["answer"])
print(result["sources"])
 LangChain is a standard interface through which you can interact with a variety of large language models (LLMs). It provides modules that can be used to build language model applications, and it also provides chains and agents with memory capabilities.

https://python.langchain.com/en/latest/modules/models/llms.html, https://python.langchain.com/en/latest/getting_started/getting_started.html
Last Updated:
Contributors: 刘强