当前位置: 首页 > ds >正文

Oracle 如何实现AI自然语言查询

在这篇文章中,我将介绍如何在 Oracle 数据库中通过 DBMS_CLOUD_AI 包接入第三方 AI 提供商(以 Cohere 为例),并实现用自然语言查询数据库的能力。此能力是 Oracle 23ai 推出的新特性之一,非常适合希望将 AI 能力嵌入数据库的开发者或数据分析人员。

一、准备工作

1. 授权用户使用 AI 相关的包

首先需要将 AI 执行权限授予目标用户(假设用户名为 TEST):

GRANT EXECUTE ON DBMS_CLOUD_AI TO TEST;
GRANT EXECUTE ON DBMS_CLOUD_PIPELINE TO TEST;
2. 配置访问外部 AI 接口的网络权限

允许数据库访问外部 API 服务,例如 Cohere 的 API:

BEGIN  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(host => 'api.cohere.ai',ace  => xs$ace_type(privilege_list => xs$name_list('http'),principal_name => 'TEST',principal_type => xs_acl.ptype_db));
END;
/

二、配置 AI 服务凭证

1. 删除旧凭证(如存在)
EXEC DBMS_CLOUD.DROP_CREDENTIAL('OPENAI_CRED');
2. 创建新的凭证
BEGINDBMS_CLOUD.CREATE_CREDENTIAL(credential_name => 'SELECTAI_CRED',username => 'your_email@example.com',  -- 替换为你的账号password => 'your_api_key_here'        -- 替换为你的 API 密钥);
END;
/

⚠️ 注意:实际部署中建议避免将密钥硬编码,可通过安全参数或密钥管理系统管理。

3. 验证凭证创建情况
SELECT * 
FROM USER_CREDENTIALS 
WHERE CREDENTIAL_NAME = 'SELECTAI_CRED';

三、创建并配置 AI Profile

Profile 是 Oracle 用于配置 AI 服务使用参数的抽象对象,类似于一个 AI 的“连接配置文件”。

1. 删除已有同名 Profile(如有)
EXEC DBMS_CLOUD_AI.DROP_PROFILE(profile_name => 'SELECTAI');
2. 创建新的 Profile
BEGINDBMS_CLOUD_AI.CREATE_PROFILE(profile_name   => 'SELECTAI',attributes     => '{"provider": "cohere","credential_name": "SELECTAI_CRED","model": "command-r-plus","object_list": [{"owner": "SHIJW", "name": "ORDERS"},{"owner": "SHIJW", "name": "ORDER_ITEMS"},{"owner": "SHIJW", "name": "PRODUCTS"},{"owner": "SHIJW", "name": "USERS"}]}');
END;
/

说明:

  • provider 支持值如 cohereopenaianthropic 等;
  • object_list 是希望 AI 能访问的数据表。

四、查看并启用 AI Profile

1. 查看 Profile 及其属性
SELECT a.profile_name, a.status,b.attribute_name, b.attribute_value
FROM user_CLOUD_AI_PROFILES a
JOIN user_cloud_ai_profile_attributes bON a.profile_id = b.profile_id
WHERE a.profile_name = 'SELECTAI';
2. 启用 Profile
BEGINDBMS_CLOUD_AI.SET_PROFILE(profile_name => 'SELECTAI');
END;
/

五、使用自然语言与数据库对话

现在,一切准备就绪!你可以用自然语言进行查询,比如:

示例 1:基础对话测试

微信图片_20250517_000221_786.png

示例 2:验证自然语言查询准确性

微信图片_20250517_000252_479.png

示例 3:自然语言解析成sql

e6739aea75baab9bd1bfa80a968b828b.png

六、总结

通过 Oracle 的 DBMS_CLOUD_AI 包,我们可以轻松集成外部 LLM(如 Cohere 或 OpenAI),并利用自然语言驱动对数据库的访问。这不仅降低了业务人员访问数据的门槛,也为开发更智能的数据库应用铺平了道路。

如果你正使用 Oracle 23ai,并希望让你的数据库“会说话”,不妨动手试一试!

hhh6.jpg

http://www.xdnf.cn/news/8970.html

相关文章:

  • MySQL索引深度解析:从原理到实践
  • STM32的内部FLASH
  • JVM相关
  • 【MPC控制 - 从ACC到自动驾驶】4 MPC的“实战演练”:ACC Simulink仿真与结果深度解读
  • 【Linux】磁盘空间不足
  • vite+vue2安装步骤
  • 使用大模型预测亚急性脊髓联合变性(SCD)的技术方案大纲
  • x星球请求返回值加密
  • 《计算机组成原理》——第二章-10 现代计算机的总线结构
  • 大模型记忆法
  • 嵌入式Linux:子进程执行新程序
  • 智慧校园管理系统
  • openwrt虚拟机安装调试
  • 深入解析Java组合模式:构建灵活树形结构的艺术
  • python小知识 查看项目所有的依赖包
  • 强化学习的前世今生(二)
  • JWT令牌详解及Java中的使用实战
  • 2025郑州台球展/台球厅地毯展/台球灯展/河南台球器材展
  • 字节跳动2025年校招笔试手撕真题教程(一)
  • 第八课 SPSS 在医学影像分析中的基本应用场景
  • Leetcode 587. 安装栅栏
  • 「OC」源码学习——关联属性再探索
  • 代码随想录---贪心篇
  • CS学习网站-geeksforgeeks介绍
  • (1-6-1)Java 集合
  • JavaWeb:SpringBoot工作原理详解
  • 动态规划---路径问题
  • NV149NV153美光固态闪存NV158NV161
  • 浏览器请求数据包的“超级马里奥之旅”
  • 字节跳动2025年校招笔试手撕真题教程(三)