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