@@ -2,7 +2,7 @@ import { TokenTag, Tooltip } from '@lobehub/ui';
2
2
import { Popover } from 'antd' ;
3
3
import { useTheme } from 'antd-style' ;
4
4
import numeral from 'numeral' ;
5
- import { memo } from 'react' ;
5
+ import { memo , useMemo } from 'react' ;
6
6
import { useTranslation } from 'react-i18next' ;
7
7
import { Center , Flexbox } from 'react-layout-kit' ;
8
8
@@ -12,7 +12,7 @@ import { useTokenCount } from '@/hooks/useTokenCount';
12
12
import { useAgentStore } from '@/store/agent' ;
13
13
import { agentChatConfigSelectors , agentSelectors } from '@/store/agent/selectors' ;
14
14
import { useChatStore } from '@/store/chat' ;
15
- import { topicSelectors } from '@/store/chat/selectors' ;
15
+ import { chatSelectors , topicSelectors } from '@/store/chat/selectors' ;
16
16
import { useToolStore } from '@/store/tool' ;
17
17
import { toolSelectors } from '@/store/tool/selectors' ;
18
18
@@ -41,6 +41,11 @@ const Token = memo<TokenTagProps>(({ total: messageString }) => {
41
41
] ;
42
42
} ) ;
43
43
44
+ const [ historyCount , enableHistoryCount ] = useAgentStore ( ( s ) => [
45
+ agentChatConfigSelectors . historyCount ( s ) ,
46
+ agentChatConfigSelectors . enableHistoryCount ( s ) ,
47
+ ] ) ;
48
+
44
49
const maxTokens = useModelContextWindowTokens ( model , provider ) ;
45
50
46
51
// Tool usage token
@@ -60,7 +65,12 @@ const Token = memo<TokenTagProps>(({ total: messageString }) => {
60
65
// Chat usage token
61
66
const inputTokenCount = useTokenCount ( input ) ;
62
67
63
- const chatsToken = useTokenCount ( messageString ) + inputTokenCount ;
68
+ const chatsString = useMemo ( ( ) => {
69
+ const chats = chatSelectors . mainAIChatsWithHistoryConfig ( useChatStore . getState ( ) ) ;
70
+ return chats . map ( chat => chat . content ) . join ( '' ) ;
71
+ } , [ messageString , historyCount , enableHistoryCount ] ) ;
72
+
73
+ const chatsToken = useTokenCount ( chatsString ) + inputTokenCount ;
64
74
65
75
// SystemRole token
66
76
const systemRoleToken = useTokenCount ( systemRole ) ;
0 commit comments