V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
llf007
V2EX  ›  数据库

不再手动写 SQL 了,爽!使用 DBeaver 调用 OpenAI 方式实现

  •  1
     
  •   llf007 · 190 天前 · 1588 次点击
    这是一个创建于 190 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    DBeaver 简介 DBeaver 是一款免费且开源的数据库管理工具,它支持多种数据库系统,包括 MySQL 、PostgreSQL 、Oracle 、DB2 、SQL Server 、SQLite 以及其他许多类型。它提供了一个直观的用户界面,使得用户可以方便地进行数据库的查询、设计、开发和管理。

    Azure Open AI 服务简介 ​​​​大红大紫 ChatGPT 大家都知道,他是 OpenAI 公司开发的知名聊天机器人,其背后的技术实力和创新能力受到了业界的广泛关注。微软作为 OpenAI 的重要投资方之一,利用其强大的微软云 Azure 与 OpenAI 合作共同推出了 Azure Open AI 服务,是国内通过正规渠道获得 GPT-3.5 、GPT-4 的 API 渠道。

    安装最新版 DBeaver 后 --> 设置 --> AI 配置和启用 AI image.png

    如图选择 Service:服务商我们选择 Azure OpenAI ,还支持 Google Gemini 、OpenAI API token:即你的密钥 Endpoint:终结点网址 Deployment:部署名 Temperature:严谨与想象力 0.0 ~ 1 之间,我们使用默认的严谨。

    我们本次测试使用是 gpt-3.5-turbo 的模型,是因为 gpt3.5 相比较 gpt4.0 更有价性比。 image.png

    将信息传输给 AI 供应商 为了执行 AI 智能补全,DBeaver 需要将您的数据库元数据信息(包括表名和列名)传输给 AI 供应商的 API 。 您是否确认为“test”连接进行此操作?

    其它选择项: image.png

    可选一堆发送,是不是想里嘀咕,这安全吗?

    再查看 Azure OpenAI Service 的数据、隐私和安全后,放心一些了。

    重要提示:
    你的提示词(输入)和答复(输出)、你的嵌入以及你的训练数据:
    不可供其他客户使用。
    不可供 OpenAI 使用。
    不被用于改进 OpenAI 模型。
    不被用于改进任何微软或第三方产品或服务。
    不用于为你在资源中使用而自动改进 Azure OpenAI 模型(模型是无状态的,除非你明确使用训练数据对模型进行微调)。
    你微调的 Azure OpenAI 模型仅供你使用。
    Azure OpenAI 服务完全由微软控制;微软在微软的 Azure 环境中托管 OpenAI 模型,该服务不与 OpenAI 运营的任何服务(例如 ChatGPT 或 OpenAI API )交互。
     
    来源:
    https://learn.microsoft.com/en-us/legal/cognitive-services/openai/data-privacy
    

    第一回:指定表名称、字段让 AI 查询

    来个 100 行之内小表,先测试一下,并且指定表名 提示词: 请写个 SELECT 查询 test.daysales 表,按大区,统计 当日零售金额,同期零售金额 的总金额 image.png

    ✅ 一次就给出了正确的答案,通过。

    第二回:不告诉 AI 表名,只讲字段查询

    有个 60 万行数据量大一些的单表如下,这次增加难度,不指定表名称,只讲表中的字段进行查询。

    提示词:找出 延误时间最大前 10 航班号、航空公司,以及平均延误时间、航班发出城市、目地城市 image.png

    还可以这样

    [提示词] 不用写 SQL ,用中文回答,Dallas/Fort Worth, TX 到 Honolulu, HI 的城市中文名称

    回答:达拉斯/沃思堡,德克萨斯州 到 太浩洛,夏威夷州 的城市中文名称是:达拉斯/沃思堡 到 太浩洛。

    AI 理解出自哪张表,以及回答其他用户关心的问题 image.png

    ✅ 一次就给出了正确的答案,通过。

    第三回:AI 多表 JOIN

    有 3 张表,省、市、街道如下 image.png

    [提示词]

    自动 Join 以下几张表

    province 、city 、country 、town

    查询出完整的大宽表:省份、城市、区县、街道

    image.png

    ✅ 这里第一次自己没想清楚,查询省、市、(忘记区县)、街道,AI 回答正确。 然后再次补充提问,就给出了正确的答案,通过。

    第四回:让 AI 设计数据库

    让 AI 设计几张表,并生成 3 模拟数据。

    [提示词]

    一步步思考,以 MySQL 为数据库为个人博客系统设计表,表以 blog_为前辍,

    并参考以下 https://www.apisql.cn 网站的内容,生成模拟 3 行数据,博客内容要与 APISQL 有关,并且为中文

    网址:WWW.APISQL.CN
    开发 API 一句 SQL 搞定
    轻松将内网数据库的增删改查 SQL ,转换发布为公网对应的 HTTPS API ,无需编写代码,无需内网穿透,后端开发即服务
    
    每月免费 50000 次的 API 请求
    
    😊 简单
    APISQL = 数据库转 API 软件+简版 Postman+API 安全管控+API 监控统计+frp 内网穿透+云服务器+公网 IP+已备案域名+SSL 证书
    
    ⚡️ 快速
    友好的 Web 操作界面,支持 MySQL 、Oracle 、SQL Sever 、PostgreSQL 、SQLite 、达梦等数据库,分分钟能将整个数据库的表转为 API 服务
    
    🔒 安全
    数据存储在自己的本地电脑安全可控,HTTP3 加密压缩传输不但快还安全,支持 Token/IP 授权访问,大规模使用还可以私有化方案
    
    ❤️ 场景 1
    企业间合作系统中部分数据(如库存量、可售天数)共享给上下游供应商及客户,替代端口映射+共享数据库帐号密码更安全
    
    🚀 场景 2
    OA/ERP/CRM/WMS/SaaS 等跨软件通过 API 集成;政务国企切换达梦、人大金仓等信创数据库,减少开发转 API 快速适配
    
    ✨ 场景 3
    大数据统一接口中心,发布 API 、统计分析 API ;监控 API 、API 调用异常情况及时告警; API 上线下线、授权和安全的管理
    

    image.png

    ✅ 3 个建表语句,插入 3 条 DEMO 数据,AI 理解正确,测试通过。

    image.png

    总结:经常写 SQL 同学们,确认这是数据库新的生产力工具!

    12 条回复    2024-04-30 14:19:31 +08:00
    jstony
        1
    jstony  
       190 天前   ❤️ 6
    如果 ai 不能确保结果是正确的,还需要我去二次校验,那我还是选择自己写 sql 。
    KongLiu
        2
    KongLiu  
       190 天前   ❤️ 1
    @jstony 是的,写完敢不看就用?要理一遍还不如自己写了
    aptupdate
        3
    aptupdate  
       190 天前 via iPhone   ❤️ 4
    这种文风建议发到公众号/小红书,肯定比发这里效果好。
    Freakr
        4
    Freakr  
       190 天前   ❤️ 1
    希望后续能出类似 Github Copilot 的补全功能,虽然补出来的不一定对,但是对得时候能少敲很多字符。
    gongxuanzhang
        5
    gongxuanzhang  
       190 天前
    你是否在找 chat2DB
    iblessyou
        6
    iblessyou  
       190 天前
    还是不敢用,我这数据库真被他拿去了, 怕是要吃牢饭。 在网页问问就行了
    DdDddDlush
        7
    DdDddDlush  
       190 天前
    像微信公众号的软文
    moro
        8
    moro  
       190 天前
    下载最新版本 Version 24.0.3.202404211624
    没有看见有 AI 选项。
    lanlanye
        9
    lanlanye  
       190 天前 via iPhone
    您这是企业版就别说免费了吧……
    dolorain
        10
    dolorain  
       189 天前   ❤️ 1
    至于吗? 等你调试出来正确结果,我需求都写完了。
    llf007
        11
    llf007  
    OP
       189 天前
    @moro
    @lanlanye
    社区版需要手动安装。点 帮助-> Install New Software-> 搜索 AI ,下一步 下一步。安装完提示重启客户端。看就到 OpenAI 图标,其它配置都一样。
    moro
        12
    moro  
       189 天前
    @llf007 按流程装上了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1237 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:18 · PVG 07:18 · LAX 15:18 · JFK 18:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.