Skip to content

Commit 9966725

Browse files
committed
feat: 预估提示词token大小更适合人类阅读
1 parent 97171a3 commit 9966725

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/pages/CopyButton.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ interface CopyButtonProps {
99
files: FileInfo[];
1010
}
1111

12+
const formatTokenCount = (count: number): string => {
13+
if (count >= 10000) {
14+
return `${(count / 10000).toFixed(1).replace(/\.0$/, '')}万`;
15+
}
16+
if (count >= 1000) {
17+
return `${(count / 1000).toFixed(1).replace(/\.0$/, '')}k`;
18+
}
19+
return count.toString();
20+
};
21+
1222
const CopyButton: React.FC<CopyButtonProps> = ({content, files}) => {
1323
const [open, setOpen] = useState(false);
1424
const [message, setMessage] = useState<{ text: string; severity: 'success' | 'error' }>({
@@ -25,6 +35,8 @@ const CopyButton: React.FC<CopyButtonProps> = ({content, files}) => {
2535
return Math.ceil(totalContent.length / 4);
2636
}, [content, files]);
2737

38+
const formattedToken = useMemo(() => formatTokenCount(tokenCount), [tokenCount]);
39+
2840
const handleCopy = async () => {
2941
const filesContent = files.map(file =>
3042
`\`\`\`${file.path}\n${file.content}\n\`\`\``
@@ -50,7 +62,7 @@ const CopyButton: React.FC<CopyButtonProps> = ({content, files}) => {
5062
padding: '12px 24px',
5163
width: '100%'
5264
}}>
53-
构造提示词并复制到剪切板 (约 {tokenCount} Tokens)
65+
构造提示词并复制到剪切板 (约 {formattedToken} Tokens)
5466
</Button>
5567
<Snackbar
5668
open={open}

0 commit comments

Comments
 (0)