跳转到内容

Singlestore

单存储读取器 #

基类:EventBaseReader

SingleStore 读取器。

参数:

名称 类型 描述 默认
scheme str

数据库架构。

required
host str

数据库主机。

required
port str

数据库端口。

required
user str

数据库用户。

required
password str

数据库密码。

required
dbname str

数据库名称。

required
table_name str

表名。

required
content_field str

内容字段。

'text'
vector_field str

向量场。

'embedding'
workflows/handler.py 中的源代码llama_index/readers/singlestore/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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
class SingleStoreReader(BaseReader):
    """
    SingleStore reader.

    Args:
        scheme (str): Database Scheme.
        host (str): Database Host.
        port (str): Database Port.
        user (str): Database User.
        password (str): Database Password.
        dbname (str): Database Name.
        table_name (str): Table Name.
        content_field (str): Content Field.
        vector_field (str): Vector Field.

    """

    def __init__(
        self,
        scheme: str,
        host: str,
        port: str,
        user: str,
        password: str,
        dbname: str,
        table_name: str,
        content_field: str = "text",
        vector_field: str = "embedding",
    ):
        """Initialize with parameters."""
        self.scheme = scheme
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.dbname = dbname
        self.table_name = table_name
        self.content_field = content_field
        self.vector_field = vector_field

        try:
            import pymysql

            pymysql.install_as_MySQLdb()
        except ImportError:
            pass

        self.DatabaseReader = DatabaseReader
        self.reader = self.DatabaseReader(
            scheme=self.scheme,
            host=self.host,
            port=self.port,
            user=self.user,
            password=self.password,
            dbname=self.dbname,
        )

    def load_data(self, search_embedding: str, top_k: int = 5) -> List[Document]:
        """
        Load data from SingleStore.

        Args:
            search_embedding (str): The embedding to search.
            top_k (int): Number of results to return.

        Returns:
            List[Document]: A list of documents.

        """
        query = f"""
        SELECT {self.content_field}, DOT_PRODUCT_F64({self.vector_field}, JSON_ARRAY_PACK_F64(\'{search_embedding}\')) AS score
        FROM {self.table_name}
        ORDER BY score
        DESC LIMIT {top_k}
        """

        return self.reader.load_data(query=query)

load_data #

load_data(search_embedding: str, top_k: int = 5) -> List[文档]

从SingleStore加载数据。

参数:

名称 类型 描述 默认
search_embedding str

要搜索的嵌入向量。

required
top_k int

返回结果的数量。

5

返回:

类型 描述
List[文档]

List[Document]: 文档列表。

workflows/handler.py 中的源代码llama_index/readers/singlestore/base.py
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
def load_data(self, search_embedding: str, top_k: int = 5) -> List[Document]:
    """
    Load data from SingleStore.

    Args:
        search_embedding (str): The embedding to search.
        top_k (int): Number of results to return.

    Returns:
        List[Document]: A list of documents.

    """
    query = f"""
    SELECT {self.content_field}, DOT_PRODUCT_F64({self.vector_field}, JSON_ARRAY_PACK_F64(\'{search_embedding}\')) AS score
    FROM {self.table_name}
    ORDER BY score
    DESC LIMIT {top_k}
    """

    return self.reader.load_data(query=query)

选项: 成员:- SingleStoreReader