langchain-postgres 的 PGVector 封装,同时为 Knowledge Base(RAG 检索)和 Memory(长期记忆)提供统一的向量存储服务。
存储架构
Collection 设计
| Collection | 用途 | 过滤字段 |
|---|---|---|
knowledge | 知识库文档分块 | user_id, knowledge_base_id, document_id, chunk_index |
memory | 用户长期记忆 | user_id, scope, project_id, session_id |
VectorStore.get_instance(collection_name, embeddings) 获取,同一 collection + embeddings 组合共享单例。
Embedding 配置
Zeus 支持 用户级别 的 Embedding 配置,不同用户可使用不同的 Embedding 模型。配置按以下优先级查找:优先级
| 优先级 | 来源 | 获取方式 |
|---|---|---|
| 1 (最高) | 用户数据库配置 | GET /api/config/embedding(X-User-Id header),取 isDefault=true 且 enabled=true 的配置 |
| 2 | 环境变量 | OPENAI_API_KEY + OPENAI_BASE_URL + EMBEDDING_MODEL |
| 3 | 系统默认 | Next.js API 的 system embedding 配置 |
支持的模型
任何兼容 OpenAI Embeddings API 格式的模型均可使用:| 模型 | 说明 |
|---|---|
text-embedding-3-small | OpenAI 默认,1536 维,性价比高 |
text-embedding-3-large | OpenAI 高精度,3072 维 |
| BGE 系列 | 通过兼容 API 使用 |
| Jina Embeddings | 通过兼容 API 使用 |
| 自部署模型 | 通过自定义 base_url 接入 |