M7-05 P0 | createSession 接受 ChatScope 参数 scopeType scopeId parentKnowledgeBaseId #81

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

目标

POST /rag-chat/sessions 接受 scopeType/scopeId 代替单一 knowledgeBaseId。

接口

{ "scopeType": "knowledge_item", "scopeId": "ki_123", "parentKnowledgeBaseId": "kb_001", "createdFrom": "knowledge_item_detail" }

行为

  • scopeType 不传默认 knowledge_base
  • scopeId 不传默认 = parentKnowledgeBaseId(兼容旧接口)
  • 首条用户消息自动生成 autoTitle
## 目标 POST /rag-chat/sessions 接受 scopeType/scopeId 代替单一 knowledgeBaseId。 ## 接口 { "scopeType": "knowledge_item", "scopeId": "ki_123", "parentKnowledgeBaseId": "kb_001", "createdFrom": "knowledge_item_detail" } ## 行为 - scopeType 不传默认 knowledge_base - scopeId 不传默认 = parentKnowledgeBaseId(兼容旧接口) - 首条用户消息自动生成 autoTitle
wangdl added this to the M7:ChatScope 会话系统 — 学习对象绑定的上下文会话 milestone 2026-06-06 16:21:46 +08:00
Author
Owner

完成情况

交付物

Service 层createSession 重构:

interface CreateSessionParams {
  scopeType: string;
  scopeId?: string | null;
  parentKnowledgeBaseId?: string | null;
  createdFrom?: string;
  title?: string;
}

async createSession(userId: string, params: CreateSessionParams): Promise<ChatSession>

参数校验:

  • scopeType 必须为合法枚举值 (knowledge_base/folder/material/knowledge_item/global)
  • scopeType !== "global"scopeId 必填
  • parentKnowledgeBaseId 由后端 deriveParentKbId() 推导,前端可传但后端会覆写

Controller 层:

POST /rag-chat/sessions
Body: { scopeType, scopeId?, parentKnowledgeBaseId?, createdFrom?, title? }

deriveParentKbId 逻辑

scopeType 返回
knowledge_base scopeId
material / folder / knowledge_item parentKnowledgeBaseId(前端传入)
global null

涉及文件

文件 变更
src/modules/rag-chat/rag-chat.service.ts CreateSessionParams + createSession 重构
src/modules/rag-chat/rag-chat.controller.ts POST /sessions DTO 更新
## 完成情况 ### 交付物 **Service 层** — `createSession` 重构: ```typescript interface CreateSessionParams { scopeType: string; scopeId?: string | null; parentKnowledgeBaseId?: string | null; createdFrom?: string; title?: string; } async createSession(userId: string, params: CreateSessionParams): Promise<ChatSession> ``` **参数校验**: - `scopeType` 必须为合法枚举值 (knowledge_base/folder/material/knowledge_item/global) - `scopeType !== "global"` 时 `scopeId` 必填 - `parentKnowledgeBaseId` 由后端 `deriveParentKbId()` 推导,前端可传但后端会覆写 **Controller 层**: ``` POST /rag-chat/sessions Body: { scopeType, scopeId?, parentKnowledgeBaseId?, createdFrom?, title? } ``` ### deriveParentKbId 逻辑 | scopeType | 返回 | |-----------|------| | knowledge_base | scopeId | | material / folder / knowledge_item | parentKnowledgeBaseId(前端传入) | | global | null | ### 涉及文件 | 文件 | 变更 | |------|------| | src/modules/rag-chat/rag-chat.service.ts | CreateSessionParams + createSession 重构 | | src/modules/rag-chat/rag-chat.controller.ts | POST /sessions DTO 更新 |
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

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