feat: show model name on message status bar

This commit is contained in:
kangfenmao 2024-07-07 20:19:43 +08:00
parent ce8253571e
commit 20944e7cc4
5 changed files with 20 additions and 10 deletions

View File

@ -12,6 +12,7 @@ import { TextAreaRef } from 'antd/es/input/TextArea'
import { isEmpty } from 'lodash' import { isEmpty } from 'lodash'
import SendMessageSetting from './SendMessageSetting' import SendMessageSetting from './SendMessageSetting'
import { useSettings } from '@renderer/hooks/useSettings' import { useSettings } from '@renderer/hooks/useSettings'
import dayjs from 'dayjs'
interface Props { interface Props {
assistant: Assistant assistant: Assistant
@ -36,7 +37,7 @@ const Inputbar: FC<Props> = ({ assistant, setActiveTopic }) => {
content: text, content: text,
assistantId: assistant.id, assistantId: assistant.id,
topicId: assistant.topics[0].id || uuid(), topicId: assistant.topics[0].id || uuid(),
createdAt: 'now' createdAt: dayjs().format('YYYY-MM-DD HH:mm:ss')
} }
EventEmitter.emit(EVENT_NAMES.SEND_MESSAGE, message) EventEmitter.emit(EVENT_NAMES.SEND_MESSAGE, message)

View File

@ -40,6 +40,7 @@ const MessageItem: FC<Props> = ({ message, showMenu, onDeleteMessage }) => {
<MenusBar className="menubar"> <MenusBar className="menubar">
<CopyOutlined onClick={onCopy} /> <CopyOutlined onClick={onCopy} />
<DeleteOutlined onClick={onDelete} /> <DeleteOutlined onClick={onDelete} />
<ModelName>{message.modelId}</ModelName>
</MenusBar> </MenusBar>
)} )}
</MessageContent> </MessageContent>
@ -88,4 +89,9 @@ const MenusBar = styled.div`
} }
` `
const ModelName = styled.div`
font-size: 12px;
color: var(--color-text-2);
`
export default MessageItem export default MessageItem

View File

@ -5,6 +5,7 @@ import { ChatCompletionMessageParam, ChatCompletionSystemMessageParam } from 'op
import OpenAI from 'openai' import OpenAI from 'openai'
import { getAssistantProvider, getDefaultModel } from './assistant' import { getAssistantProvider, getDefaultModel } from './assistant'
import { takeRight } from 'lodash' import { takeRight } from 'lodash'
import dayjs from 'dayjs'
interface FetchChatCompletionParams { interface FetchChatCompletionParams {
messages: Message[] messages: Message[]
@ -42,7 +43,8 @@ export async function fetchChatCompletion({ messages, topic, assistant, onRespon
content: '', content: '',
assistantId: assistant.id, assistantId: assistant.id,
topicId: topic.id, topicId: topic.id,
createdAt: 'now' modelId: model.id,
createdAt: dayjs().format('YYYY-MM-DD HH:mm:ss')
} }
let content = '' let content = ''

View File

@ -20,21 +20,21 @@ export function getDefaultTopic(): Topic {
} }
} }
export function getAssistantProvider(assistant: Assistant) { export function getDefaultProvider() {
const providers = store.getState().llm.providers return getProviderByModel(getDefaultModel())
const provider = providers.find((p) => p.id === assistant.model?.provider)
return provider || getDefaultProvider()
} }
export function getDefaultModel() { export function getDefaultModel() {
return store.getState().llm.defaultModel return store.getState().llm.defaultModel
} }
export function getAssistantProvider(assistant: Assistant) {
const providers = store.getState().llm.providers
const provider = providers.find((p) => p.id === assistant.model?.provider)
return provider || getDefaultProvider()
}
export function getProviderByModel(model: Model) { export function getProviderByModel(model: Model) {
const providers = store.getState().llm.providers const providers = store.getState().llm.providers
return providers.find((p) => p.id === model.provider) as Provider return providers.find((p) => p.id === model.provider) as Provider
} }
export function getDefaultProvider() {
return getProviderByModel(getDefaultModel())
}

View File

@ -13,6 +13,7 @@ export type Message = {
content: string content: string
assistantId: string assistantId: string
topicId: string topicId: string
modelId?: string
createdAt: string createdAt: string
} }