基于 PostgreSQL 向量构建 RAG API 服务
简述
本文是 CloudCanal 构建 RAG (Retrieval-Augmented Generation,检索增强生成) 应用系列文章:
- 使用大模型将数据嵌入到 PostgreSQL 向量
- 基于 PostgreSQL 向量构建 RAG API 服务
本文将介绍如何基于这些向量数据,通过 CloudCanal 自动生成一个 兼容 OpenAI 接口 的对话服务:RagApi,实现从私有知识到 AI 服务的完整闭环,且无需写一行代码。
CloudCanal RagApi 核心优势
相比传统 RAG 架构手动部署流程,CloudCanal 提供的 RagApi 服务具有以下独特优势:
- 双任务完成全流程:文档导入 + API 发布。
- 零代码部署:无需开发,自定义配置即可构建 API 服务。
- 参数可调:支持设置向量 Top-K 数量、匹配阈值、Prompt 模板、模型温度等核心参数。
- 多模型与平台适配:支持阿里云 DashScope、OpenAI、DeepSeek 等 主流模型与 API 平台。
- OpenAI API 兼容接口:直接接入现有 Chat 应用或工具链,无需额外适配。
- 全私有部署:支持 Ollama 私有部署模型(如 DeepSeek) 和 API,杜绝企业内部数据泄漏问题。
RagApi 工作流程
CloudCanal 构建的 RagApi 服务结合两个任务完成整体链路构建。本文主要介绍 任务二(API 构建) 的操作步骤。
任务一:数据准备与嵌入(File → PostgreSQL 向量库)
关于该任务的详细内容,可阅读 使用大模型将数据嵌入到 PostgreSQL 向量。
任务二:API 构建与服务发布(PostgreSQL → RagApi)
-
查询向量化与匹配
用户提问通过对话接口进入系统,CloudCanal 使用相同嵌入模型将问题向量化,并与存量向量数据进行相似度匹配,检索最相关片段。 -
构造 Prompt
CloudCanal 根据配置的 Prompt 模板,结合用户提问与检索结果,拼接构建完整上下文输入。 -
Chat 模型推理
生成的 Prompt 被送入已配置的 Chat 模型(如qwq-plus
、gpt-4o
等),生成最终回答。接口对外暴露为 OpenAI 格式接口,可直接对接应用层系统。
支持的大模型
CloudCanal 使用 Chat 模型结合通过 向量查询 的上下文进行推理,响应 API 的请求的问题,当前支持 Chat 模型如下:
平台 | 模型名称 |
---|---|
阿里云百炼(DashScope) | qwq-plus qwq-plus |
DeepSeek | deepseek-chat deepseek-chat |
OpenAI | gpt-4o o1 o1-mini o3-mini 等 |
操作步骤
接下来,本文将以一个实际案例演示如何完成第二个任务:基于已有向量库创建 RagApi 服务。
在开始之前,请确保已完成前置操作,可参考文档:《使用大模型将数据嵌入到 PostgreSQL 向量》。
本例将演示如何基于以下环境,通过 CloudCanal 快速构建 RAG API 服务:
- 向量数据源:自建 PostgreSQL(已写入向量数据)
- 目标服务:本地部署的 RagApi 实例(用于提供对话接口)
- 嵌入模型:阿里云百炼平台(DashScope)的 text-embedding-v3
- 对话模型:阿里云百炼平台(DashScope)的 qwq-plus
下载 CloudCanal
前往官网下载安装 CloudCanal 私有部署版本。
添加数据源
登录 CloudCanal,点击 数据源管理,点击 新增数据源。
添加向量数据库:
选择 自建 > PostgreSQL,获取数据源并添加。
添加大模型:
选择 阿里云 > 手动填写 > DashScope 数据源,填写之前步骤获取的 API-KEY。
添加 RagApi 服务:
- 选择 自建 > RagApi。
- 网络地址填写为
localhost
,端口默认使用18089
。 - 输入自定义的 API-KEY, 用于后续调用 RagApi 接口。
创建 RagApi 构建任务
- 点击 同步任务 > 创建任务。
- 选择以下数据源,并点击 测试连接 确认网络与权限正常。
- 源端:已配置的 PostgreSQL(向量表所在库)
- 目标端:RagApi 服务
如测试连接长时间无响应,可尝试刷新页面或检查网络连通性与参数配置。
- 在 功能配置 页面,任务类型选择 全量迁移,任务规格选择默认 2 GB 即可。
- 在 表&action过滤 页面,选择要使用的向量表(可多选)。
5. 在 数据处理 页面,配置大模型:
- 嵌 入模型:选择 DashScope 实例与向量数据使用的嵌入模型(如
text-embedding-v3
)。
PostgreSQL 中的向量维度需与选定嵌入模型一致。
- 聊天模型:选择 DashScope 实例与对话模型(如
qwq-plus
)。
- 在 创建确认 页面,检查配置无误后点击 创建任务,系统将自动完成 RagApi 服务构建。
效果测试
命令行快速测试
RagApi 服务默认运行在本地 Sidecar 中,监听地址为 http://localhost:18089
,兼容 OpenAI Chat API 标准协议。可通过命令行工具(如 curl
)快速验证服务是否部署成功。