ITPub博客

首页 > 数据库 > Oracle > Oracle 26ai实战:零代码构建企业级RAG知识库

Oracle 26ai实战:零代码构建企业级RAG知识库

原创 Oracle 作者:jason_yehua 时间:2026-04-28 18:41:35 0 删除 编辑
二、实战案例:构建IT运维知识库问答机器人
  1. 环境准备
  • 数据库版本:Oracle 26ai
  • 创建文档表:
CREATE TABLE it_docs (
  doc_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  title VARCHAR2(255),
  content CLOB
);
-- 插入模拟数据
INSERT INTO it_docs (title, content) VALUES ('重置密码', '登录系统后点击个人中心,选择安全设置,输入旧密码及两次新密码即可重置。');
INSERT INTO it_docs (title, content) VALUES ('VPN连接失败', '请检查网络连接,确认VPN客户端版本为3.0以上,并尝试重启服务。');
COMMIT;
  1. 实战操作
  • 生成向量嵌入 :调用OCI模型将文本转为向量
ALTER TABLE it_docs ADD (embedding VECTOR(1024, FLOAT32));
UPDATE it_docs 
SET embedding = DBMS_VECTOR.EMBED(content, 'cohere/embed-english-v3.0');
COMMIT;
  • 创建向量索引 :加速相似度搜索
CREATE VECTOR INDEX idx_doc_vec ON it_docs(embedding) 
ALGORITHM HNSW PARAMETERS ('DIMENSION=1024');
  • 实现语义检索与生成 :
DECLARE
  v_query_vec VECTOR(1024, FLOAT32);
  v_context CLOB;
  v_answer CLOB;
BEGIN
  -- 1. 将用户问题向量化
  SELECT DBMS_VECTOR.EMBED('怎么修改系统密码?', 'cohere/embed-english-v3.0') 
  INTO v_query_vec FROM DUAL;
  
  -- 2. 检索最相关文档
  SELECT LISTAGG(content, ' ') WITHIN GROUP (ORDER BY VECTOR_DISTANCE(embedding, v_query_vec, COSINE))
  INTO v_context
  FROM (SELECT content FROM it_docs ORDER BY VECTOR_DISTANCE(embedding, v_query_vec, COSINE) FETCH FIRST 2 ROWS ONLY);
  
  -- 3. 调用LLM生成答案
  v_answer := DBMS_VECTOR.GENERATE(
    prompt => '基于以下资料回答问题。资料:' || v_context || ' 问题:怎么修改系统密码?',
    model => 'meta/llama-3-70b-instruct'
  );
  
  DBMS_OUTPUT.PUT_LINE(v_answer);
END;

利用Oracle 26ai的原生RAG能力,企业可在保障数据不出库的前提下,快速搭建安全、精准的智能客服或知识库助手。







来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31547506/viewspace-3116897/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-05-22

  • 博文量
    122
  • 访问量
    99626