feat(message): calculate token usage when message content is updated
This commit is contained in:
parent
2af15e4172
commit
7fb85dc311
@ -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]
|
||||
)
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user