Dataherald 项目介绍
Dataherald 是一个专为企业级关系型数据库问答设计的自然语言转 SQL 引擎。该项目允许用户从数据库建立一个 API,能够用普通英语回答问题。Dataherald 的主要应用场景包括:
- 让业务用户无需通过数据分析师即可从数据仓库获取洞察
- 在 SaaS 应用中实现从生产数据库进行问答
- 利用专有数据创建 ChatGPT 插件
项目组成
Dataherald 项目由四个主要组件组成,这些组件位于 /services
目录下:
-
Engine:核心的自然语言转 SQL 引擎。如果用户只需要使用 Dataherald API 而不需要用户认证,运行 Engine 就足够了。
-
Enterprise:应用程序 API 层,为 Dataherald 添加了认证、组织和用户管理以及其他业务逻辑。
-
Admin-console:Dataherald 的前端组件,提供图形用户界面进行配置和观察。要使用 Admin-console,需要同时运行 Engine 和 Enterprise。
-
Slackbot:一个 Slack 机器人,允许 Slack 频道中的用户与 Dataherald 交互。运行 Slackbot 需要同时运行 Engine 和 Enterprise。
本地运行
要在本地运行 Dataherald,用户需要按照以下步骤操作:
-
设置环境变量:每个服务都需要特定的环境变量。用户需要参考每个服务目录中的
.env.example
文件,并创建一个包含必要值的.env
文件。对于 Next.js 前端应用,文件名为.env.local
。 -
运行服务:用户可以使用根目录中的单个脚本运行所有服务。该脚本会创建一个公共的 Docker 网络,并以分离模式运行每个服务。
要启动所有服务,用户只需在终端中运行以下命令:
sh docker-run.sh
贡献指南
作为一个在快速发展领域中的开源项目,Dataherald 欢迎各种形式的贡献,无论是新功能、改进基础设施还是更好的文档。有兴趣贡献的开发者可以查看项目中的 CONTRIBUTING.md 文件,了解详细的贡献指南。
项目特点
-
开源:Dataherald 采用 Apache 2.0 许可证,允许用户自由使用和修改。
-
社区支持:项目有活跃的 Discord 社区,用户可以在那里获得支持和交流。
-
文档完善:项目提供了详细的文档,方便用户学习和使用。
-
模块化设计:通过分离核心引擎、企业级 API、管理控制台和 Slack 机器人,Dataherald 提供了灵活的部署选项。
-
Docker 支持:项目使用 Docker 进行容器化,简化了部署和运行过程。
通过 Dataherald,企业可以轻松地将自然语言查询能力集成到他们的数据系统中,大大提高了数据的可访问性和使用效率。无论是数据分析师、开发人员还是普通业务用户,都能从这个强大的工具中受益。