Skip to content

Myscale

MyScaleReader #

Bases: BaseReader

我的规模读取器。

Parameters:

Name Type Description Default
myscale_host str)

用于连接到MyScale后端的URL。

required
username str)

登录的用户名。

required
password str)

登录的密码。

required
myscale_port int)

用于通过HTTP连接的URL端口。默认为8443。

8443
database str)

用于查找表的数据库名称。默认为'default'。

'default'
table str)

要操作的表名称。默认为'vector_table'。

'llama_index'
index_type str

索引类型字符串。默认为"IVFLAT"

'IVFLAT'
metric str)

计算距离的度量标准,支持('l2', 'cosine', 'ip')。默认为'cosine'

'cosine'
batch_size int

要插入的文档大小。默认为32。

32
index_params dict

MyScale的索引参数。默认为None。

None
search_params dict

MyScale查询的搜索参数。默认为None。

None
Source code in llama_index/readers/myscale/base.py
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
class MyScaleReader(BaseReader):
    """我的规模读取器。

    Args:
        myscale_host (str) : 用于连接到MyScale后端的URL。
        username (str) : 登录的用户名。
        password (str) : 登录的密码。
        myscale_port (int) : 用于通过HTTP连接的URL端口。默认为8443。
        database (str) : 用于查找表的数据库名称。默认为'default'。
        table (str) : 要操作的表名称。默认为'vector_table'。
        index_type (str): 索引类型字符串。默认为"IVFLAT"
        metric (str) : 计算距离的度量标准,支持('l2', 'cosine', 'ip')。默认为'cosine'
        batch_size (int, optional): 要插入的文档大小。默认为32。
        index_params (dict, optional): MyScale的索引参数。默认为None。
        search_params (dict, optional): MyScale查询的搜索参数。默认为None。"""

    def __init__(
        self,
        myscale_host: str,
        username: str,
        password: str,
        myscale_port: Optional[int] = 8443,
        database: str = "default",
        table: str = "llama_index",
        index_type: str = "IVFLAT",
        metric: str = "cosine",
        batch_size: int = 32,
        index_params: Optional[dict] = None,
        search_params: Optional[dict] = None,
        **kwargs: Any,
    ) -> None:
        """初始化参数。"""
        self.client = clickhouse_connect.get_client(
            host=myscale_host,
            port=myscale_port,
            username=username,
            password=password,
        )

        self.config = MyScaleSettings(
            table=table,
            database=database,
            index_type=index_type,
            metric=metric,
            batch_size=batch_size,
            index_params=index_params,
            search_params=search_params,
            **kwargs,
        )

    def load_data(
        self,
        query_vector: List[float],
        where_str: Optional[str] = None,
        limit: int = 10,
    ) -> List[Document]:
        """从MyScale加载数据。

Args:
    query_vector(List[float]):查询向量。
    where_str(Optional[str],可选):where条件字符串。默认为None。
    limit(int):要返回的结果数量。

Returns:
    List[Document]:文档列表。
"""
        query_statement = self.config.build_query_statement(
            query_embed=query_vector,
            where_str=where_str,
            limit=limit,
        )

        return [
            Document(id_=r["doc_id"], text=r["text"], metadata=r["metadata"])
            for r in self.client.query(query_statement).named_results()
        ]

load_data #

load_data(
    query_vector: List[float],
    where_str: Optional[str] = None,
    limit: int = 10,
) -> List[Document]

从MyScale加载数据。

Returns:

Type Description
List[Document]

List[Document]:文档列表。

Source code in llama_index/readers/myscale/base.py
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
    def load_data(
        self,
        query_vector: List[float],
        where_str: Optional[str] = None,
        limit: int = 10,
    ) -> List[Document]:
        """从MyScale加载数据。

Args:
    query_vector(List[float]):查询向量。
    where_str(Optional[str],可选):where条件字符串。默认为None。
    limit(int):要返回的结果数量。

Returns:
    List[Document]:文档列表。
"""
        query_statement = self.config.build_query_statement(
            query_embed=query_vector,
            where_str=where_str,
            limit=limit,
        )

        return [
            Document(id_=r["doc_id"], text=r["text"], metadata=r["metadata"])
            for r in self.client.query(query_statement).named_results()
        ]