本文完成于
6
月初,当时的版本存在
bug
,自己添加的数据库会连不上,在本文发稿前,更新了最新的版本后,该问题已解决
什么是 SQL Chat ?
SQL Chat
是一个基于聊天的
SQL
客户端,使用自然语言与数据库以沟通的方式,实现对数据库的查询、修改、新增、删除等操作。
SQL Chat
是由
Next.js
构建的,目前支持
MySQL
、
PostgreSQL
、
MSSQL
、
TiDB Cloud
数据库,未来将会支持更多。
官方提供了在线
demo
安装
在群晖上以 Docker 方式安装。
在注册表中搜索
sqlchat
,选择第一个
sqlchat/sqlchat
,因为只有一个
latest
版本
双击会直接下载
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用netstat-tunlp|grep 端口号
本地端口容器端口
3761
3000
环境
可变值
NEXTAUTH_SECRET
可以理解为密码,任意字符串,例如
ef364b235c
OPENAI_API_KEY
One API
的令牌
OPENAI_API_ENDPOINT
默认为
https://api.openai.com
,设为
One API
地址
NEXT_PUBLIC_ALLOW_SELF_OPENAI_KEY
设为
true
以允许
SQL Chat
服务的用户使用自己的
key
。
关于环境变量,老苏多唠叨几句,因为
OpenAI
在国内访问需要科学和稳定的网络,所以老苏还是选择了
One API
+
kimi-free-api
方案
文章传送门:大模型接口管理和分发系统One API
但因为没有指定模型的环境变量,设置中也只支持
GPT-3.5
和
GPT-4
两种模型
所以需要在原来的渠道中,增加模型的名称
gpt-3.5-turbo
通过这种移花接木的手段,可以让
SQL Chat
将
kimi-free-api
当做
OpenAI
命令行安装
如果你熟悉命令行,可能用
docker cli
更快捷
# 新建文件夹 sqlchatmkdir-p /volume1/docker/sqlchat
# 进入 sqlchat 目录cd /volume1/docker/sqlchat
# 运行容器docker run -d\--restart unless-stopped \--name sqlchat \--hostname localhost \-p3761:3000 \-eNEXTAUTH_SECRET="$(openssl rand -hex5)"\-eOPENAI_API_KEY=sk-bn6M52bOfdxYB3n2Ee717eA2C66b45318f1c95E4D9553d94 \-eOPENAI_API_ENDPOINT=http://192.168.0.197:3033 \-eNEXT_PUBLIC_ALLOW_SELF_OPENAI_KEY=true \
sqlchat/sqlchat
也可以用
docker-compose
安装,将下面的内容保存为
docker-compose.yml
文件
version:'3'services:sqlchat:image: sqlchat/sqlchat
container_name: sqlchat
restart: unless-stopped
ports:- 3761:3000environment:- NEXTAUTH_SECRET=ef364b235c
- OPENAI_API_KEY=sk-bn6M52bOfdxYB3n2Ee717eA2C66b45318f1c95E4D9553d94
- OPENAI_API_ENDPOINT=http://192.168.0.197:3033- NEXT_PUBLIC_ALLOW_SELF_OPENAI_KEY=true
然后执行下面的命令
# 新建文件夹 sqlchatmkdir-p /volume1/docker/sqlchat
# 进入 sqlchat 目录cd /volume1/docker/sqlchat
# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d
运行
在浏览器中输入
http://群晖IP:3761
就能看到主界面
中文
左下角齿轮进入设置,在
language
中找到
简体中文
Chat DB
选择
Sample PostgreSQL
作为示例数据库
比如
查询 employee 表的记录
点
Run SQL
可以查看运行结果
可以继续提问
当然我们也可以创建自己的
但奇怪的是,不管怎么设置都没能成功,真是绝了
- 用
IP
显示connect ETIMEDOUT
- 用
host.docker.internal
(这个域名一般在Docker for Mac
和Docker for Windows
中可以使用)显示getaddrinfo ENOTFOUND host.docker.internal
是我设置的问题还是
Bug?
,反正日志中看不到什么信息
延后了
2
个月,重新更新了最新的镜像后,发现已经好了
看来
6
月初的版本确实存在
bug
,但并不清楚具体是什么时候修复的
参考文档
sqlchat/sqlchat: Chat-based SQL Client and Editor for the next decade
地址:https://github.com/sqlchat/sqlchat
sqlchat.ai
地址:https://www.sqlchat.ai/
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。