From 3ae1b3d4cbc11cebf15d01f0515b26944250b49b Mon Sep 17 00:00:00 2001 From: suyao Date: Sat, 20 Sep 2025 16:33:56 +0800 Subject: [PATCH] Improve model name resolution for agent sessions - Extract actual model ID from session model string and resolve model details - Use resolved model name, provider, and group when available instead of defaults - Remove redundant API model handling in getModelName function --- .../pages/home/Inputbar/AgentSessionInputbar.tsx | 13 ++++++++++--- src/renderer/src/services/ModelService.ts | 11 +---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/renderer/src/pages/home/Inputbar/AgentSessionInputbar.tsx b/src/renderer/src/pages/home/Inputbar/AgentSessionInputbar.tsx index 3c583e7c5c..f771f61800 100644 --- a/src/renderer/src/pages/home/Inputbar/AgentSessionInputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/AgentSessionInputbar.tsx @@ -1,6 +1,7 @@ import { loggerService } from '@logger' import { QuickPanelView } from '@renderer/components/QuickPanel' import { useSession } from '@renderer/hooks/agents/useSession' +import { getModel } from '@renderer/hooks/useModel' import { useSettings } from '@renderer/hooks/useSettings' import { useTimer } from '@renderer/hooks/useTimer' import PasteService from '@renderer/services/PasteService' @@ -108,12 +109,18 @@ const AgentSessionInputbar: FC = ({ agentId, sessionId }) => { }) const userMessageBlocks: MessageBlock[] = [mainBlock] + // Extract the actual model ID from session.model (format: "sessionId:modelId") + const actualModelId = session?.model ? session.model.split(':').pop() : undefined + + // Try to find the actual model from providers + const actualModel = actualModelId ? getModel(actualModelId) : undefined + const model: Model | undefined = session?.model ? { id: session.model, - name: session.model.split(':').pop() || session.model, // Extract model name after ':' - provider: 'agent-session', - group: 'agent-session' + name: actualModel?.name || actualModelId || session.model, // Use actual model name if found + provider: actualModel?.provider || 'agent-session', + group: actualModel?.group || 'agent-session' } : undefined diff --git a/src/renderer/src/services/ModelService.ts b/src/renderer/src/services/ModelService.ts index 7ac4723f2e..c667a0eadd 100644 --- a/src/renderer/src/services/ModelService.ts +++ b/src/renderer/src/services/ModelService.ts @@ -1,6 +1,5 @@ import store from '@renderer/store' import { Model } from '@renderer/types' -import { ApiModel } from '@renderer/types/apiModels' import { pick } from 'lodash' import { getProviderName } from './ProviderService' @@ -19,16 +18,8 @@ export const hasModel = (m?: Model) => { return allModels.find((model) => model.id === m?.id) } -export function getModelName(model?: Model | ApiModel) { +export function getModelName(model?: Model) { const modelName = model?.name || model?.id || '' - console.log(model) - // For API models that have provider_name field, use it directly - const apiModel = model as ApiModel - if (apiModel?.provider_name) { - return `${modelName} | ${apiModel.provider_name}` - } - - // For legacy models, look up the provider in the store const provider = store.getState().llm.providers.find((p) => p.id === model?.provider) if (provider) { const providerName = getProviderName(model as Model)