AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Oracle 23AI实现SQL自然语言查询
发布日期:2024-05-10 20:07:35 浏览次数: 1799


select AI how many customers in San Francisco are married;
select AI what is our best selling product by country;
select AI what is our biggest selling product by country;
select AI how many items with the product sub category of Cameras were sold in 1998;
select AI what customer is the biggest;
select AI which customer is the largest by revenue;

最近大家都在讨论Oracle 23AI,经常会看到上面的SQL,这些SQL和我们平时使用的SQL语法不太一样,这些SQL更趋向人类的自然语言。告诉数据库我想知道一下customer有多少结婚的,总计有多人,等等。数据库就会返回你想要的数据,我想等oracle的下一个版本接入人机接口后,是不是就能根据你说的一段话或者您在思维,帮您实现你想要的业务和数据,帮你自动统计出你想要的报表等等。我们一起来期待一下吧。

在23c之前,我们和数据库打交道只能通过SQL,类似这样的select count(*)from customers ,查询customers 表有多少人。

自从ChatGPT,OPENAI大语言模型出来以后,机器能够理解自然语言了.5月初,oracle正式发布了Oracle 23AI,Oracle 23AI提供了SELECT AI的能力,可以让您使用自然语言跟Oracle对话了,生成式人工智能大语言模型(LLM)与Oracle SQL相结合,使您能够描述您想要的内容(声明性意图)并让数据库生成与您的模式相关的SQL查询。有些LLM可能擅长生成SQL,但能够针对数据库运行该SQL则是另一回事。选择AI可以生成特定于数据库的SQL。

目前在国内,我们很难能使用Oracle 23AI提供了SELECT AI的功能,要想使用是有前提的的,需要开通网络。需要有Cohere and OpenAI API Keys。

要访问和使用Oracle数据库中的Generative AI功能,您需要访问LLM的API。下面我将逐步的给大家介绍一下,您需要做些什么才能从Cohere和OpenAI获得API密钥。这是与数据库一起使用的两个主要LLM,随着时间的推移,其他LLM将可以访问。

首先介绍一下访问cohere api的方式。

Cohere API

首先,进入Cohere API仪表板。可以使用您的Google或GitHub帐户进行注册。或者单击“注册”创建帐户?(页面右下角)。填写你的电子邮件地址和合适的密码。然后使用他们刚刚发给你的电子邮件确认你的注册。

当第一次注册Cohere时,最初是在创建一个试用(免费)帐户。目前,这已经足够玩Select AI了。有一些限制(如下所示),但这些限制可能会随着时间的推移而改变,所以一定要检查一下。

从Cohere Dashboard,你可以访问你的API密钥,并使用此密钥设置从远程(应用程序、数据库等)环境访问LLM的权限。这是一个试用版API密钥,它是有速率限制的,所以可以进行测试和评估。如果你需要更多,则需要升级你的帐户。

第二种方式使用 open api

Open API

对于Open API,需要创建一个帐户,可以点击这个链接进行注册。https://openai.com/

最初,你将设置一个试用帐户,但你可能需要通过将一些钱存入你的帐户来升级。最低为10美元(加上税费),这应该足以让你在使用API时玩得很开心,并且在那之后只根据需要补充,特别是当你进入生产使用时。当你登录OpenAI时,跳转到open api的界面并单击“创建新密钥”按钮

当你获得API密钥后,你就可以开始使用Oracle Select AI功能了,如何允许从数据库访问这些密钥,并开始使用Oracle Select AI功能(以及其他产品和代码库)。请看我下面的例子。你只需要其中一个的API密钥,但我已经展示了这两个。你可以使用其中任何一种方式。

配置Oracle Select AI数据库

Oracle Select AI使用 AI 配置文件来使用和配置对 LLM 的访问,并设置从自然语言提示生成 SQL 语句。

SELECT AI语法

在 SELECT 语句中使用 AI 作为关键字,以便使用自然语言提示与数据库进行交互。

SELECT 语句中的 AI 关键字指示 SQL 执行引擎使用活动 AI 配置文件中标识的 LLM 来处理自然语言并生成 SQL。您可以在使用 Oracle 客户端(如 SQL Developer、OML Notebooks 和第三方工具)的查询中使用 AI 关键字,以自然语言与数据库进行交互。

配置AI Profile

以下过程为OPEN AI的配置过程,如果要使用Cohere,配置过程一致,只需要将帐号和API KEY替换成Cohere的即可。

1.先使用你的业务用户登录到数据库。

2.授权DBMS_CLOUD_AI

SQL> grant execute on DBMS_CLOUD_AI to SH;

3.OpenAI Endpoint授权

SQL> BEGIN  
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'api.openai.com',
         ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                             principal_name => 'SH',
                             principal_type => xs_acl.ptype_db)
   );
END;
/

4.创建OpenAI的Credential

将OpenAI的帐号和API KEY替换掉下行红色部份。

这里先删除配置。再创建。

SQL> EXEC DBMS_CLOUD.DROP_CREDENTIAL('OPENAI_CRED');

SQL> EXEC DBMS_CLOUD.CREATE_CREDENTIAL('OPENAI_CRED', 'xxxx@gmail.com', 'OpenAI API KEY');

5.创建并启用AI配置文件

-- Create AI profile
--
 SQL>BEGIN
  DBMS_CLOUD_AI.create_profile(
      'OPENAI',
      '{"provider": "openai",
        "credential_name": "OPENAI_CRED",
        "object_list": [{"owner": "SH", "name": "customers"},
                        {"owner": "SH", "name": "sales"},
                        {"owner": "SH", "name": "products"},
                        {"owner": "SH", "name": "countries"}]
       }');
END;
/
PL/SQL procedure successfully completed.
--
-- Enable AI profile in current session
--
SQL> EXEC DBMS_CLOUD_AI.set_profile('OPENAI');

使用SELECT AI

使用SELECT AI与LLM进行交互生成SQL或者结果。

1.使用SELECT AI显示想要的SQL,使用语法SELECT AI showswql

2.使用SELECT AI自动生成SQL并执行直接给出结果,使用语法SELECT AI

3.使用SELECT AI 将结果给出更人性性的对话,SELECT AI narrate

4.使用聊天模式SELECT AI chat

5.SELECT AI 有可能会出现错误,得不到想要的结果,比如下图的第二条SQL语句,因为LLM不能总是给出正确的答案,因为LLM要有很多训练模型。

现在,我们可以借助使用 LLM 使用自然语言与数据库数据进行交互。这意味着你可以使用自然语言来查询数据库,即便你不懂一行SQL代码。














53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询