diff --git a/src/renderer/src/hooks/useModel.ts b/src/renderer/src/hooks/useModel.ts index 05b164e3..69fa983f 100644 --- a/src/renderer/src/hooks/useModel.ts +++ b/src/renderer/src/hooks/useModel.ts @@ -1,7 +1,13 @@ import { useProviders } from './useProvider' -export function useModel(id?: string) { +export function useModel(id?: string, providerId?: string) { const { providers } = useProviders() const allModels = providers.map((p) => p.models).flat() - return allModels.find((m) => m.id === id) + return allModels.find((m) => { + if (providerId) { + return m.id === id && m.provider === providerId + } else { + return m.id === id + } + }) } diff --git a/src/renderer/src/pages/home/Messages/Message.tsx b/src/renderer/src/pages/home/Messages/Message.tsx index e0dc3a0d..6235996c 100644 --- a/src/renderer/src/pages/home/Messages/Message.tsx +++ b/src/renderer/src/pages/home/Messages/Message.tsx @@ -7,6 +7,7 @@ import { useTopic } from '@renderer/hooks/useTopic' import { fetchChatCompletion } from '@renderer/services/ApiService' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { getContextCount, getMessageModelId } from '@renderer/services/MessagesService' +import { getModelUniqId } from '@renderer/services/ModelService' import { estimateHistoryTokens, estimateMessageUsage } from '@renderer/services/TokenService' import { Message, Topic } from '@renderer/types' import { classNames, runAsyncFunction } from '@renderer/utils' @@ -56,7 +57,7 @@ const MessageItem: FC = ({ const [message, setMessage] = useState(_message) const { t } = useTranslation() const { assistant, setModel } = useAssistant(message.assistantId) - const model = useModel(getMessageModelId(message)) || message.model + const model = useModel(getMessageModelId(message), message.model?.provider) || message.model const { isBubbleStyle } = useMessageStyle() const { showMessageDivider, messageFont, fontSize } = useSettings() const messageContainerRef = useRef(null) @@ -185,7 +186,7 @@ const MessageItem: FC = ({ })} ref={messageContainerRef} style={{ ...style, alignItems: isBubbleStyle ? (isAssistantMessage ? 'start' : 'end') : undefined }}> - + diff --git a/src/renderer/src/pages/home/Messages/MessageContent.tsx b/src/renderer/src/pages/home/Messages/MessageContent.tsx index 63b29aa3..2a1b29c2 100644 --- a/src/renderer/src/pages/home/Messages/MessageContent.tsx +++ b/src/renderer/src/pages/home/Messages/MessageContent.tsx @@ -1,4 +1,5 @@ import { InfoCircleOutlined, SyncOutlined, TranslationOutlined } from '@ant-design/icons' +import { getModelUniqId } from '@renderer/services/ModelService' import { Message, Model } from '@renderer/types' import { getBriefInfo } from '@renderer/utils' import { withMessageThought } from '@renderer/utils/formats' @@ -77,7 +78,7 @@ const MessageContent: React.FC = ({ message: _message, model }) => { return ( - {message.mentions?.map((model) => {'@' + model.name})} + {message.mentions?.map((model) => {'@' + model.name})}