介绍

SQL Chat 是一个基于聊天的 SQL 客户端,使用自然语言与数据库以沟通的方式,实现对数据库的查询、修改、新增、删除等操作。

性能特色

  • 自然语言处理:SQL Chat的核心是一个强大的自然语言处理引擎,能够理解你的意图并转换成SQL语句。
  • 多数据库支持:目前支持MySQL、PostgreSQL、MSSQL和TiDB Cloud,未来还会支持更多。
  • 易于部署:无论是在线使用还是私有化部署,都非常简单。特别是Docker部署,一行命令就能搞定。

快速安装使用

部署SQL Chat很简单,推荐使用Docker部署,使用以下命令(记得替换YOUR OPENAI KEY为你的OpenAI API密钥):

docker run --name sqlchat --platform linux/amd64 \
--env NEXTAUTH_SECRET="$(openssl rand -hex 5)" \
--env OPENAI_API_KEY=<<YOUR OPENAI KEY>> \
-p 3000:3000 --hostname localhost sqlchat/sqlchat

如果连接了同一个 host 上的数据库,在数据库连接配置中,使用 host.docker.internal 作为 host。

项目地址:

https://github.com/sqlchat/sqlchat

自托管

Docker

如果是自用,启动时提供下面两个参数即可:

  • NEXTAUTH_SECRET
  • OPENAI_API_KEY
docker run --name sqlchat --platform linux/amd64 --env NEXTAUTH_SECRET="$(openssl rand -hex 5)" --env OPENAI_API_KEY=<<YOUR OPENAI KEY>> -p 3000:3000 --hostname localhost sqlchat/sqlchat
  • 传一个任意值给 NEXTAUTH_SECRET 否则 next-auth 会报错。
  • 如果您连接同一个 host 上的数据库,在数据库连接配置中,需要使用 host.docker.internal 作为 host。

启动参数

TL;DR

  • 如果是自用,选择不需要数据库的配置,参阅 .env.nodb.
  • 如果是希望提供类似于 sqlchat.ai 的服务供多人使用, 那么需要数据库,参阅 .env.usedb。数据库用来保存用户以及使用信息。

OpenAI 相关

  • OPENAI_API_KEY: OpenAI API key. 您能从 这里 获得。

  • OPENAI_API_ENDPOINT: OpenAI API endpoint. 默认 https://api.openai.com。使用 Ollama 来启动 self-host AI 模型,并且把 endpoint 指向它.

  • NEXT_PUBLIC_ALLOW_SELF_OPENAI_KEY: 置为 true 以允许 SQL Chat 服务的用户使用自己的 key。

数据库相关

  • NEXT_PUBLIC_USE_DATABASE: 置为 true 使得 SQL Chat 启动时使用数据库,这会开启如下功能:
    1. 账号系统。
    2. 用户额度。
    3. 支付。
    4. 使用数据收集。
  • DATABASE_URL: 当 NEXT_PUBLIC_USE_DATABASEtrue 时有效。用于保存数据的 Postgres 连接串 e.g. postgresql://postgres:YOUR_PASSWORD@localhost:5432/sqlchat?schema=sqlchat.

本地开发环境

  1. 安装依赖项

    pnpm i
  2. 生成 prisma 客户端

    pnpm prisma generate
  3. 复制示例环境变量文件;

    cp .env.usedb .env
  4. 将您的 API 密钥OpenAI API 端点(可选)添加到新创建的 .env 文件;

配置数据库

  1. 启动 Postgres 实例。对于 mac,您可以使用 StackbBricks, DBngin 或者 Postgres.app

  2. 创建一个数据库:

    CREATE DATABASE sqlchat;

    .env 文件中, 将连接字符串分配给环境变量 DATABASE_URLDATABASE_DIRECT_URL。至于需要两个 URL 的原因见此.

  3. 设置数据库 schema

    pnpm prisma migrate dev
  4. 初始化数据(可选)

    pnpm prisma db seed
作者:Jeebiz  创建时间:2024-08-02 23:09
最后编辑:Jeebiz  更新时间:2025-05-12 09:20