* 将当前 UI 绑定到某个 conversation buffer。 * 这里只切换显示,不会影响后台正在推理的 buffer。
(state: AIChatSessionState, bufferKey: string)
| 375 | * 这里只切换显示,不会影响后台正在推理的 buffer。 |
| 376 | */ |
| 377 | function bindDisplayedBuffer(state: AIChatSessionState, bufferKey: string): void { |
| 378 | // 保存当前对话的 token 使用量 |
| 379 | const currentKey = state.currentAIChatId ?? DRAFT_AI_CHAT_KEY |
| 380 | const currentBuffer = state.aiChatBuffers[currentKey] |
| 381 | if (currentBuffer) { |
| 382 | currentBuffer.sessionTokenUsage = { ...state.sessionTokenUsage } |
| 383 | } |
| 384 | |
| 385 | const buffer = getOrCreateBuffer(state, bufferKey) |
| 386 | state.currentAIChatId = bufferKey === DRAFT_AI_CHAT_KEY ? null : bufferKey |
| 387 | state.messages = buffer.messages |
| 388 | state.sourceMessages = buffer.sourceMessages |
| 389 | state.currentKeywords = buffer.currentKeywords |
| 390 | state.selectedAssistantId = buffer.assistantId |
| 391 | state.sessionTokenUsage = buffer.sessionTokenUsage ? { ...buffer.sessionTokenUsage } : createEmptyTokenUsage() |
| 392 | state.agentStatus = null |
| 393 | } |
| 394 | |
| 395 | function renameBufferKey(state: AIChatSessionState, fromKey: string, toKey: string): AIChatBuffer { |
| 396 | const buffer = getOrCreateBuffer(state, fromKey) |
no test coverage detected