feat(message): calculate token usage when message content is updated

This commit is contained in:
ousugo 2025-03-27 00:09:33 +08:00 committed by 亢奋猫
parent 2af15e4172
commit 7fb85dc311

View File

@ -1,4 +1,5 @@
import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
import { estimateMessageUsage } from '@renderer/services/TokenService'
import store, { useAppDispatch, useAppSelector } from '@renderer/store'
import {
clearStreamMessage,
@ -55,6 +56,16 @@ export function useMessageOperations(topic: Topic) {
*/
const editMessage = useCallback(
async (messageId: string, updates: Partial<Message>) => {
// 如果更新包含内容变更,重新计算 token
if ('content' in updates) {
const message = messages.find((m) => m.id === messageId)
if (message) {
const updatedMessage = { ...message, ...updates }
const usage = await estimateMessageUsage(updatedMessage)
updates.usage = usage
}
}
await dispatch(
updateMessage({
topicId: topic.id,
@ -63,7 +74,7 @@ export function useMessageOperations(topic: Topic) {
})
)
},
[dispatch, topic.id]
[dispatch, topic.id, messages]
)
/**