Oracle 23ai 有很多新功能,但用户痛点是不会用。

因此计划开发一个适合小白的图形化界面Oracle 23ai智能开发平台,过程中也能学习APEX的玩法。

本篇先拿Oracle数据库向量操作相关功能起步,这个子项目就姑且起名为Vectorizer吧,初期先实现这四个基础功能模块:

  • 1.向量字段准备
  • 2.字段选择与向量化
  • 3.索引操作
  • 4.查询结果

功能模块细化描述:

1.给选定表添加一个向量字段;

2.针对表中的某字段向量化存储到刚刚添加的向量字段中;

3.创建hnsw索引;

4.查询结果能够显示:1)向量化字段信息;2)hnsw索引情况信息;

1.向量字段准备

给选定表添加一个向量字段。

实现可以通过LOV列表选择指定用户、指定表,然后用户输入自己要新增的Vector类型的列名,指定Vector维度,默认值是*,用户也可以按需输入1~65535之间的任意整数值。

点击添加vector列的按钮即可实现给指定表添加一个向量字段类型的新列。在按钮下方的消息区域能够看到操作结果反馈,是否添加成功。

这里有关APEX的设计是:

  • 两个LOV列表之间是需要设置级联关系,实现自动刷新
  • 这个按钮我使用的是添加动态操作,执行服务器端代码,选择PL/SQL
  • 上面同时要注意设置好要提交的项和要返回的项
  • 为了实现消息区域的自动刷新,添加了第2个动态操作,受影响的元素选定消息区域

2.字段选择与向量化

针对表中的某字段向量化存储到刚刚添加的向量字段中。

这里通过LOV列表选择指定用户、指定表、选择内容列、选择向量列。然后点击指定列向量化按钮,将选定内容列的内容向量化并存储在选定向量列中。

注意这里会有点慢,耐心等待消息区域出现类似上图的信息后,才算成功。

这里关键的设计是:

  • 调试期间,Embedding遇到超过限制的最大tokens问题
  • 在PL/SQL代码中设计逐行更新
  • 截断文本避免超过 token 限制

3.索引操作

创建 HNSW(Hierarchical Navigable Small World)索引:

这里参数看着比较多,其实关键只需要指定你要建立的索引名、然后就是选择用户名、表名、向量列名即可,其他参数有需要就微调下,没特殊需求或不太了解就默认,我这里都给设了默认值。

选择好之后直接点击创建HNSW索引按钮。

这里关键的设计是:

  • 创建报错 ORA-51961: 向量内存区域空间不足。
  • 只需数据库中设置VECTOR_MEMORY_SIZE参数,指定专门的内存空间。
  • 这里的按钮我采用了另外一种方式,添加处理,执行PL/SQL代码,处理设置了成功消息和错误消息
  • 处理调用的存储过程在DB中封装成一个包,方便后续添加其他复杂的过程或函数

4.查询结果

查询结果能够显示:1)向量化字段信息;2)hnsw索引情况信息;

目前只需要选择用户和表即可列出对应的向量字段&向量索引信息:

这里关键的设计是:

  • 选择内容列和选择向量列目前只是预留
  • 选择表对应的页项:P6_TABLE添加了两个动态操作
  • 分别刷新下面的两个交互式报表,实现查询信息实时联动

利用 APEX 打造 Oracle 23ai 智能开发平台的更多相关文章

  1. UI标签库的话题:JEECG智能开发平台 BaseTag(样式表和JS标签的引入)

    UI标签库专题一:JEECG智能开发平台 BaseTag(样式表和JS引入标签) 1.BaseTag(样式表和JS引入标签) 1.1. 演示样例 <t:base type="jquer ...

  2. 利用Team@OSC进行团队协作开发平台

    利用Team@OSC进行团队协作开发平台 Team@OSC介绍 Team@OSC 是一个团队协作开发平台,轻松管理轻量级团队.代码运行平台(PaaS).代码质量检查应有尽有. 链接:https://t ...

  3. UI标签库专题二:JEECG智能开发平台Column(列) 子标签

    UI标签库专题二:JEECG智能开发平台Column(列) 子标签  1.1. Column(列) 子标签 1.1.1. 演示样例 <t:dgCol title="年龄" ...

  4. UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)

    1. ckfinder(ckfinder插件标签) 1.1. 參数 属性名 类型 描写叙述 是否必须 默认值 name string 属性名称 是 null value string 默认值 否 nu ...

  5. jeecg智能开发平台参与-2013年度中国优秀开源项目评比

    JEECG正在参与<2013年度中国十大优秀开源项目> 评比,如果大家觉得JEECG还不错, 请投出你宝贵的一票,给我们以支持吧!!! [目前排名第8位] https://code.csd ...

  6. UI标签库专题十一:JEECG智能开发平台 DictSelect (数据字典下拉选择框)

     1. DictSelect (数据字典下拉选择框) 1.1. 參数 属性名 类型 描写叙述 是否必须 默认值 typeGroupCode string 字典分组编码 是 null field s ...

  7. UI标签库专题四:JEECG智能开发平台 Upload(上传标签)

     1. Upload(上传标签) 1.1.  參数 属性名 类型 描写叙述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null ...

  8. UI标签库专题三:JEECG智能开发平台 FormValidation(表单提交及验证标签)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/28484209  自己定义弹出框提示 ...

  9. UI标签库专题九:JEECG智能开发平台 Choose(选则操作标签)

     1. Choose(选则操作标签) 1.1. 參数 属性名 类型 描写叙述 是否必须 默认值 hiddenName string 隐藏域的ID 否 null hiddenid string 隐藏 ...

  10. UI标签库专题十:JEECG智能开发平台 Form(form标签)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/30099121  1. Form(f ...

随机推荐

  1. 在日常工作和生活中使用Linux-开篇

    前言 欢迎来到<在日常工作和生活中使用Linux>的系列分享.在这个系列中,我们将探讨为什么选择Linux,以及如何在日常工作和生活中高效地使用它.无论你是刚刚接触Linux的新手,还是希 ...

  2. 0424-字节输出流FileOutputStream

    package A10_IOStream; import java.io.FileOutputStream; import java.io.IOException; import java.util. ...

  3. CDN与前端技术

    本文分享自天翼云开发者社区<CDN与前端技术>,作者:张****亮 CDN(Content Delivery Network)是一种广泛应用于网络加速和内容分发的技术.它通过在全球各地部署 ...

  4. nginx 编译安装及配置解析

    一.编译安装 安装插件 安装需要的组件 yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel ...

  5. stay:将代码翻译为Gif动图,妈妈再也不用担心我调试找不到bug了

    本文首发于微信公众号:呼哧好大枫.原作者与本文作者是同一人. 平常在做算法题或者是 debug 的时候很需要一款能够实时地将代码执行逻辑和数据以图形化的形式渲染出来的工具.之前尝试了几款(visual ...

  6. 『Python底层原理』--Python对象系统探秘

    Python是一种非常灵活的编程语言,它的灵活性很大程度上来自于它的对象系统. 在Python中,一切都是对象,这意味着无论是数字.字符串,还是我们自己定义的类的实例,它们在底层都遵循相同的规则. 本 ...

  7. 若依-Vue 单体版本 更换mybatisPlus

    1.单体模块在pom.xml ; 多模块版本在ruoyi-common\pom.xml.模块添加整合依赖 <!-- mybatis-plus 增强CRUD --> <dependen ...

  8. Python - [03] 基础语法

    题记部分 一.标识符 第一个字符必须是字母表中字母或下划线_ 标识符的其他部分由字母.数字和下划线组成 标识符对大小写敏感 二.Python保留字 三.注释 (1)单行注释:以#开头 #!/usr/b ...

  9. Spark - spark on yarn 的作业提交流程

    YarnClient YarnCluster 客户端(Client)通过YARN的ResourceManager提交应用程序.在此过程中,客户端进行权限验证,生成Job ID和资源上传路径,并将这些信 ...

  10. 探秘Transformer系列之(9)--- 位置编码分类

    探秘Transformer系列之(9)--- 位置编码分类 目录 探秘Transformer系列之(9)--- 位置编码分类 0x00 概述 0x01 区别 1.1 从直观角度来看 1.2 从模型处理 ...