Skip to content

Latest commit

 

History

History
208 lines (127 loc) · 7.17 KB

README.zh-CN.md

File metadata and controls

208 lines (127 loc) · 7.17 KB

SQL Chat banner

SQL Chat

vercel

English | 中文 | Español

介绍

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

Screenshot

Screenshot

Screenshot

为什么会出现 SQL Chat

随着我们进入 开发者工具 2.0 时代,使用基于聊天的界面重建现有工具的机会非常大。SQL Client 也不例外。与在许多 UI 控件之间导航不同,基于聊天的界面更加直观。当然,前提是那可行,而我们的目标就是提供这种体验。

SQL Chat 是怎样的

SQL Chat 是由 Next.js 构建的,它支持以下数据库,并将随着时间的推移支持更多:

  • MySQL
  • PostgreSQL
  • MSSQL
  • TiDB Cloud

IP 白名单

如果使用 sqlchat.ai 连接数据库,则需要在数据库白名单 I P 中添加 0.0.0.0(允许所有连接)。因为 sqlchat.ai 托管在 Vercel使用动态 IP。如果这是一个问题,请考虑下面的自主机选项。

数据保密

参阅 SQL Chat 隐私政策.

自托管

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

  • 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

Star 历史

Star History Chart

社区

Hang out on Discord

Follow us on Twitter

sqlchat

赞助商

许可

本项目使用 BSL 许可证。请参阅 LICENSE 文件以获取完整的许可文本。

常见错误信息

sign up to get quota when self-hosted

看这个 issue.

如何自托管 SQL Chat?

  • 您可以一键将 SQL Chat 部署到 Vercel

    vercel

  • 您可以在几秒钟内使用 Docker 部署 SQL Chat

    docker run --name sqlchat --platform linux/amd64 -p 3000:3000 sqlchat/sqlchat

You exceeded your current quota, please check your plan and billing details

openai quota

这个表示你自己提供的 OpenAI Key 的 Quota 没有了。请查看自己的 OpenAI 账号

Failed to request message, please check your network

network error

请确保您有一个稳定的网络连接,可以访问 OpenAI API 端点。

ping api.openai.com

如果您无法访问 OpenAI API 端点,您可以尝试在 UI 或环境变量中设置 OPENAI_API_ENDPOINT