使用大模型将数据嵌入到 PostgreSQL 向量
简述
本文是 CloudCanal 构建 RAG (Retrieval-Augmented Generation,检索增强生成) 应用系列文章:
- 使用大模型将数据嵌入到 PostgreSQL 向量
- 基于 PostgreSQL 向量构建 RAG API 服务
本文主要介绍使用 CloudCanal 全量迁移,通过大模型嵌入能力,将文档向量化后写入到 PostgreSQL vector 中,为 RAG 能力做前置工作。
为什么需要 RAG?
尽管 GPT-4 等大型语言模型(LLM)具备强大的理解和生成能力,但在企业级应用中仍存在以下局限:
- 无法访问私有知识库:无法回答企业专属内容,例如内部文档、业务规则等。
- 易出现幻觉:可能生成看似合理但与事实不符的回答。
- 上下文泛化严重:缺乏个性化上下文,内容不够精准。
- 知识更新滞后:内容来源固定于训练数据,难 以保持最新状态。
RAG(Retrieval-Augmented Generation) 将 文档检索 与 语言模型推理 相结合,用户可以将私有知识实时注入大模型,使其具备以下优势:
- 更高的准确性
- 更强的个性化
- 实时可控的知识更新能力
为什么需要数据向量化?
RAG 的本质是“检索 + 生成”。其中,高质量的语义检索 是基础。为了让机器理解用户问题的含义,并从大量内容中找出相关文本,就需要把文本转化为便于计算语义相似度的格式 —— 向量 (Embedding)。
向量化的意义在于:
- 将文本(如段落、句子)表示为多维数字数组,映射到语义空间
- 相似内容在向量空间中更接近,便于高效检索
- 是让机器“理解”人类语言的关键一步
因此,数据向量化是 RAG 的第一步,也是决定检索效果和生成质量的基础能力。
CloudCanal 数据向量化的优势
相比于传统方案,CloudCanal 提供的数据向量化能力具备以下优势:
- 零代码、零命令行,上手即用
- 多种数据源支持:支持 Markdown、TXT、本地文件、数据库(如 PostgreSQL)、对象存储(如 OSS、S3)等多种 内容来源
- 大模型平台灵活切换:可快速切换调用不同模型 API,评估嵌入质量
RagApi 工作流程
CloudCanal 构建的 RagApi 服务需要通过两个任务实现。本文主要介绍 任务一(文件向量化) 的操作步骤。
任务一:数据准备与嵌入(File → PostgreSQL 向量库)
-
数据采集与准备
企业知识来源包括 Markdown、TXT、数据库、内部文档等。用户通过 CloudCanal 创建嵌入任务,配置数据源、模型、目标表等信息。 -
数据切分与向量化
CloudCanal 自动处理原始文档并生成向量嵌入,写入 pgvector 扩展的向量字段中(如__vector
列)。