MongoDB 到 RagApi
CloudCanal 支持从 MongoDB 到 RagApi 的数据迁移、同步、校验和链路能力。
| 功能 | 说明 |
|---|---|
全量数据迁移 | 逻辑迁移,通过顺序扫描表数据,将数据分批写入到对端数据库,支持的 _id 类型为 ObjectId、Long、Integer |
增量实时同步 | 支持 INSERT、UPDATE、DELETE 同步 |
修改订阅 | 新增、删除、修改订阅表,支持历史数据迁移,文档:修改订阅 |
增量位点回溯 | 支持按照 时间戳 回溯位点,重新消费过去一段时间的 oplog |
部署形态支持 | 支持 主备、副本集、分片集群 |
高级功能
| 功能 | 说明 |
|---|---|
知识片段选择(KNOWLEDGE_SELECT) | 根据用户查询语义,从检索结果中自动筛选最相关的知识片段,提高生成回答的准确性和针对性。 |
压缩查询(QUERY_COMPRESS) | 对用户原始问题进行语义压缩,去除冗余信息,保留核心内容,优化向量检索效果。 |
扩展查询(QUERY_EXTEND) | 自动扩展用户问题,引入潜在相关信息或同义表达,提升语义匹配覆盖率。 |
MCP 工具链调用 | 支持调用 MCP 平台上配置的工具链(如 GitHub 查询、Shell 命令等),实现问答中自动调用外部系统完成任务或补全信息。 |
自定义代码 | 文档1:创建自定义代码任务 |
添加虚拟列 | 支持添加自定义的虚拟列,指定的值为固定值,如区域、编号等 |
限制和注意点
| 限制项 | 说明 |
|---|---|
oplog 大小和保留时间设置 | MongoDB 默认配置 replication.oplogSizeMB 过小 或 storage.oplogMinRetentionHours 过小,如数据同步延迟过大,可能导致未消费的 oplog 被清除,需调大此参数 |
MongoDB 主备架构的任务设置 | 源端 MongoDB 主备架构模式,需要将源端任务参数 oplogCollection 设置为 oplog.$main |
changeStream 模式 | MongoDB 3.6 以上支持 changeStream 获取增量变更,同步任务可以设置源端参数 captureMode 为 CHANGE_STREAM,MongoDB 分片集群可以填写 Mongos 连接串进行同步 |
oplog 模式 | 当使用 oplog 模式进行 MongoDB 源端同步时,需要确保该能够访问到 local 库 |
网络准备 | 请确保迁移同步节点(Sidecar)具备访问目标知识库及大模型服务的网络连通性,如 xxx 域名或 IP。 |
任务参数
| 参数名称 | 说明 |
|---|---|
captureMode | 配置 MongoDB 增量源端模式,支持 OP_LOG 和 CHANGE_STREAM 模式 |
changeStreamBatchSize | 配置 MongoDB Change Stream 每一批拉取变更事件的最大条数 |
oplogCollection | 配置 MongoDB oplog 的集合名,默认是 oplog.rs |
timezone | 需要转换的源端时区(默认 UTC) |
Tips: 通用参数配置请参考 通用参数及功能
任务参数
| 参数名称 | 说明 |
|---|---|
uriPrefix | RagApi 对话服务的 URI 前缀,用于接收用户问题并返回模型生成的回答。默认值: |
contentUriPrefix | RagApi 内容检索服务的 URI 前缀,用于向量数据库中召回相关片段。默认值: |
retrieveMaxResults | 配置检索器返回的最大结果数量,用于限制向量搜索候选内容的条目数 |
retrieveMinScore | 配置检索器返回结果的最低匹配分数阈值,仅考虑匹配分数高于该阈值的内容 |
contentPrompt | 配置模板用于构造最终生成提示,定义如何将用户问题与检索到的内容组合成完整提示.可以使用 {{context}} 和 {{query}} 作为变量占位符 |
enabledPromptFunctions | 启用的 Prompt 功能(英文逗号分隔)。
示例: |
compressContentPrompt | 用于内容压缩的提示语,指导系统如何对输入文本进行精简处理。可以使用 {{chatMemory}} 和 {{query}} 作为变量占位符,仅在 enabledPromptFunctions 中启用了 QUERY_COMPRESS 时生效 |
extendContentPrompt | 用于扩展内容的提示语,指导系统如何通过添加相关上下文信息来丰富原有文本。可以使用 {{query}} 作为变量占位符,仅在 enabledPromptFunctions 中启用了 QUERY_EXTEND 时生效 |
extendContentCount | 设置内容扩展时生成的条目数量,仅在 enabledPromptFunctions 中启用了 QUERY_EXTEND 时生效 |
mcpServers | 用于配置可用 MCP 服务器的 JSON,定义工具调用方式 (如命令行或 HTTP) |
maxChatMemory | 聊天上下文中保留的最大历史消息条数,决定模型推理时能看到多少轮对话内容 |
toolMaxInvokeCount | 单次对话中允许调用工具的最大次数,用于限制调用深度,避免工具执行陷入死循环 |
Tips: 通用参数配置请参考 通用参数及功能
