Skip to content

Apify

ApifyActor #

Bases: BaseReader

Apify Actor 读取器。 调用Apify平台上的一个Actor,并在其完成时读取其生成的数据集。

Args: apify_api_token (str): Apify API令牌。

Source code in llama_index/readers/apify/actor/base.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
class ApifyActor(BaseReader):
    """Apify Actor 读取器。
调用Apify平台上的一个Actor,并在其完成时读取其生成的数据集。

Args:
apify_api_token (str): Apify API令牌。"""

    def __init__(self, apify_api_token: str) -> None:
        """初始化Apify Actor读取器。"""
        from apify_client import ApifyClient

        self.apify_api_token = apify_api_token

        client = ApifyClient(apify_api_token)
        if hasattr(client.http_client, "httpx_client"):
            client.http_client.httpx_client.headers[
                "user-agent"
            ] += "; Origin/llama_index"
        self.apify_client = client

    def load_data(
        self,
        actor_id: str,
        run_input: Dict,
        dataset_mapping_function: Callable[[Dict], Document],
        *,
        build: Optional[str] = None,
        memory_mbytes: Optional[int] = None,
        timeout_secs: Optional[int] = None,
    ) -> List[Document]:
        """调用Apify平台上的一个Actor,等待其完成,并返回其生成的数据集。

Args:
    actor_id (str): Actor的ID或名称。
    run_input (Dict): 您要运行的Actor的输入对象。
    dataset_mapping_function (Callable): 一个接受单个字典(Apify数据集项)并将其转换为Document类实例的函数。
    build (str, optional): 可选参数,指定要运行的Actor构建。可以是构建标签或构建编号。
    memory_mbytes (int, optional): 运行的可选内存限制,以兆字节为单位。
    timeout_secs (int, optional): 运行的可选超时时间,以秒为单位。

Returns:
    List[Document]: 文档列表。
"""
        actor_call = self.apify_client.actor(actor_id).call(
            run_input=run_input,
            build=build,
            memory_mbytes=memory_mbytes,
            timeout_secs=timeout_secs,
        )

        reader = ApifyDataset(self.apify_api_token)
        return reader.load_data(
            dataset_id=actor_call.get("defaultDatasetId"),
            dataset_mapping_function=dataset_mapping_function,
        )

load_data #

load_data(
    actor_id: str,
    run_input: Dict,
    dataset_mapping_function: Callable[[Dict], Document],
    *,
    build: Optional[str] = None,
    memory_mbytes: Optional[int] = None,
    timeout_secs: Optional[int] = None
) -> List[Document]

调用Apify平台上的一个Actor,等待其完成,并返回其生成的数据集。

Parameters:

Name Type Description Default
actor_id str

Actor的ID或名称。

required
run_input Dict

您要运行的Actor的输入对象。

required
dataset_mapping_function Callable

一个接受单个字典(Apify数据集项)并将其转换为Document类实例的函数。

required
build str

可选参数,指定要运行的Actor构建。可以是构建标签或构建编号。

None
memory_mbytes int

运行的可选内存限制,以兆字节为单位。

None
timeout_secs int

运行的可选超时时间,以秒为单位。

None

Returns:

Type Description
List[Document]

List[Document]: 文档列表。

Source code in llama_index/readers/apify/actor/base.py
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    def load_data(
        self,
        actor_id: str,
        run_input: Dict,
        dataset_mapping_function: Callable[[Dict], Document],
        *,
        build: Optional[str] = None,
        memory_mbytes: Optional[int] = None,
        timeout_secs: Optional[int] = None,
    ) -> List[Document]:
        """调用Apify平台上的一个Actor,等待其完成,并返回其生成的数据集。

Args:
    actor_id (str): Actor的ID或名称。
    run_input (Dict): 您要运行的Actor的输入对象。
    dataset_mapping_function (Callable): 一个接受单个字典(Apify数据集项)并将其转换为Document类实例的函数。
    build (str, optional): 可选参数,指定要运行的Actor构建。可以是构建标签或构建编号。
    memory_mbytes (int, optional): 运行的可选内存限制,以兆字节为单位。
    timeout_secs (int, optional): 运行的可选超时时间,以秒为单位。

Returns:
    List[Document]: 文档列表。
"""
        actor_call = self.apify_client.actor(actor_id).call(
            run_input=run_input,
            build=build,
            memory_mbytes=memory_mbytes,
            timeout_secs=timeout_secs,
        )

        reader = ApifyDataset(self.apify_api_token)
        return reader.load_data(
            dataset_id=actor_call.get("defaultDatasetId"),
            dataset_mapping_function=dataset_mapping_function,
        )

ApifyDataset #

Bases: BaseReader

Apify数据集阅读器。

读取Apify平台上的数据集。#

Args:#

# apify_api_token(str):Apify API令牌。
Source code in llama_index/readers/apify/dataset/base.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class ApifyDataset(BaseReader):
    """Apify数据集阅读器。
    # 读取Apify平台上的数据集。

    # Args:
        # apify_api_token(str):Apify API令牌。"""

    def __init__(self, apify_api_token: str) -> None:
        """初始化Apify数据集读取器。"""
        from apify_client import ApifyClient

        client = ApifyClient(apify_api_token)
        if hasattr(client.http_client, "httpx_client"):
            client.http_client.httpx_client.headers[
                "user-agent"
            ] += "; Origin/llama_index"

        self.apify_client = client

    def load_data(
        self, dataset_id: str, dataset_mapping_function: Callable[[Dict], Document]
    ) -> List[Document]:
        """从Apify数据集中加载数据。

Args:
    dataset_id(str):数据集ID。
    dataset_mapping_function(Callable[[Dict], Document]):将数据集项映射到文档的函数。

Returns:
    List[Document]:文档列表。
"""
        items_list = self.apify_client.dataset(dataset_id).list_items(clean=True)

        document_list = []
        for item in items_list.items:
            document = dataset_mapping_function(item)
            if not isinstance(document, Document):
                raise ValueError("Dataset_mapping_function must return a Document")
            document_list.append(document)

        return document_list

load_data #

load_data(
    dataset_id: str,
    dataset_mapping_function: Callable[[Dict], Document],
) -> List[Document]

从Apify数据集中加载数据。

Returns:

Type Description
List[Document]

List[Document]:文档列表。

Source code in llama_index/readers/apify/dataset/base.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    def load_data(
        self, dataset_id: str, dataset_mapping_function: Callable[[Dict], Document]
    ) -> List[Document]:
        """从Apify数据集中加载数据。

Args:
    dataset_id(str):数据集ID。
    dataset_mapping_function(Callable[[Dict], Document]):将数据集项映射到文档的函数。

Returns:
    List[Document]:文档列表。
"""
        items_list = self.apify_client.dataset(dataset_id).list_items(clean=True)

        document_list = []
        for item in items_list.items:
            document = dataset_mapping_function(item)
            if not isinstance(document, Document):
                raise ValueError("Dataset_mapping_function must return a Document")
            document_list.append(document)

        return document_list