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 { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService'
|
||||||
|
import { estimateMessageUsage } from '@renderer/services/TokenService'
|
||||||
import store, { useAppDispatch, useAppSelector } from '@renderer/store'
|
import store, { useAppDispatch, useAppSelector } from '@renderer/store'
|
||||||
import {
|
import {
|
||||||
clearStreamMessage,
|
clearStreamMessage,
|
||||||
@ -55,6 +56,16 @@ export function useMessageOperations(topic: Topic) {
|
|||||||
*/
|
*/
|
||||||
const editMessage = useCallback(
|
const editMessage = useCallback(
|
||||||
async (messageId: string, updates: Partial<Message>) => {
|
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(
|
await dispatch(
|
||||||
updateMessage({
|
updateMessage({
|
||||||
topicId: topic.id,
|
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