基于聊天的SQL客户端SQL Chat

在这里插入图片描述

本文完成于 6 月初,当时的版本存在 bug,自己添加的数据库会连不上,在本文发稿前,更新了最新的版本后,该问题已解决

什么是 SQL Chat ?

SQL Chat 是一个基于聊天的 SQL 客户端,使用自然语言与数据库以沟通的方式,实现对数据库的查询、修改、新增、删除等操作。SQL Chat 是由 Next.js 构建的,目前支持 MySQLPostgreSQLMSSQLTiDB Cloud数据库,未来将会支持更多。

官方提供了在线 demo,地址:https://www.sqlchat.ai

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 sqlchat ,选择第一个 sqlchat/sqlchat,因为只有一个 latest 版本

双击会直接下载

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
37613000

环境

可变
NEXTAUTH_SECRET可以理解为密码,任意字符串,例如 ef364b235c
OPENAI_API_KEYOne 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.5GPT-4 两种模型

所以需要在原来的渠道中,增加模型的名称 gpt-3.5-turbo

通过这种移花接木的手段,可以让 SQL Chatkimi-free-api 当做 OpenAI

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 sqlchat
mkdir -p /volume1/docker/sqlchat

# 进入 sqlchat 目录
cd /volume1/docker/sqlchat

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name sqlchat \
   --hostname localhost \
   -p 3761:3000 \
   -e NEXTAUTH_SECRET="$(openssl rand -hex 5)" \
   -e OPENAI_API_KEY=sk-bn6M52bOfdxYB3n2Ee717eA2C66b45318f1c95E4D9553d94 \
   -e OPENAI_API_ENDPOINT=http://192.168.0.197:3033 \
   -e NEXT_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:3000
    environment:
      - NEXTAUTH_SECRET=ef364b235c
      - OPENAI_API_KEY=sk-bn6M52bOfdxYB3n2Ee717eA2C66b45318f1c95E4D9553d94
      - OPENAI_API_ENDPOINT=http://192.168.0.197:3033
      - NEXT_PUBLIC_ALLOW_SELF_OPENAI_KEY=true

然后执行下面的命令

# 新建文件夹 sqlchat
mkdir -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 MacDocker 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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值