给大伙说说我在使用 chatgpt api 遇到的坑供你们参考
1.新账号有并发量限制
如果你是新账号,你会发现你有 18 刀的免费余额,但是如果你没有绑定信用卡,那么 chatgpt api 的并发量控制在每分钟 20 次请求,所以一分钟内调用 chatgpt api 超过 20 次,你问它问题只会回答你 rate limit 、要你绑定信用卡之类的消息了。
如何解除 rate limit 限制???只能绑定信用卡,在绑定了信用卡的 48 小时内并发量会提升到每分钟 60 次,绑定了信用卡 48 小时后候则是每分钟 3500 次。
2.他收费是把上下文的 token 都算上去的
chatgpt api 的收费标准0.002 美刀 /1000token,看起来很便宜是吧,你开发 chatgpt ai 的时候,如果请求参数没加上 parentMessageId 的参数,那他就不会有上下文功能,相当于是一问一答,那收费的确便宜。
如果你想实现上下文,请求的时候就必须把 parentMessageId 的参数加上去,然后你每次提问问题的时候,他都会把之前的上下文纪录都一起累积提交过去,这些也是要算钱的,导致你每一次问问题,越往后消耗的 token 量越恐怖,特别是喜欢让 chatgpt 生成 1000 字论文的那种。
而且上下文容量是有限制的,如果你聊天纪录过长,总 token 超过大概几万个的时候,open ai 只会回复你 token 太长的错误,要你清空 token 。
所以为了你的钱包着想,也为了用户体验,写后端的时候一定要做好清理上下文的工作。
3.不要用 dalle 图片生成
一般来说,openai 的官方 sdk ,其实本身也包含了 dalle api ,有些人可能就会想,要不顺便用用 dalle ,加一个生成图片的功能。
我就试过,发现他生成的图片不怎么样,效果没那么好,其次最要命的是,生成一张图片收费 0.02 美刀,也就是大概生成 10 张图片就要消耗掉你 1 块 rmb 左右。
最要命的是,因为我的 openai 绑定了信用卡,当时我用了 dalle ,发现他居然不扣我那 18 刀的免费余额,而是直接扣我信用卡的钱。
所以千万不要用。
4.后端记得做 api 鉴权,不要太信任你的朋友圈
我自己弄着玩的,所以没做后端 api 鉴权,而我只是把我自己弄得 chatgpt 网站分享到了朋友圈和几个技术群,结果就有人扒我的后端 api 了,导致被滥用,几天下来发生了差不多 10 万次请求纪录,把我 18 刀免费余额刷光还刷了我 50 美刀的信用卡,然而我看我的网站的 google analyze 统计的访问量根本就没那么多人,很明显我的后端被人拿去用了,所以我立马加了鉴权 api 调用量立马下降不少。
不过你们倒是可以参考下我的情况来预估 chatgpt api 收费,接近 10 万次请求,花了接近 70 刀
心酸,倒也不是钱被刷了 50 刀心酸,而是我不喜欢被第三方白嫖,本来就是我自己做着玩免费的
至于开发模式,我建议不要折腾国内服务器加境外代理了,直接租一台美国的 vps 把,然后用 vscode remote 过去直接在云服务器上远程写代码
最后分享一下我的 chatgpt 网站把
chat.alpaca-bi.com
同志们,我的网站只服务到今晚,后面就是我个人专用了,因为免费所以太多人访问,导致费用太高了,今天可以尽情使用
我还是改变主意了,我已经关了公共权限,以后只有我才能用了,抱歉了兄弟们
网站很简约很好看
很详尽。隔壁估计也是 api 被滥用了。😅
对了中文 token 是按字算吗?
这 UI 很有特色 👍
这是 github 上面那个开源项目呀。
github.com/Chanzhaoyu/chatgpt-web ,不过原项目没 api 鉴权处理,所以用的时候小第三方心被盗用,或者你自己写一套 jwt 认证
按字数算的,但是我不知道 1000token 对应多少汉字
我没在 platform.openai.com/docs/api-reference/chat 上面,查到任何关于 parentMessageId 的参数?
难道这个是隐藏的吗?
我用的 chatgpt nodejs 库,是 openai 库的二次封装
一个汉字大概 4 个 token
很不错的经验总结,感谢分享
自己把上下文组装起来就是 prompt 了
最要命的是,因为我的 openai 绑定了信用卡,当时我用了 dalle ,发现他居然不扣我那 18 刀的免费余额,而是直接扣我信用卡的钱。
是只有 dalle 的使用会这样扣费,还是说 chatgpt 的 api 使用也会优先扣信用卡的钱?
API 的回答是不是比 npm 的好?
只有 dalle 的使用会这样扣费,你还有 18 刀免费余额的话,chatgpt api 优先扣那 18 刀的免费余额。
这都行吗?汗。
看来我要研究一下 nodejs 代码了,新版的 chat api 默认返回没有断句。但总觉得缺少上下文关联性啊。
npm 是啥,只能说 chatgpt api 的速度非常块,而 openai 的官方网页端 chatgpt plus 貌似比 api 更智能。
这不是坑吧,官方 API 文档里清清楚楚。
我也用了画图的 api ,原来那个费用高,难怪
我感觉大部分人看官方文档都是看 API REFERENCE 去调 api ,很少人去把 GUIDES 这种纯英文完全看完。
不过后面我也把 GUIDES 全看一遍了,比如速率限制那里就是在 GUIDES 翻出来,也算是总结吧。
但是 dalle 收费,我翻遍了文档都没看到他是怎么收费,我是看余额发现被坑了才知道 dalle 是那么收费的
为啥你们需要代理,openai 的 api 根本都不需要代理的呀
网站很好用
谢谢分析!
昨天刚把信用卡绑上,其他倒是不意外,dalle 这东西还跳过免费额度直接扣的?
之前因为用下来感觉质量比 stable-diffusion 开源的那些都差很多,也就不用了。说个题外话,你们是怎么保证真人脸部能画好的,每次出来堪比恐怖片。。
另外也不知道是不是我对 stream 理解有问题,第一次接触,感觉输出真的慢(刚绑上,所以 1s 一次),因为每次都是都只能获取到一个字,然后拼接,感觉就是一个个字往外蹦,是不是要支持快速跳字只能等 3500RPM ?
之前有很多人反映 api.openai.com 这个域名被墙了,直接用国内的云服务器没法访问,所以 github 很多关于 chatgpt 的项目都加上了 proxy server 之类的选项
为啥我问了几个问题就报 Network Error 了,是限制了次数吗?
我这边用下来统计一个简中字约为 1.2~1.6 token
刚刚试了一把,还收藏了,结果问第二个问题显示 network error😓试了几次,还以为网络问题😂
确实挺贵的,单价看似便宜,用起来跟个无底洞一样,个人用用能接受,如果对外服务,那费用相当可观了,一个人随便问问可能一会就问掉 1 美元,特别是那些好奇的,上来生成 1000 字论文大纲,2000 字报告,小作文的,还有跟 AI 对喷的
我关了,这玩意上下文收费太恐怖了
我关了,这玩意上下文收费太恐怖了
引导用户使用自有 key + 可以在限制对话次数的情况下免 key 使用。比如我的站点 ai.yiios.com
请问大伙你们绑定的是哪家信用卡?国内银行办的外币卡可用吗
token 是 4096 个上限
刚试了工行的 visa 和万事达都不行,应该中国卡都用不了
现在新注册的好像只送 5 美元了?
"我关了,这玩意上下文收费太恐怖了"
我翻了官方的 openapi nodejs sdk ,也没有上下文关联的参数。
官方推荐的上下文关联,是多 message 合并发送,重复发送一次历史消息,服务器是不存对话 ID 的。
都开始怀疑 parentMessageId 是第三方 api 自己加的参数。没准到官网 API ,都是巨型字符串拼接,收费也就高了。
我才发现居然有并发限制这个坑
区别在于,openai sdk 要自己拼,而我用那个库自己就拼好了而已,减少工作量。实际上都一样。
这是 chatgpt 封装库的源码 github.com/transitive-bullshit/chatgpt-api
看了一眼 github.com/transitive-bullshit/chatgpt-api/blob/main/src/chatgpt-api.ts ,确实是和官方 API 一样,把本地所有的历史消息 ID 都转换成文本,组合成一个巨大无比的 messages 数组后,发给 api 。
我也没做鉴权.被爬虫刷了 300 多刀的 API, 一个 request 几万个 token
关于 API 的调用,还有自动压缩(总结)过去的聊天记录,可以参考一下我的这个项目: git.isekai.cn/hyperzlib/isekai-feedbot/src/branch/main/src/controller/ChatGPTController.ts
而且还有个自我暗示功能,在尝试输出“作为一个语言模型”等内容时,会加强自我暗示再次输出。
Golang Golang 的交叉编译简直太容易了,只需设置 GOOS=linux 和 GOARCH=amd64 这两个环境变量,然后运行 go build。如果你的代码没有使…
转送门: mp.weixin.qq.com/s/eWOdlsFHRCVgm7JeceUyiA 贵 还行吧,我买 4600 时也 2200 多了,现在看就是个冤大头,听说…
循环子组件,数据通过 props 传递,其中一个编辑完了之后在外面点击提交,怎么拿到子组件的数据? 大概就是这么个情况,想半天没想出来 用 store 模式可以(貌似不应该这…