Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

记录每个请求的 Token 消耗(预估) #15

Merged
merged 2 commits into from
Apr 9, 2023

Conversation

zhujunsan
Copy link
Contributor

需要升级依赖 chatgpt 到 5.2.0+
这在主 Repo 遇到了问题,不过我试下来没什么发现

单独建表而不是更新在原来的 ChatInfo 表,是因为考虑到一个问题可以多次生成回答,如果都记录下来在一个 ChatInfo 中必然会有多层,对统计不友好。而单独建一个统计表也方便之后如果有需要统计每个用户的使用量,各个表的 ID 都在,应该可以链回原来表的,信息不冗余也不缺失

需要升级依赖 chatgpt 到 5.2.0+
@Kerwin1202
Copy link
Member

其实我偏向于放在一起,你这只是做个日志记录,但是一般 想统计token 是希望页面聊天的地方显示出来的,如果按照你这样,首次可以用接口返回的,但是刷新页面之后,这个数据其实2个表就不好查了,放一起页面也好显示

至于你说的 一个问题可以多次生成回答 ,刚前两天你的pull request 是多次生成多加个字段放一起应该还可以吧

@zhujunsan
Copy link
Contributor Author

zhujunsan commented Apr 8, 2023

嗯写那个pr的时候就在想这个了。

我说的统计是比如每个人每天消耗了多少token这种,因为我考虑可能要监控每人每天用量之类的,不过这种监控应该是另外的界面比如Grafana单独做看板了;

你说的是展示每个对话消耗了多少这种,方便在界面上做展示。

我觉得倒是可以两边都加,目的不一样。你觉得需要加开关做这事儿么?

@Kerwin1202
Copy link
Member

开关不需要吧,可以都有。。至于 response.data.id 这个是不是不需要记录 好像知道了也没地方查询?

另外是否会考虑 多个 apikey 的情况:就是统计的时候统计这个token是哪个apikey的 后续可能会考虑加多apikey 轮询这种。 还是你觉得这种没啥必要

@zhujunsan
Copy link
Contributor Author

多个 apikey 支持的话那之后也是要加上的,可以作为一个todo

response.data.iduuid 重复了,主要是因为 uuid 是自己生成的(而且只是拿的当前毫秒数),messageId 是 openai 返的,总觉的 uuid 不保险

@Kerwin1202
Copy link
Member

uuid 原来是打算改得,但是因为 要合并 https://github.com/Chanzhaoyu/chatgpt-web 的代码 所以方便合并,否则很多冲突。其实正常使用来说,这个是够的也不会冲突,而且chatinfo 本身另外有主键id。 都可以,我就随口问下

@zhujunsan
Copy link
Contributor Author

嗯,不过主键和uuid都有重新生成的问题。那我还是用 _id 吧,晚点我改改

@Kerwin1202 Kerwin1202 merged commit 0315da4 into chatgpt-web-dev:main Apr 9, 2023
@zhujunsan zhujunsan deleted the record_usage branch April 14, 2023 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants