diff --git a/src/renderer/src/components/MaxContextCount.tsx b/src/renderer/src/components/MaxContextCount.tsx
new file mode 100644
index 0000000000..be9c9f293c
--- /dev/null
+++ b/src/renderer/src/components/MaxContextCount.tsx
@@ -0,0 +1,17 @@
+import { MAX_CONTEXT_COUNT } from '@renderer/config/constant'
+import { Infinity as InfinityIcon } from 'lucide-react'
+import { CSSProperties } from 'react'
+
+type Props = {
+ maxContext: number
+ style?: CSSProperties
+ size?: number
+}
+
+export default function MaxContextCount({ maxContext, style, size = 14 }: Props) {
+ return maxContext === MAX_CONTEXT_COUNT ? (
+
+ ) : (
+ {maxContext.toString()}
+ )
+}
diff --git a/src/renderer/src/config/constant.ts b/src/renderer/src/config/constant.ts
index 80e2be8a34..32183072dc 100644
--- a/src/renderer/src/config/constant.ts
+++ b/src/renderer/src/config/constant.ts
@@ -33,3 +33,6 @@ export const THEME_COLOR_PRESETS = [
'#0EA5E9', // Sky Blue
'#0284C7' // Light Blue
]
+
+export const MAX_CONTEXT_COUNT = 100
+export const UNLIMITED_CONTEXT_COUNT = 100000
diff --git a/src/renderer/src/pages/home/Inputbar/TokenCount.tsx b/src/renderer/src/pages/home/Inputbar/TokenCount.tsx
index bad0729b8e..5c91ab9841 100644
--- a/src/renderer/src/pages/home/Inputbar/TokenCount.tsx
+++ b/src/renderer/src/pages/home/Inputbar/TokenCount.tsx
@@ -1,5 +1,6 @@
import { ArrowUpOutlined, MenuOutlined } from '@ant-design/icons'
import { HStack, VStack } from '@renderer/components/Layout'
+import MaxContextCount from '@renderer/components/MaxContextCount'
import { useSettings } from '@renderer/hooks/useSettings'
import { Divider, Popover } from 'antd'
import { FC } from 'react'
@@ -21,17 +22,17 @@ const TokenCount: FC = ({ estimateTokenCount, inputTokenCount, contextCou
return null
}
- const formatMaxCount = (max: number) => {
- return max.toString()
- }
-
const PopoverContent = () => {
return (
{t('chat.input.context_count.tip')}
- {contextCount.current} / {contextCount.max}
+
+ {contextCount.current}
+ /
+
+
@@ -46,10 +47,20 @@ const TokenCount: FC = ({ estimateTokenCount, inputTokenCount, contextCou
return (
- {contextCount.current} / {formatMaxCount(contextCount.max)}
-
-
- {inputTokenCount} / {estimateTokenCount}
+
+
+ {contextCount.current}
+ /
+
+
+
+
+
+ {inputTokenCount}
+ /
+ {estimateTokenCount}
+
+
)
@@ -80,4 +91,9 @@ const Text = styled.div`
color: var(--color-text-1);
`
+const SlashSeparatorSpan = styled.span`
+ margin-left: 2px;
+ margin-right: 2px;
+`
+
export default TokenCount
diff --git a/src/renderer/src/pages/settings/AssistantSettings/AssistantModelSettings.tsx b/src/renderer/src/pages/settings/AssistantSettings/AssistantModelSettings.tsx
index 7017b02890..0efdaa1aa5 100644
--- a/src/renderer/src/pages/settings/AssistantSettings/AssistantModelSettings.tsx
+++ b/src/renderer/src/pages/settings/AssistantSettings/AssistantModelSettings.tsx
@@ -4,7 +4,7 @@ import EditableNumber from '@renderer/components/EditableNumber'
import { HStack } from '@renderer/components/Layout'
import SelectModelPopup from '@renderer/components/Popups/SelectModelPopup'
import Selector from '@renderer/components/Selector'
-import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE } from '@renderer/config/constant'
+import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE, MAX_CONTEXT_COUNT } from '@renderer/config/constant'
import { SettingRow } from '@renderer/pages/settings'
import { Assistant, AssistantSettingCustomParameters, AssistantSettings } from '@renderer/types'
import { modalConfirm } from '@renderer/utils'
@@ -312,7 +312,7 @@ const AssistantModelSettings: FC = ({ assistant, updateAssistant, updateA
= ({ assistant, updateAssistant, updateA
}
return {
- contextCount: contextCount === 100 ? 100000 : contextCount,
+ contextCount: contextCount === MAX_CONTEXT_COUNT ? UNLIMITED_CONTEXT_COUNT : contextCount,
temperature: assistant?.settings?.temperature ?? DEFAULT_TEMPERATURE,
topP: assistant?.settings?.topP ?? 1,
enableMaxTokens: assistant?.settings?.enableMaxTokens ?? false,
diff --git a/src/renderer/src/services/MessagesService.ts b/src/renderer/src/services/MessagesService.ts
index 72050d2e76..615103a11d 100644
--- a/src/renderer/src/services/MessagesService.ts
+++ b/src/renderer/src/services/MessagesService.ts
@@ -1,5 +1,5 @@
import SearchPopup from '@renderer/components/Popups/SearchPopup'
-import { DEFAULT_CONTEXTCOUNT } from '@renderer/config/constant'
+import { DEFAULT_CONTEXTCOUNT, MAX_CONTEXT_COUNT, UNLIMITED_CONTEXT_COUNT } from '@renderer/config/constant'
import { getTopicById } from '@renderer/hooks/useTopic'
import i18n from '@renderer/i18n'
import { fetchMessagesSummary } from '@renderer/services/ApiService'
@@ -41,7 +41,7 @@ export {
export function getContextCount(assistant: Assistant, messages: Message[]) {
const rawContextCount = assistant?.settings?.contextCount ?? DEFAULT_CONTEXTCOUNT
- const maxContextCount = rawContextCount === 100 ? 100000 : rawContextCount
+ const maxContextCount = rawContextCount === MAX_CONTEXT_COUNT ? UNLIMITED_CONTEXT_COUNT : rawContextCount
const _messages = takeRight(messages, maxContextCount)