diff --git a/packages/frontend/src/components/answer-layout/AnswerLayout.tsx b/packages/frontend/src/components/answer-layout/AnswerLayout.tsx index 10bf07f..686e7f6 100644 --- a/packages/frontend/src/components/answer-layout/AnswerLayout.tsx +++ b/packages/frontend/src/components/answer-layout/AnswerLayout.tsx @@ -1,6 +1,6 @@ import WaveLoading from '@/components/loading/WaveLoading' import copyToClipboard from '@/utils/copy' -import { ILocalSettings, getSettingData } from '@/utils/store' +import { getSettingData } from '@/utils/store' import rehypePrism from '@mapbox/rehype-prism' import { message } from 'antd' import clsx from 'clsx' @@ -17,6 +17,7 @@ import remarkGfm from 'remark-gfm' import styles from './answerLayout.less' import './markdown.less' +import { getChatAIType } from '@/pages/ai/chatgpt/chat.util' type AnswerLayoutProps = { data: Answer.answer[] @@ -178,14 +179,49 @@ export default function AnswerLayout(props: AnswerLayoutProps) { )} > {item.type === 'question' && }
{generateContentWrap(item, index)} + {item.type === 'answer' && + (props.data.length - 1 !== index || + (props.data.length - 1 === index && !props.inputing)) && ( +
+ + {item.model} + +
+ {item.modelType === 'chatgpt' && ( + + )} + {item.modelType === 'gemini' && ( + + )} + {!['chatgpt', 'gemini'].includes(item.modelType) && ( + + )} + + {item.modelUrl} + +
+
+ )}
diff --git a/packages/frontend/src/components/answer-layout/answerLayout.less b/packages/frontend/src/components/answer-layout/answerLayout.less index 72921f8..0424e29 100644 --- a/packages/frontend/src/components/answer-layout/answerLayout.less +++ b/packages/frontend/src/components/answer-layout/answerLayout.less @@ -86,8 +86,8 @@ .loadingType { .logo { // background-color: #8f8; - background: url('~@/assets/images/openai.webp') no-repeat 100% 100%; - background-size: contain; + // background: url('~@/assets/images/openai.webp') no-repeat 100% 100%; + // background-size: contain; margin-right: 16px; } diff --git a/packages/frontend/src/pages/ai/chatgpt/Chatgpt.tsx b/packages/frontend/src/pages/ai/chatgpt/Chatgpt.tsx index 061db0e..fa05aae 100644 --- a/packages/frontend/src/pages/ai/chatgpt/Chatgpt.tsx +++ b/packages/frontend/src/pages/ai/chatgpt/Chatgpt.tsx @@ -125,7 +125,10 @@ export default function IndexPage() { content: result.text, id: result.id, conversationId: result.conversationId, - error: result.error + error: result.error, + model: modelInfo?.model || '', + modelType: modelInfo?.modelType || '', + modelUrl: modelInfo?.baseUrl || '' } newData.push(newAnswer) // 存储回复,并存储parentMessageId, isInput, isLoading @@ -157,7 +160,10 @@ export default function IndexPage() { content: result.text, id: result.id, conversationId: result.conversationId, - error: result.error + error: result.error, + model: modelInfo?.model || '', + modelType: modelInfo?.modelType || '', + modelUrl: modelInfo?.baseUrl || '' } ] // 存储回复,并存储parentMessageId, isInput, isLoading @@ -355,9 +361,6 @@ export default function IndexPage() { return (
- } color='#55acee'> - {getStableTitle(active) || '请添加会话'} - { items.push({ - label: {k}, + label: ( +
+ {k === 'chatgpt' ? ( +
+ ) : ( +
+ )} + {k} +
+ ), key: k, type: 'group', children: v.map((m) => { return { label: ( -
- {m.model} - {m.baseUrl} +
+ + {m.model} + + + {m.baseUrl} + + {/* {m.model} */}
), key: m.id!, @@ -94,17 +115,30 @@ export default function ModelDropdown(props: IModelDropdownProps) { ) } + function IconPrefix() { + switch (modelInfo?.modelType) { + case 'chatgpt': + return ( +
+ ) + case 'gemini': + return
+ default: + return ( +
+ ) + } + } + return (
- } + icon={} color='#2db7f5' > - {modelInfo ? {modelInfo.model} : '请选择模型'} + {modelInfo ? {modelInfo.baseUrl} : '请选择模型'} diff --git a/packages/frontend/src/typings/answer.d.ts b/packages/frontend/src/typings/answer.d.ts index 46d2bf4..d7fa4c8 100644 --- a/packages/frontend/src/typings/answer.d.ts +++ b/packages/frontend/src/typings/answer.d.ts @@ -8,6 +8,9 @@ declare namespace Answer { id: string conversationId?: string error: boolean + model: string + modelType: string + modelUrl: string } | { type: 'question'