M7-15 P2 | open-or-create 过滤 isArchived + knowledgeBaseId 必填约束优化 #103

Closed
opened 2026-06-06 17:12:46 +08:00 by wangdl · 1 comment
Owner

发现位置

rag-chat.service.ts L35-81 createSession + prisma/schema.prisma L1002。

问题 1: open-or-create 未排除已归档会话

const existing = await this.prisma.chatSession.findFirst({
  where: { userId, scopeType, scopeId, isDeleted: false },
  // 缺少: isArchived: false
});

用户归档了一个会话后,再次进入同一 scope,不应该继续归档的会话。

问题 2: knowledgeBaseId 仍是 String(必填)

knowledgeBaseId String

对于 global scope,knowledgeBaseId 没有值,当前被迫存空字符串 ''。应为 String?(nullable)。

修复方案

  1. open-or-create 查询增加 isArchived: false 条件
  2. knowledgeBaseId 改为 String?,migration 一并处理

涉及文件

文件 变更
src/modules/rag-chat/rag-chat.service.ts createSession where +isArchived
prisma/schema.prisma knowledgeBaseId String → String?
## 发现位置 `rag-chat.service.ts` L35-81 `createSession` + `prisma/schema.prisma` L1002。 ### 问题 1: open-or-create 未排除已归档会话 ```typescript const existing = await this.prisma.chatSession.findFirst({ where: { userId, scopeType, scopeId, isDeleted: false }, // 缺少: isArchived: false }); ``` 用户归档了一个会话后,再次进入同一 scope,不应该继续归档的会话。 ### 问题 2: knowledgeBaseId 仍是 String(必填) ```prisma knowledgeBaseId String ``` 对于 `global` scope,`knowledgeBaseId` 没有值,当前被迫存空字符串 `''`。应为 `String?`(nullable)。 ### 修复方案 1. open-or-create 查询增加 `isArchived: false` 条件 2. `knowledgeBaseId` 改为 `String?`,migration 一并处理 ## 涉及文件 | 文件 | 变更 | |------|------| | src/modules/rag-chat/rag-chat.service.ts | createSession where +isArchived | | prisma/schema.prisma | knowledgeBaseId String → String? |
wangdl added this to the M7:ChatScope 会话系统 — 学习对象绑定的上下文会话 milestone 2026-06-06 17:12:46 +08:00
Author
Owner

修复

  • open-or-create 查询增加 isArchived: false(归档会话不继续)
  • knowledgeBaseId 改为 String?(nullable)
  • createSession 中不再存空字符串

涉及: rag-chat.service.ts + prisma/schema.prisma

## 修复 - open-or-create 查询增加 isArchived: false(归档会话不继续) - knowledgeBaseId 改为 String?(nullable) - createSession 中不再存空字符串 涉及: rag-chat.service.ts + prisma/schema.prisma
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#103
No description provided.