跳到内容

SingleStore

SingleStoreReader #

基类: BaseReader

SingleStore 读取器。

参数

名称 类型 描述 默认值
scheme str

数据库 Scheme。

必需
host str

数据库 Host。

必需
port str

数据库 Port。

必需
user str

数据库用户。

必需
password str

数据库密码。

必需
dbname str

数据库名称。

必需
table_name str

表名称。

必需
content_field str

内容字段。

'text'
vector_field str

向量字段。

'embedding'
源代码位于 llama-index-integrations/readers/llama-index-readers-singlestore/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[Document]

从 SingleStore 加载数据。

参数

名称 类型 描述 默认值
search_embedding str

要搜索的嵌入向量。

必需
top_k int

要返回的结果数量。

5

返回值

类型 描述
List[Document]

List[Document]:文档列表。

源代码位于 llama-index-integrations/readers/llama-index-readers-singlestore/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)