From b5d40e876b83255a6969a04772db7c2c03ffa2a9 Mon Sep 17 00:00:00 2001 From: sp mac bookpro 2605 Date: Wed, 22 Jul 2026 12:43:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=8D=E6=96=B0=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E8=83=BD=EF=BC=9A=E6=94=B9=E7=94=A8=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E9=93=BE=E8=B7=AF?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E7=A1=AE=E4=BF=9D=20model=5Fid=20=E5=9C=A8?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E9=A1=B6=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/chat.ts | 13 ++- src/api/streamChat.ts | 35 +------- src/components/ChatPreview.tsx | 5 +- .../chat/components/messages/MessageItem.tsx | 2 +- src/pages/chat/hooks/useChatSender.ts | 81 +++++-------------- 5 files changed, 36 insertions(+), 100 deletions(-) diff --git a/src/api/chat.ts b/src/api/chat.ts index 66eb5dc..2dfba33 100644 --- a/src/api/chat.ts +++ b/src/api/chat.ts @@ -13,6 +13,14 @@ export interface ToolCallTrace { result: any; } +export interface ModelOverrides { + model?: string; + model_id?: string; + temperature?: number; + topP?: number; + maxTokens?: number; +} + export interface ChatMessage { id: string; role: 'user' | 'assistant' | 'agent' | 'system'; @@ -48,13 +56,12 @@ export interface ChatHistoryResp { export const ChatAPI = { history: (roomId: string) => api.get(`/rooms/${roomId}/messages`).then((r) => r.data), - send: (roomId: string, content: string, targetAgentId: string, model?: string, model_id?: string, imageUrls?: string[]) => + send: (roomId: string, content: string, targetAgentId: string, overrides?: ModelOverrides, imageUrls?: string[]) => api .post<{ user: ChatMessage; assistant: ChatMessage }>(`/rooms/${roomId}/messages`, { content, targetAgentId, - model, - model_id, + ...overrides, imageUrls }) .then((r) => r.data), diff --git a/src/api/streamChat.ts b/src/api/streamChat.ts index 1bcfc57..600b0f7 100644 --- a/src/api/streamChat.ts +++ b/src/api/streamChat.ts @@ -1,4 +1,4 @@ -import type { ChatMessage } from './chat'; +import type { ChatMessage, ModelOverrides } from './chat'; import { API_BASE_URL } from './http'; export interface StreamEvents { @@ -13,22 +13,13 @@ export interface StreamEvents { onError?: (msg: string) => void; } -export interface ModelOverrides { - model?: string; - model_id?: string; - temperature?: number; - topP?: number; - maxTokens?: number; -} - export async function streamChat( roomId: string, targetAgentId: string, content: string, handlers: StreamEvents, signal?: AbortSignal, - model?: string, - modelId?: string, + overrides?: ModelOverrides, imageUrls?: string[] ) { const resp = await fetch(`${API_BASE_URL}rooms/${roomId}/messages/stream`, { @@ -37,8 +28,7 @@ export async function streamChat( body: JSON.stringify({ content, targetAgentId, - model, - model_id: modelId, + ...overrides, imageUrls: imageUrls ?? [] }), signal, @@ -47,24 +37,6 @@ export async function streamChat( return await consumeSSE(resp, handlers, signal); } -export async function regenerateMessage( - agentId: string, - messageId: string, - handlers: StreamEvents, - signal?: AbortSignal, - overrides?: ModelOverrides, - attachmentsText?: string -) { - const resp = await fetch(`${API_BASE_URL}chat/${agentId}/messages/${messageId}/regenerate`, { - method: 'POST', - headers: { 'Content-Type': 'application/json', Accept: 'text/event-stream' }, - body: JSON.stringify({ overrides, attachmentsText }), - signal, - credentials: 'include' - }); - return await consumeSSE(resp, handlers, signal); -} - async function consumeSSE(resp: Response, h: StreamEvents, signal?: AbortSignal) { if (!resp.ok || !resp.body) { const txt = await resp.text().catch(() => ''); @@ -150,4 +122,3 @@ async function consumeSSE(resp: Response, h: StreamEvents, signal?: AbortSignal) reader.cancel().catch(() => {}); } } - diff --git a/src/components/ChatPreview.tsx b/src/components/ChatPreview.tsx index ab0d05b..bace61c 100644 --- a/src/components/ChatPreview.tsx +++ b/src/components/ChatPreview.tsx @@ -107,7 +107,7 @@ export default function ChatPreview({ agent, agentId }: Props) { }), onDone: (data) => { setMessages((m) => [...m.filter((x) => x.id !== tempUser.id), data.user, data.assistant]); - setStreaming({ active: false, text: '', retrieved: [], toolCalls: [] }); + setStreaming({ active: false, text: '', retrieved: [], toolCalls: [] }); scrollBottom(); }, onError: (errMsg) => { @@ -117,8 +117,7 @@ export default function ChatPreview({ agent, agentId }: Props) { } }, ctrl.signal, - model, - modelId + { model, model_id: modelId } ); } catch (e: any) { if (e?.name !== 'AbortError') { diff --git a/src/pages/chat/components/messages/MessageItem.tsx b/src/pages/chat/components/messages/MessageItem.tsx index 1619f63..bae761b 100644 --- a/src/pages/chat/components/messages/MessageItem.tsx +++ b/src/pages/chat/components/messages/MessageItem.tsx @@ -95,7 +95,7 @@ export default function MessageItem(props: {