> ## Documentation Index
> Fetch the complete documentation index at: https://ikun.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# DuckDb

**DuckDbTools** 使 Agent 能够使用 DuckDb 运行 SQL 和分析数据。

## 先决条件

以下示例需要 DuckDB 库。要安装 DuckDB，请运行以下命令：

```shell theme={null}
pip install duckdb
```

有关更多安装选项，请参阅 [DuckDB 文档](https://duckdb.org/docs/installation)。

## 示例

以下 Agent 将使用 SQL 分析电影文件并返回结果。

```python cookbook/tools/duckdb_tools.py theme={null}
from agno.agent import Agent
from agno.tools.duckdb import DuckDbTools

agent = Agent(
    tools=[DuckDbTools()],
    show_tool_calls=True,
    system_message="Use this file for Movies data: https://agno-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv",
)

agent.print_response("What is the average rating of movies?", markdown=True, stream=False)
```

## Toolkit 参数

| 参数                 | 类型                   | 默认值     | 描述                     |
| ------------------ | -------------------- | ------- | ---------------------- |
| `db_path`          | `str`                | -       | 指定数据库文件的路径。            |
| `connection`       | `DuckDBPyConnection` | -       | 提供现有的 DuckDB 连接对象。     |
| `init_commands`    | `List`               | -       | 在数据库连接上运行的初始 SQL 命令列表。 |
| `read_only`        | `bool`               | `False` | 将数据库连接配置为只读。           |
| `config`           | `dict`               | -       | 数据库连接的配置选项。            |
| `run_queries`      | `bool`               | `True`  | 指示在操作期间是否运行 SQL 查询。    |
| `inspect_queries`  | `bool`               | `False` | 启用对 SQL 查询的检查，而不执行它们。  |
| `create_tables`    | `bool`               | `True`  | 允许在操作期间在数据库中创建表。       |
| `summarize_tables` | `bool`               | `True`  | 在操作期间启用表数据的摘要。         |
| `export_tables`    | `bool`               | `False` | 允许在操作期间将表导出为外部格式。      |

## Toolkit 函数

| 函数                         | 描述                                                                                                 |
| -------------------------- | -------------------------------------------------------------------------------------------------- |
| `show_tables`              | 显示数据库中表的函数                                                                                         |
| `describe_table`           | 描述表的函数                                                                                             |
| `inspect_query`            | 检查查询并返回查询计划的函数。在运行查询之前，请务必检查查询。                                                                    |
| `run_query`                | 运行查询并返回结果的函数。                                                                                      |
| `summarize_table`          | 计算表中汇总信息的函数。该函数启动一个查询，该查询计算所有列的多个汇总信息，包括最小值、最大值、平均值、标准差和近似唯一值。                                     |
| `get_table_name_from_path` | 从路径获取表名的函数                                                                                         |
| `create_table_from_path`   | 从路径创建表的函数                                                                                          |
| `export_table_to_path`     | 以所需格式（默认为 parquet）保存表的函数。如果提供了路径，则表将保存在该路径下。例如：如果路径是 /tmp，则表将保存为 /tmp/table.parquet。否则，它将在当前目录中保存。 |
| `load_local_path_to_table` | 将本地文件加载到 duckdb 的函数                                                                                |
| `load_local_csv_to_table`  | 将本地 CSV 文件加载到 duckdb 的函数                                                                           |
| `load_s3_path_to_table`    | 将 S3 中的文件加载到 duckdb 的函数                                                                            |
| `load_s3_csv_to_table`     | 将 S3 中的 CSV 文件加载到 duckdb 的函数                                                                       |
| `create_fts_index`         | 在表上创建全文搜索索引的函数                                                                                     |
| `full_text_search`         | 在表的列中搜索特定文本/关键字的全文搜索函数                                                                             |

## 开发者资源

* 查看 [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/duckdb.py)
* 查看 [Cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/tools/duckdb_tools.py)
