Oracle SELECT AI碰上LLM大模型
在23c之前,大家跟数据库打交道只能通过SQL,大语言模型出来以后,机器能够理解自然语言了,那跟数据库打交道的方法有什么样的变化呢?Oracle 23c 新功能,SELECT AI 能力可以让您使用自然语言跟Oracle对话了,生成式人工智能大语言模型(LLM)与Oracle SQL相结合,使您能够描述您想要的内容(声明性意图)并让数据库生成与您的模式相关的SQL查询。有些LLM可能擅长生成SQL,但能够针对数据库运行该SQL则是另一回事。选择AI可以生成特定于数据库的SQL。本文详细描述了如何建立和使用该技术的过程。
1 前提条件
1.1 OpenAI/Cohere帐号
OpenAI:收费或者免费的帐号,收费的为ChatGPT 4.0,免费帐号模型为ChatGPT 3.5,申请方法访问网站: chat.openai.com,需要有一个邮箱建议使用gmail邮箱,还需要一个能正常使用openai的国家的手机号码,用来接收验证码(生成API KEY时手机号为必须项)。
Cohere:收费和免费的Pretrained的模型不同,免费模型没有使用Oracle SQL方面的训练,或者使用OCI的Cohere模型。申请方法访问网站:https://dashboard.cohere.com。Cohere会自动赋予免费的Trial的API KEY,无需任何手机号验证。
1.2 Oracle自治数据库
Oracle自治数据库,ADW或者ADB都支持SELECT AI语法,版本19c即可。
自治数据库实例所属Region需要在可以正常访问openai.com的Region,否则无法使用
可以是Always Free帐号的自治数据库
演示schema为SH
2 申请API KEY
2.1 申请OpenAI API KEY
登录OpenAI帐户,打开如下链接,进入到API Keys页面:
https://platform.openai.com/api-keys
点,输入相应国家的手机号。
手机号码确认后弹出验证码验证,输入验证码,即会生成API KEY,copy此Key串,后面在ADW里面配置需要使用此KEY.
2.2 Cohere API Key
Cohere无需手机号验证,并且自动免费创建Trial的API KEY
https://dashboard.cohere.com/api-keys
如果是付费帐户可以生成Production Key,复制此KEY串。
3 配置自治数据库
Oracle 自治数据库无服务器使用 AI 配置文件来促进和配置对 LLM 的访问,并设置从自然语言提示生成 SQL 语句。
3.1 SELECT AI语法
在 SELECT 语句中使用 AI 作为关键字,以便使用自然语言提示与数据库进行交互。
SELECT 语句中的 AI 关键字指示 SQL 执行引擎使用活动 AI 配置文件中标识的 LLM 来处理自然语言并生成 SQL。您可以在使用 Oracle 客户端(如 SQL Developer、OML Notebooks 和第三方工具)的查询中使用 AI 关键字,以自然语言与数据库进行交互。
注意事项:
1、 SELECT AI语法不支持在APEX中使用,在APEX中请使用DBMS_CLOUD_AI.GENERATE来支持自然语言提示与数据库进行交互。
2、 AI关键字只支持SELECT语法。
3、 PL/SQL语句、DDL语句、DML语句不支持使用AI关键字。
4、 序列是 SELECT,后跟 AI。这些关键字不区分大小写。经过DBMS_CLOUD_AI.SET_PROFILE配置后,SELECT AI 后面的文本是自然语言提示。如果未设置 AI 配置文件,则 SELECT AI 会报告以下错误:
5、 根据 Oracle 准则,特殊字符使用规则适用。例如,如果您在句子中使用撇号,请使用两次单引号
6、 LLM 会产生幻觉,结果并不总是正确的:
a) SELECT AI 可能无法为特定的自然语言提示运行生成的 SQL
b) SELECT AI 可能无法为特定的自然语言提示生成 SQL
7、 将chat操作与 SELECT AI 聊天结合使用,了解有关 SQL 构造的更多信息。为了获得更好的聊天操作结果,请使用具有上下文列名称的数据库视图或表,或者考虑添加列注释来解释列中存储的值。
8、 相关视图: DBMS_CLOUD_AI
3.2 配置AI Profile(ADMIN用户)
以下过程为OPEN AI的配置过程,如果要使用Cohere,配置过程一致,只需要将帐号和API KEY替换成Cohere的即可。
使用ADMIN用户登录自治数据库
授权
SQL> grant execute on DBMS_CLOUD_AI to Your_USER;
如果直接使用ADMIN用户进行使用,无需此步授权
OpenAI Endpoint授权