新增: F-01阶段6 AiChat模型下拉+override穿透

This commit is contained in:
2026-06-17 00:50:47 +08:00
parent 63bff8bf96
commit 4c84fbc1b6
7 changed files with 256 additions and 16 deletions

View File

@@ -6,13 +6,23 @@ import type { AiChatEvent, AiConversationDetail, AiConversationSummary, AiProvid
export const aiApi = {
/** 发送消息(非阻塞,通过 ai-chat-event 流式返回skill 传技能名则注入其 SKILL.md */
sendMessage(message: string, language?: string, skill?: string): Promise<string> {
return invoke('ai_chat_send', { message, language: language || 'zh-CN', skill: skill || null })
sendMessage(message: string, language?: string, skill?: string, modelOverride?: string | null): Promise<string> {
return invoke('ai_chat_send', {
message,
language: language || 'zh-CN',
skill: skill || null,
modelOverride: modelOverride || null,
})
},
/** 强制发送B-260616-02: 复位 generating 残留后走 send 同款流程) */
forceSend(message: string, language?: string, skill?: string): Promise<string> {
return invoke('ai_chat_force_send', { message, language: language || 'zh-CN', skill: skill || null })
forceSend(message: string, language?: string, skill?: string, modelOverride?: string | null): Promise<string> {
return invoke('ai_chat_force_send', {
message,
language: language || 'zh-CN',
skill: skill || null,
modelOverride: modelOverride || null,
})
},
/**
@@ -20,8 +30,12 @@ export const aiApi = {
* 后端:占用 generating → 弹出末尾 AI 回复(保留触发它的 user 消息)→ 重跑 agentic loop。
* 前端消费:与 sendMessage 一样需本地 push 空气泡占位 + 置 streaming(见 useAiSend.regenerate)。
*/
regenerate(conversationId: string, language?: string): Promise<string> {
return invoke('ai_regenerate', { conversationId, language: language || 'zh-CN' })
regenerate(conversationId: string, language?: string, modelOverride?: string | null): Promise<string> {
return invoke('ai_regenerate', {
conversationId,
language: language || 'zh-CN',
modelOverride: modelOverride || null,
})
},
/**
@@ -30,8 +44,13 @@ export const aiApi = {
* 前端消费:调 editMessage 前需移除被编辑消息之后的所有消息(视图截断)+ push 空气泡占位 + 置 streaming。
* 中间 user 消息编辑被后端拒绝(只允许末条)。
*/
editMessage(conversationId: string, newMessage: string, language?: string): Promise<string> {
return invoke('ai_chat_edit', { conversationId, newMessage, language: language || 'zh-CN' })
editMessage(conversationId: string, newMessage: string, language?: string, modelOverride?: string | null): Promise<string> {
return invoke('ai_chat_edit', {
conversationId,
newMessage,
language: language || 'zh-CN',
modelOverride: modelOverride || null,
})
},
/** 批准/拒绝工具调用 */