使用 Open AI 兼容的 API,可以在 Bytebase SQL 编辑器中使用自然语言查询数据库。出于数据安全的考虑,私有部署大语言模型是一个较好的选择 -- 本文选择功能强大的开源模型 llama3。由于 OpenAI 默认阻止出站流量,为了简化网络配置,同时进一步防止令牌泄漏,我们使用开源项目 One API 作为中转,将 Bytebase 符合 OpenAI API 规范的请求与 llama3 API 的请求相转换。准备Docker 已安装Bytebase 已拉取并本地运行通过 Docker 运行 llama3 模型在 terminal 运行如下命令,以在 Docker 中使用 ollama 运行 llama3:docker run -d -p 11434:11434 --name ollama --restart always ollama/ollama容器启动并返回 id 后,通过如下命令进入容器内:docker exec -it ollama bash拉取并运行 ollama3 模型。由于权限问题,需要将模型改名为 gpt-3.5-turbo(也可以在 One-API 中做映射)。改名后,模型名称虽然变成了 gpt-3.5-turbo,但其实质仍是 llama3 模型。ollama pull llama3
ollama cp llama3 gpt-3.5-turbo
ollama run gpt-3.5-turbo此时模型已在运行中,可以在新的 terminal 分页中通过如下命令测试 API 是否正常:curl http://localhost:11434/api/generate -d '{
"model": "gpt-3.5-turbo",
"prompt":"Why is the sky blue?"
}'看到结果流式输出,说明 API 正常。配置 One API选择一个有读写权限的目录(替换下面命令中的 <YOUR_PATH>)来保存数据和日志。比如,可以在 mac terminal 使用 pwd 命令查看当前路径,并以此路径替换 <YOUR_PATH>。docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v <YOUR_PATH>/one-api:/data justsong/one-api看到 Docker 容器启动、id 输出,说明部署成功。如果遇到问题,可以在 One API 的文档中查看解决办法。
在 Docker 控制面板中也可以看到 one-api 容器及其地址。可以从这里访问 localhost:3000,登陆 One API 控制面板。注意 ⚠️:初始账号用户名为 root,密码为 123456。配置渠道进入渠道页面,选择添加新的渠道。填写模型信息:
在 <01> 中提到「可以在 One-API 中做映射」,指的就是在这里的模型重定向栏内通过 json 命令替换模型名称。填写密钥需要注意格式:APPID|APISecret|APIKey。如果 ollama 没有设置密钥,可以按照这个格式填写任意内容,如 SSSS|sssss|1111。代理栏填写运行 ollama 的 ip 地址。由于我们是用 Docker 运行的,这里填 http://host.docker.internal:11434。配置令牌在令牌页面,添加新的令牌,填写名称和模型范围。提交后,可以在令牌页面看到这个新生成的令牌。点击复制按钮,得到一个 sk- 开头的令牌;用这个令牌替换下面代码中的 <YOUR_TOKEN>。如果在 terminal 中成功运行,就说明 One API 配置好了。curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "给我讲个笑话吧。"
}
],
"temperature": 0.7
}'配置 Bytebase 并运行在 Bytebase 工作空间中,进入设置 -> 通用,下拉至 AI 助手栏。将刚才生成的 One API 令牌 <YOUR_TOKEN> 填入 OpenAI API Key 栏;在 OpenAI API Endpoint 处填 http://localhost:3000。点击更新。
从任意页面上方进入 SQL 编辑器,可以在右上角看到 OpenAI 的符号。点击就可以与 AI 助手对话,用自然语言执行 SQL 命令了。
dulin3369.blog.sohu.com/330585025.html
photo-sir.blog.sohu.com/330585135.html
photo-sir.blog.sohu.com/330585008.html
sooya.blog.sohu.com/330585175.html
sooya.blog.sohu.com/330585012.html
chjb1015.blog.sohu.com/330578136.html
zhaofuyuas.blog.sohu.com/330583723.html
geshiyao.blog.sohu.com/330585174.html
xuegongzuofang.blog.sohu.com/330585147.html
xuegongzuofang.blog.sohu.com/330585023.html
weininghai.blog.sohu.com/330585164.html
weininghai.blog.sohu.com/330585006.html
13788955879.blog.sohu.com/330585020.html
0439game.blog.sohu.com/330585181.html
yaston.blog.sohu.com/330585158.html
yaston.blog.sohu.com/330585028.html
les-leo.blog.sohu.com/330583727.html
52052052052011.blog.sohu.com/330585009.html
duwangcao.blog.sohu.com/330585153.html
duwangcao.blog.sohu.com/330585002.html
15225156751.blog.sohu.com/330583747.html
xp95.blog.sohu.com/330584576.html
xp95.blog.sohu.com/330584391.html
gjf688.blog.sohu.com/330585184.html
gjf688.blog.sohu.com/330585037.html
long520miaoxia.blog.sohu.com/330585146.html
long520miaoxia.blog.sohu.com/330585021.html
yangnan17.blog.sohu.com/330585183.html
yangnan17.blog.sohu.com/330585033.html
18688861020.blog.sohu.com/330585029.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。