Skip to content

模型、数据集与向量化任务 ​

模型管理分为平台模型、用户模型和运行时路由。密钥只保存加密引用或外部 Secret 标识;模型参数、上下文窗口、价格和 Embedding 维度随配置版本记录。

Dataset 关联数据源、文档、Chunk 和向量化任务。任务状态应可重试、可取消、可查询;任务重跑使用文档版本/内容哈希和幂等键避免重复向量。

模型管理的实际职责 ​

AiLlmModelManagementServiceImpl 提供创建、更新、分页、按 provider/modelType 查询、启用/停用、设置默认模型、获取默认 CHAT/EMBEDDING 模型和连通性测试。创建时缺省状态为 ACTIVE、缺省不设为默认;设置默认模型时要保证同类模型只有一个默认项。AiUserLlmModelServiceImpl 则按 userId 保存、删除、设为默认和测试用户自己的模型。

模型配置至少要带 provider、modelId、baseUrl、apiVersion、modelType、能力标记、上下文窗口、价格和状态。运行时选择顺序应记录在日志中:用户 BYOK 优先于 Agent 绑定;Agent 未绑定时使用平台默认模型;模型不可用、密钥不可解密或计费冻结失败都不能静默降级。

数据集与向量化任务 ​

向量化入口位于 /ai/vectorization。VectorizationService 支持单文档、批量文档、整个 Dataset、删除文档向量、删除 Dataset 向量、重建索引、优化索引、查询状态、取消、重试和指标查询。批量实现会逐文档更新 processedDocuments/processedChunks,并可按 rateLimitConfig 在文档之间和批次之间等待;当前实现不能假设所有批量任务都已切换为真正后台线程。

任务排障至少记录 taskId、datasetId、documentId、Embedding 模型、分段配置、总文档数、成功/失败数、chunk 数和 errorMessage。cancel 只允许处于可取消状态的任务,retry 对 Dataset 任务会重新发起 Dataset 向量化。rebuildIndex 当前语义是先删除 Dataset 现有向量,再重新向量化,因此生产环境必须先确认索引切换和失败回滚策略。

版本一致性 ​

Embedding 维度、分段器、metadata schema 和 collection/index 必须作为一个版本管理。更换模型时建立新索引并抽样比较命中率、空结果率、引用准确率和延迟;不要在在线 collection 上直接改维度。检索为空时按 dataset/tenant filter、activated 标志、索引加载、模型维度和任务最终状态顺序排查。