mirror of
https://github.com/jie65535/JChatGPT.git
synced 2026-05-04 22:33:35 +08:00
Add token consumption tracking system Update version to v1.10.0
This commit is contained in:
122
README.md
122
README.md
@@ -8,6 +8,7 @@ JChatGPT 是一个基于 Kotlin 的 Mirai Console 插件,它将大型语言模
|
||||
- **丰富的工具系统**:包括网络搜索、代码执行、图像识别、群管理等
|
||||
- **上下文记忆**:支持持久化记忆存储
|
||||
- **好感度系统**:基于用户行为的好感度管理机制
|
||||
- **Token消耗统计**:记录每次对话的Token消耗,支持多维度统计查询
|
||||
- **LaTeX 渲染**:自动将数学表达式渲染为图片
|
||||
- **灵活的触发方式**:@机器人、关键字触发、回复消息等
|
||||
- **权限控制**:细粒度的权限管理系统
|
||||
@@ -37,12 +38,22 @@ AI 可以自动调用多种工具来完成复杂任务:
|
||||
|
||||
## 命令列表
|
||||
|
||||
- `/jgpt setToken <token>` - 设置 OpenAI API Token
|
||||
### 基础命令
|
||||
- `/jgpt enable <contact>` - 启用目标对话权限
|
||||
- `/jgpt disable <contact>` - 禁用目标对话权限
|
||||
- `/jgpt reload` - 重载配置文件
|
||||
- `/jgpt favorability <userId> <value>` - 设置指定用户的好感度值(-100~100)
|
||||
- `/jgpt resetFavorability` - 重置所有用户的好感度
|
||||
- `/jgpt clearMemory` - 清空所有对话记忆
|
||||
- `/jgpt clearContextCache` - 清空所有对话上下文缓存
|
||||
|
||||
### 好感度管理
|
||||
- `/jgpt setFavor <user> <value>` - 设置指定用户的好感度值(-100~100)
|
||||
- `/jgpt clearFavor` - 重置所有用户的好感度
|
||||
|
||||
### Token统计
|
||||
- `/jgpt tokensDaily [days]` - 查看指定天数的每日Token消耗统计(默认7天)
|
||||
- `/jgpt tokensUsers [limit]` - 查看Token消耗最多的用户排名(默认Top 10)
|
||||
- `/jgpt tokensGroups [limit]` - 查看Token消耗最多的群组排名(默认Top 10)
|
||||
- `/jgpt tokensQuery [userId] [days]` - 查询详细的使用记录(可按用户和时间过滤)
|
||||
|
||||
## 配置文件
|
||||
|
||||
@@ -284,6 +295,111 @@ JChatGPT 插件包含一个可选的好感度系统,用于根据用户行为
|
||||
- `enableFavorabilitySystem` - 是否启用好感度系统(默认:true)
|
||||
- `favorabilityBaseShiftSpeed` - 好感度每日基础偏移速度(点/天,默认:2.0)
|
||||
|
||||
## Token消耗统计
|
||||
|
||||
JChatGPT 插件内置了Token消耗统计功能,可以记录每次对话的Token使用情况,并提供多维度统计查询。
|
||||
|
||||
### 功能特性
|
||||
- **自动记录**:每次对话自动记录Token消耗
|
||||
- **详细数据**:记录时间戳、用户、群组、模型、输入/输出Token数
|
||||
- **多维统计**:支持按日期、用户、群组进行统计
|
||||
- **灵活查询**:支持详细记录查询和过滤
|
||||
|
||||
### 记录内容
|
||||
每次对话记录包含以下信息:
|
||||
- 时间戳(Unix timestamp)
|
||||
- 用户QQ号和昵称
|
||||
- 群组ID(群聊)或null(私聊)
|
||||
- 使用的模型名称
|
||||
- 输入Token数(promptTokens)
|
||||
- 输出Token数(completionTokens)
|
||||
- 总Token数(totalTokens)
|
||||
|
||||
### 统计命令
|
||||
|
||||
#### 每日统计
|
||||
```
|
||||
/jgpt tokensDaily [days]
|
||||
```
|
||||
- 显示指定天数内的每日Token消耗统计
|
||||
- 默认显示最近7天
|
||||
- 输出示例:
|
||||
```
|
||||
最近 7 天 Token 使用统计:
|
||||
|
||||
2026-03-18: 15342 tokens
|
||||
2026-03-17: 12890 tokens
|
||||
2026-03-16: 9567 tokens
|
||||
```
|
||||
|
||||
#### 用户排名
|
||||
```
|
||||
/jgpt tokensUsers [limit]
|
||||
```
|
||||
- 显示Token消耗最多的用户排名
|
||||
- 默认显示Top 10
|
||||
- 输出示例:
|
||||
```
|
||||
Token 使用排名 Top 10:
|
||||
|
||||
张三(QQ:123456): 25430 tokens
|
||||
李四(QQ:234567): 18920 tokens
|
||||
王五(QQ:345678): 12450 tokens
|
||||
```
|
||||
|
||||
#### 群组排名
|
||||
```
|
||||
/jgpt tokensGroups [limit]
|
||||
```
|
||||
- 显示Token消耗最多的群组排名
|
||||
- 默认显示Top 10
|
||||
- 仅统计群聊对话,不包括私聊
|
||||
- 输出示例:
|
||||
```
|
||||
群组 Token 使用排名 Top 10:
|
||||
|
||||
群 987654321: 45670 tokens
|
||||
群 876543210: 32100 tokens
|
||||
群 765432109: 28930 tokens
|
||||
```
|
||||
|
||||
#### 详细查询
|
||||
```
|
||||
/jgpt tokensQuery [userId] [days]
|
||||
```
|
||||
- 查询详细的使用记录
|
||||
- 可按用户ID过滤(可选)
|
||||
- 可指定时间范围(默认7天)
|
||||
- 最多显示20条记录
|
||||
- 输出示例:
|
||||
```
|
||||
最近 7 天使用记录(最多显示20条):
|
||||
|
||||
[03-18 14:35] 群987654321 - 张三
|
||||
模型: qwen-max, Tokens: 2345 (提示: 1234, 完成: 1111)
|
||||
|
||||
[03-18 14:30] 私聊 - 李四
|
||||
模型: qwen-max, Tokens: 1876 (提示: 980, 完成: 896)
|
||||
```
|
||||
|
||||
### 数据存储
|
||||
- Token记录保存在插件数据目录的 `data/data.json` 文件中
|
||||
- 使用 `AutoSavePluginData` 自动持久化
|
||||
- 记录永久保存,不会自动删除
|
||||
- 数据格式为JSON,可手动查看和备份
|
||||
|
||||
### 使用场景
|
||||
- **成本监控**:了解API调用成本,控制预算
|
||||
- **使用分析**:分析哪些用户或群组使用最频繁
|
||||
- **性能优化**:识别高消耗对话,优化提示词
|
||||
- **趋势分析**:观察使用趋势,规划资源
|
||||
|
||||
### 注意事项
|
||||
- 仅统计聊天模型的Token消耗
|
||||
- 推理模型和视觉模型的消耗不在统计范围内
|
||||
- 每次对话轮次都会单独记录
|
||||
- 统计数据基于实际API返回的Token数
|
||||
|
||||
## 部署要求
|
||||
|
||||
- Java 11 或更高版本
|
||||
|
||||
Reference in New Issue
Block a user