文章

sqlbot智能问数使用简介

sqlbot智能问数使用简介

sqlbot智能问数使用简介

基于v1.5.0

简介

SQLBot 是一款基于大语言模型和 RAG 的智能问数系统,用户可以实现对话式数据分析(ChatBI),快速提炼获取所需的数据信息及可视化图表,并且支持进一步开展智能分析。

其核心目标是让业务人员、运营人员乃至管理层都能在没有SQL基础的情况下,也能够轻松与数据库进行对话,即时获取数据分析的结果。

git地址 https://github.com/dataease/SQLBot

使用

服务启动

1
2
3
4
5
6
7
8
9
10
11
docker run -d \
  --name sqlbot \
  --restart unless-stopped \
  -p 8200:8000 \
  -p 8201:8001 \
  -e SERVER_IMAGE_HOST=http://127.0.0.1:8201/images/ \
  -v ./data/sqlbot/excel:/opt/sqlbot/data/excel \
  -v ./data/sqlbot/images:/opt/sqlbot/images \
  -v ./data/sqlbot/logs:/opt/sqlbot/logs \
  -v ./data/postgresql:/var/lib/postgresql/data \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/dataease/sqlbot:v1.5.0

注意,将SERVER_IMAGE_HOST项ip改为服务器的。

控制台访问

内部监听8000,目前映射为外部8200端口,url地址http://<服务器IP>:8200/,登录默认账号密码admin/SQLBot@123456

mcp调用

内部监听8001,目前映射为外部8201端口,参考 https://dataease.cn/sqlbot/v1/mcp_server/

1
2
3
4
5
6
{
   "sqlbot_mcp": {
       "url": "http://<your-server-ip>:8001/mcp", //  IP 替换为部署机器的地址和实际端口
       "transport": "sse"
    }
}

api调用

参考 https://dataease.cn/sqlbot/v1/faq/other/#2-sqlbot-api

  • 完整的API接口列表可在SQLBot访问地址后追加/docs进行查看,例如:https://your-sqlbot-domain/docs
  • 接口需要JWT Token鉴权
  • 在系统配置,通过API Key页面获取对应的 Access Key 和 Secret Key,换出JWT Token

最佳实践

参考 https://dataease.cn/sqlbot/v1/best_practice/#sqlbot

提升SQLBot智能问数的准确性,是一个系统性配置业务上下文的过程。

  • 数据源精简:剔除无关表,缩进范围提示准确率。
  • 数据治理
    • 数据库表设置字段别名和描述,越详细越好,方便从schema中获取并提供给大模型理解业务。
    • 数据库表字典值转换。表设置字段描述,格式例:”枚举值:key1=字典1, key2=字典2”
    • 手动定义表之间的连接关系,从而体现表的关联逻辑。
  • 提供标准示例SQL:方便大模型理解学习和复用。
  • 提供术语库:消除指标歧义和同义词等,方便大模型理解学习。

常见问题

  • 参数配置:默认开启了限制1000行数据,会把limit 1000加在生成的SQL最外层。某些场景可能会影响问数效果,按需关闭。
  • AI模型配置:可以增加模型参数,结合实际场景做限制。
    • temperature 温度,影响回答内容的创造性
    • max_tokens 最大输出
  • 对话异常错误码424:使用OneAPI代理模型,sqlbot报错日志内容for chunk in sql_res:。建议先排查模型侧日志,一般原因是输入token超限,建议调整大模型配置参数maxSeqLenmaxInputTokenLen
  • 华为昇腾等非标准OpenAI大模型服务化接口接入:部署OneAPI网关做接口代理转发。
本文由作者按照 CC BY 4.0 进行授权