工具
NL2SQL 工具
NL2SQLTool
旨在将自然语言转换为 SQL 查询。
NL2SQL 工具
描述
此工具用于将自然语言转换为 SQL 查询。当传递给代理时,它将生成查询,然后使用这些查询与数据库交互。
这支持多种工作流程,例如让代理访问数据库,根据目标获取信息,然后使用这些信息生成响应、报告或任何其他输出。同时,它还赋予代理根据其目标更新数据库的能力。
注意:请确保代理有权访问只读副本,或者代理可以在数据库上运行插入/更新查询是可以接受的。
要求
- SqlAlchemy
- 任何数据库兼容库(例如 psycopg2, mysql-connector-python)
安装
安装 crewai_tools 包
用法
为了使用 NL2SQLTool,您需要将数据库 URI 传递给该工具。URI 应采用 dialect+driver://username:password@host:port/database
格式。
代码
示例
主要任务目标是
“检索每个城市的平均、最大和最小月收入,但只包括用户数多于一个的城市。此外,统计每个城市的用户数量,并按平均月收入降序排列结果”
因此代理尝试从数据库获取信息,第一次是错误的,所以代理再次尝试并获取到正确的信息,然后传递给下一个代理。
第二个任务目标是
“审查数据并创建一个详细报告,然后在数据库中根据提供的数据创建表,字段基于提供的数据。包括每个城市的平均、最大和最小月收入信息,但只包括用户数多于一个的城市。此外,统计每个城市的用户数量,并按平均月收入降序排列结果。”
现在事情变得有趣起来,代理生成的 SQL 查询不仅创建了表,还插入了数据到表中。最后,代理仍然返回最终报告,该报告与数据库中的内容完全一致。
这是一个简单的示例,展示了 NL2SQLTool 如何用于与数据库交互并根据数据库中的数据生成报告。
该工具为代理的逻辑及其与数据库的交互方式提供了无限的可能性。