diff --git a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx index f91979fa..18da661d 100644 --- a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx +++ b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx @@ -196,6 +196,12 @@ const MessageMenubar: FC = (props) => { ) const onRegenerate = async () => { + await modelGenerating() + const _message: Message = resetAssistantMessage(message, assistantModel) + onEditMessage?.(_message) + } + + const onMentionModel = async () => { await modelGenerating() const selectedModel = await SelectModelPopup.show({ model }) if (!selectedModel) return @@ -228,10 +234,24 @@ const MessageMenubar: FC = (props) => { {copied && } + {isAssistantMessage && ( + } + onConfirm={onRegenerate}> + + + + + + + )} {isAssistantMessage && ( - - + + )} diff --git a/src/renderer/src/pages/home/Messages/Messages.tsx b/src/renderer/src/pages/home/Messages/Messages.tsx index a50cf1e2..22bf8ad2 100644 --- a/src/renderer/src/pages/home/Messages/Messages.tsx +++ b/src/renderer/src/pages/home/Messages/Messages.tsx @@ -9,15 +9,14 @@ import { getDefaultTopic } from '@renderer/services/AssistantService' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { deleteMessageFiles, - filterMessages, getAssistantMessage, getContextCount, getGroupedMessages, getUserMessage } from '@renderer/services/MessagesService' import { estimateHistoryTokens } from '@renderer/services/TokenService' -import { Assistant, Message, Model, Topic } from '@renderer/types' -import { captureScrollableDiv, runAsyncFunction, uuid } from '@renderer/utils' +import { Assistant, Message, Topic } from '@renderer/types' +import { captureScrollableDiv, runAsyncFunction } from '@renderer/utils' import { t } from 'i18next' import { flatten, last, take } from 'lodash' import { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react' @@ -162,10 +161,6 @@ const Messages: FC = ({ assistant, topic, setActiveTopic }) => { EventEmitter.on(EVENT_NAMES.RECEIVE_MESSAGE, async () => { setTimeout(() => EventEmitter.emit(EVENT_NAMES.AI_AUTO_RENAME), 100) }), - EventEmitter.on(EVENT_NAMES.REGENERATE_MESSAGE, async (model: Model) => { - const lastUserMessage = last(filterMessages(messages).filter((m) => m.role === 'user')) - lastUserMessage && onSendMessage({ ...lastUserMessage, id: uuid(), model: model, mentions: [model] }) - }), EventEmitter.on(EVENT_NAMES.AI_AUTO_RENAME, autoRenameTopic), EventEmitter.on(EVENT_NAMES.CLEAR_MESSAGES, () => { setMessages([])