Skip to content

Cassandra

CassandraDatabaseToolSpec #

Bases: BaseToolSpec

与Apache Cassandra数据库交互的基本工具。

Source code in llama_index/tools/cassandra/base.py
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
class CassandraDatabaseToolSpec(BaseToolSpec):
    """与Apache Cassandra数据库交互的基本工具。"""

    db: CassandraDatabase = Field(exclude=True)

    spec_functions = [
        "cassandra_db_query",
        "cassandra_db_schema",
        "cassandra_db_select_table_data",
    ]

    def __init__(self, db: CassandraDatabase) -> None:
        """上下文中的数据库会话。"""
        self.db = db

    def cassandra_db_query(self, query: str) -> List[Document]:
        """执行CQL查询并将结果作为文档列表返回。

Args:
    query (str): 要执行的CQL查询。

Returns:
    List[Document]: 包含来自每行数据的Document对象列表。
"""
        documents = []
        result = self.db.run_no_throw(query, fetch="Cursor")
        for row in result:
            doc_str = ", ".join([str(value) for value in row])
            documents.append(Document(text=doc_str))
        return documents

    def cassandra_db_schema(self, keyspace: str) -> List[Document]:
        """该工具的输入是一个键空间名称,输出是Apache Cassandra表的表描述。
如果查询不正确,将返回错误消息。
如果返回错误,请向用户报告键空间不存在并停止。

Args:
    keyspace(str):要返回模式的键空间的名称。

Returns:
    List[Document]:包含表描述的每个文档对象的列表。
"""
        return [Document(text=self.db.get_keyspace_tables_str(keyspace))]

    def cassandra_db_select_table_data(
        self, keyspace: str, table: str, predicate: str, limit: int
    ) -> List[Document]:
        """从Apache Cassandra数据库中的表中获取数据的工具。
    使用WHERE子句指定查询中使用主键的谓词。空谓词将返回所有行。尽量避免这种情况。
    使用limit指定要返回的行数。空限制将返回所有行。

Args:
    keyspace (str): 包含表的keyspace的名称。
    table (str): 要返回数据的表的名称。
    predicate (str): 使用主键的查询的谓词。
    limit (int): 要返回的最大行数。

Returns:
    List[Document]: 包含数据行的Document对象列表。
"""
        return [
            Document(text=self.db.get_table_data(keyspace, table, predicate, limit))
        ]

cassandra_db_query #

cassandra_db_query(query: str) -> List[Document]

执行CQL查询并将结果作为文档列表返回。

Parameters:

Name Type Description Default
query str

要执行的CQL查询。

required

Returns:

Type Description
List[Document]

List[Document]: 包含来自每行数据的Document对象列表。

Source code in llama_index/tools/cassandra/base.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    def cassandra_db_query(self, query: str) -> List[Document]:
        """执行CQL查询并将结果作为文档列表返回。

Args:
    query (str): 要执行的CQL查询。

Returns:
    List[Document]: 包含来自每行数据的Document对象列表。
"""
        documents = []
        result = self.db.run_no_throw(query, fetch="Cursor")
        for row in result:
            doc_str = ", ".join([str(value) for value in row])
            documents.append(Document(text=doc_str))
        return documents

cassandra_db_schema #

cassandra_db_schema(keyspace: str) -> List[Document]

该工具的输入是一个键空间名称,输出是Apache Cassandra表的表描述。 如果查询不正确,将返回错误消息。 如果返回错误,请向用户报告键空间不存在并停止。

Returns:

Type Description
List[Document]

List[Document]:包含表描述的每个文档对象的列表。

Source code in llama_index/tools/cassandra/base.py
44
45
46
47
48
49
50
51
52
53
54
55
    def cassandra_db_schema(self, keyspace: str) -> List[Document]:
        """该工具的输入是一个键空间名称,输出是Apache Cassandra表的表描述。
如果查询不正确,将返回错误消息。
如果返回错误,请向用户报告键空间不存在并停止。

Args:
    keyspace(str):要返回模式的键空间的名称。

Returns:
    List[Document]:包含表描述的每个文档对象的列表。
"""
        return [Document(text=self.db.get_keyspace_tables_str(keyspace))]

cassandra_db_select_table_data #

cassandra_db_select_table_data(
    keyspace: str, table: str, predicate: str, limit: int
) -> List[Document]

从Apache Cassandra数据库中的表中获取数据的工具。 使用WHERE子句指定查询中使用主键的谓词。空谓词将返回所有行。尽量避免这种情况。 使用limit指定要返回的行数。空限制将返回所有行。

Parameters:

Name Type Description Default
keyspace str

包含表的keyspace的名称。

required
table str

要返回数据的表的名称。

required
predicate str

使用主键的查询的谓词。

required
limit int

要返回的最大行数。

required

Returns:

Type Description
List[Document]

List[Document]: 包含数据行的Document对象列表。

Source code in llama_index/tools/cassandra/base.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
    def cassandra_db_select_table_data(
        self, keyspace: str, table: str, predicate: str, limit: int
    ) -> List[Document]:
        """从Apache Cassandra数据库中的表中获取数据的工具。
    使用WHERE子句指定查询中使用主键的谓词。空谓词将返回所有行。尽量避免这种情况。
    使用limit指定要返回的行数。空限制将返回所有行。

Args:
    keyspace (str): 包含表的keyspace的名称。
    table (str): 要返回数据的表的名称。
    predicate (str): 使用主键的查询的谓词。
    limit (int): 要返回的最大行数。

Returns:
    List[Document]: 包含数据行的Document对象列表。
"""
        return [
            Document(text=self.db.get_table_data(keyspace, table, predicate, limit))
        ]