Skip to content

Psychic

PsychicReader #

Bases: BaseReader

心灵读者。

Psychic是一个平台,通过一个通用API,允许从许多SaaS应用程序同步数据。 该读取器连接到Psychic的一个实例,并在给定连接器ID、账户ID和API密钥的情况下从中读取数据。

在docs.psychic.dev了解更多信息。

Parameters:

Name Type Description Default
psychic_key str

Psychic的秘钥。 在https://dashboard.psychic.dev/api-keys获取一个。

None
Source code in llama_index/readers/psychic/base.py
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
65
66
67
68
69
70
71
72
73
74
class PsychicReader(BaseReader):
    """心灵读者。

    Psychic是一个平台,通过一个通用API,允许从许多SaaS应用程序同步数据。
    该读取器连接到Psychic的一个实例,并在给定连接器ID、账户ID和API密钥的情况下从中读取数据。

    在docs.psychic.dev了解更多信息。

    Args:
        psychic_key (str): Psychic的秘钥。
            在https://dashboard.psychic.dev/api-keys获取一个。"""

    def __init__(self, psychic_key: Optional[str] = None) -> None:
        """使用参数进行初始化。"""
        try:
            from psychicapi import ConnectorId, Psychic
        except ImportError:
            raise ImportError(
                "`psychicapi` package not found, please run `pip install psychicapi`"
            )
        if psychic_key is None:
            psychic_key = os.environ["PSYCHIC_SECRET_KEY"]
            if psychic_key is None:
                raise ValueError(
                    "Must specify `psychic_key` or set environment "
                    "variable `PSYCHIC_SECRET_KEY`."
                )

        self.psychic = Psychic(secret_key=psychic_key)
        self.ConnectorId = ConnectorId

    def load_data(
        self, connector_id: Optional[str] = None, account_id: Optional[str] = None
    ) -> List[Document]:
        """从Psychic连接中加载数据。

Args:
    connector_id(str):要连接的连接器ID
    account_id(str):要连接的账户ID

Returns:
    List[Document]:文档列表。
"""
        if not connector_id or not account_id:
            raise ValueError("Must specify both `connector_id` and `account_id`.")
        if connector_id not in self.ConnectorId.__members__:
            raise ValueError("Invalid connector ID.")

        # get all the documents in the database
        docs = []
        data = self.psychic.get_documents(self.ConnectorId[connector_id], account_id)
        for resource in data:
            text = resource.get("content")
            doc_id = resource.get("uri")
            docs.append(
                Document(
                    text=text,
                    id_=doc_id,
                    metadata={"connector_id": connector_id, "account_id": account_id},
                )
            )

        return docs

load_data #

load_data(
    connector_id: Optional[str] = None,
    account_id: Optional[str] = None,
) -> List[Document]

从Psychic连接中加载数据。

Returns:

Type Description
List[Document]

List[Document]:文档列表。

Source code in llama_index/readers/psychic/base.py
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
    def load_data(
        self, connector_id: Optional[str] = None, account_id: Optional[str] = None
    ) -> List[Document]:
        """从Psychic连接中加载数据。

Args:
    connector_id(str):要连接的连接器ID
    account_id(str):要连接的账户ID

Returns:
    List[Document]:文档列表。
"""
        if not connector_id or not account_id:
            raise ValueError("Must specify both `connector_id` and `account_id`.")
        if connector_id not in self.ConnectorId.__members__:
            raise ValueError("Invalid connector ID.")

        # get all the documents in the database
        docs = []
        data = self.psychic.get_documents(self.ConnectorId[connector_id], account_id)
        for resource in data:
            text = resource.get("content")
            doc_id = resource.get("uri")
            docs.append(
                Document(
                    text=text,
                    id_=doc_id,
                    metadata={"connector_id": connector_id, "account_id": account_id},
                )
            )

        return docs