V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
biguokang
V2EX  ›  程序员

给大伙说说我在使用 chatgpt api 遇到的坑供你们参考

  •  1
     
  •   biguokang ·
    AlpacaBi · 2023-03-07 10:25:03 +08:00 · 14324 次点击
    这是一个创建于 626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 网站把

    https://chat.alpaca-bi.com

    第 1 条附言  ·  2023-03-07 11:39:04 +08:00
    同志们,我的网站只服务到今晚,后面就是我个人专用了,因为免费所以太多人访问,导致费用太高了,今天可以尽情使用
    第 2 条附言  ·  2023-03-07 11:53:25 +08:00
    我还是改变主意了,我已经关了公共权限,以后只有我才能用了,抱歉了兄弟们
    50 条回复    2023-04-26 22:27:32 +08:00
    n0bady
        1
    n0bady  
       2023-03-07 10:42:50 +08:00
    网站很简约很好看
    dobelee
        2
    dobelee  
       2023-03-07 10:44:59 +08:00
    很详尽。隔壁估计也是 api 被滥用了。😅
    dobelee
        3
    dobelee  
       2023-03-07 10:45:17 +08:00
    对了中文 token 是按字算吗?
    ninvfeng2020
        4
    ninvfeng2020  
       2023-03-07 10:45:47 +08:00
    这 UI 很有特色 👍
    webdesigner
        5
    webdesigner  
       2023-03-07 10:49:28 +08:00 via iPhone
    这是 github 上面那个开源项目呀。
    biguokang
        6
    biguokang  
    OP
       2023-03-07 10:51:08 +08:00   ❤️ 1
    @webdesigner https://github.com/Chanzhaoyu/chatgpt-web ,不过原项目没 api 鉴权处理,所以用的时候小第三方心被盗用,或者你自己写一套 jwt 认证
    biguokang
        7
    biguokang  
    OP
       2023-03-07 10:51:37 +08:00
    @dobelee 按字数算的,但是我不知道 1000token 对应多少汉字
    tool2d
        8
    tool2d  
       2023-03-07 10:56:39 +08:00
    我没在 https://platform.openai.com/docs/api-reference/chat 上面,查到任何关于 parentMessageId 的参数?

    难道这个是隐藏的吗?
    biguokang
        9
    biguokang  
    OP
       2023-03-07 11:00:37 +08:00   ❤️ 1
    @tool2d 我用的 chatgpt nodejs 库,是 openai 库的二次封装
    vsitebon
        10
    vsitebon  
       2023-03-07 11:02:57 +08:00
    @biguokang 一个汉字大概 4 个 token
    mr0joker
        11
    mr0joker  
       2023-03-07 11:05:42 +08:00
    很不错的经验总结,感谢分享
    songjiaxin2008
        12
    songjiaxin2008  
       2023-03-07 11:09:20 +08:00
    @tool2d 自己把上下文组装起来就是 prompt 了
    Wincer
        13
    Wincer  
       2023-03-07 11:11:12 +08:00
    > 最要命的是,因为我的 openai 绑定了信用卡,当时我用了 dalle ,发现他居然不扣我那 18 刀的免费余额,而是直接扣我信用卡的钱。

    是只有 dalle 的使用会这样扣费,还是说 chatgpt 的 api 使用也会优先扣信用卡的钱?
    psyer
        14
    psyer  
       2023-03-07 11:14:03 +08:00 via Android
    @biguokang API 的回答是不是比 npm 的好?
    biguokang
        15
    biguokang  
    OP
       2023-03-07 11:14:07 +08:00
    @Wincer 只有 dalle 的使用会这样扣费,你还有 18 刀免费余额的话,chatgpt api 优先扣那 18 刀的免费余额。
    tool2d
        16
    tool2d  
       2023-03-07 11:15:11 +08:00
    @songjiaxin2008 这都行吗?汗。

    看来我要研究一下 nodejs 代码了,新版的 chat api 默认返回没有断句。但总觉得缺少上下文关联性啊。
    biguokang
        17
    biguokang  
    OP
       2023-03-07 11:15:37 +08:00
    @psyer npm 是啥,只能说 chatgpt api 的速度非常块,而 openai 的官方网页端 chatgpt plus 貌似比 api 更智能。
    flybluewolf
        18
    flybluewolf  
       2023-03-07 11:20:38 +08:00
    这不是坑吧,官方 API 文档里清清楚楚。
    chaselen
        19
    chaselen  
       2023-03-07 11:22:18 +08:00
    我也用了画图的 api ,原来那个费用高,难怪
    biguokang
        20
    biguokang  
    OP
       2023-03-07 11:29:54 +08:00
    @flybluewolf 我感觉大部分人看官方文档都是看 API REFERENCE 去调 api ,很少人去把 GUIDES 这种纯英文完全看完。

    不过后面我也把 GUIDES 全看一遍了,比如速率限制那里就是在 GUIDES 翻出来,也算是总结吧。

    但是 dalle 收费,我翻遍了文档都没看到他是怎么收费,我是看余额发现被坑了才知道 dalle 是那么收费的
    unco020511
        21
    unco020511  
       2023-03-07 11:33:46 +08:00
    为啥你们需要代理,openai 的 api 根本都不需要代理的呀
    sqzdy8
        22
    sqzdy8  
       2023-03-07 11:34:01 +08:00
    网站很好用
    youthfire
        23
    youthfire  
       2023-03-07 11:35:58 +08:00
    谢谢分析!
    昨天刚把信用卡绑上,其他倒是不意外,dalle 这东西还跳过免费额度直接扣的?
    之前因为用下来感觉质量比 stable-diffusion 开源的那些都差很多,也就不用了。说个题外话,你们是怎么保证真人脸部能画好的,每次出来堪比恐怖片。。
    另外也不知道是不是我对 stream 理解有问题,第一次接触,感觉输出真的慢(刚绑上,所以 1s 一次),因为每次都是都只能获取到一个字,然后拼接,感觉就是一个个字往外蹦,是不是要支持快速跳字只能等 3500RPM ?
    biguokang
        24
    biguokang  
    OP
       2023-03-07 11:42:47 +08:00
    @unco020511 之前有很多人反映 api.openai.com 这个域名被墙了,直接用国内的云服务器没法访问,所以 github 很多关于 chatgpt 的项目都加上了 proxy server 之类的选项
    yolee599
        25
    yolee599  
       2023-03-07 11:56:16 +08:00
    为啥我问了几个问题就报 Network Error 了,是限制了次数吗?
    xmumiffy
        26
    xmumiffy  
       2023-03-07 11:59:26 +08:00
    @biguokang 我这边用下来统计一个简中字约为 1.2~1.6 token
    minmo
        27
    minmo  
       2023-03-07 12:08:03 +08:00 via Android
    刚刚试了一把,还收藏了,结果问第二个问题显示 network error😓试了几次,还以为网络问题😂
    someonetwo
        28
    someonetwo  
       2023-03-07 12:12:13 +08:00
    确实挺贵的,单价看似便宜,用起来跟个无底洞一样,个人用用能接受,如果对外服务,那费用相当可观了,一个人随便问问可能一会就问掉 1 美元,特别是那些好奇的,上来生成 1000 字论文大纲,2000 字报告,小作文的,还有跟 AI 对喷的
    biguokang
        29
    biguokang  
    OP
       2023-03-07 12:18:56 +08:00
    @minmo 我关了,这玩意上下文收费太恐怖了
    biguokang
        30
    biguokang  
    OP
       2023-03-07 12:19:15 +08:00
    @yolee599 我关了,这玩意上下文收费太恐怖了
    yiios
        31
    yiios  
       2023-03-07 13:50:53 +08:00
    @biguokang 引导用户使用自有 key + 可以在限制对话次数的情况下免 key 使用。比如我的站点 ai.yiios.com
    zanxj
        32
    zanxj  
       2023-03-07 13:59:56 +08:00
    请问大伙你们绑定的是哪家信用卡?国内银行办的外币卡可用吗
    seers
        33
    seers  
       2023-03-07 14:02:10 +08:00 via Android
    token 是 4096 个上限
    yiguanxianyu
        34
    yiguanxianyu  
       2023-03-07 14:05:34 +08:00
    @zanxj 刚试了工行的 visa 和万事达都不行,应该中国卡都用不了
    PickleFish
        35
    PickleFish  
       2023-03-07 14:14:11 +08:00
    现在新注册的好像只送 5 美元了?
    tool2d
        36
    tool2d  
       2023-03-07 14:31:49 +08:00
    @biguokang "我关了,这玩意上下文收费太恐怖了"

    我翻了官方的 openapi nodejs sdk ,也没有上下文关联的参数。

    官方推荐的上下文关联,是多 message 合并发送,重复发送一次历史消息,服务器是不存对话 ID 的。

    都开始怀疑 parentMessageId 是第三方 api 自己加的参数。没准到官网 API ,都是巨型字符串拼接,收费也就高了。
    star7th
        37
    star7th  
       2023-03-07 14:45:24 +08:00
    我才发现居然有并发限制这个坑
    biguokang
        38
    biguokang  
    OP
       2023-03-07 14:48:11 +08:00
    @tool2d 区别在于,openai sdk 要自己拼,而我用那个库自己就拼好了而已,减少工作量。实际上都一样。

    这是 chatgpt 封装库的源码 https://github.com/transitive-bullshit/chatgpt-api
    tool2d
        39
    tool2d  
       2023-03-07 15:00:06 +08:00
    @biguokang 看了一眼 https://github.com/transitive-bullshit/chatgpt-api/blob/main/src/chatgpt-api.ts ,确实是和官方 API 一样,把本地所有的历史消息 ID 都转换成文本,组合成一个巨大无比的 messages 数组后,发给 api 。
    dayeye2006199
        40
    dayeye2006199  
       2023-03-07 15:08:28 +08:00
    我也没做鉴权.被爬虫刷了 300 多刀的 API, 一个 request 几万个 token
    hyperzlib
        41
    hyperzlib  
       2023-03-08 08:45:09 +08:00
    关于 API 的调用,还有自动压缩(总结)过去的聊天记录,可以参考一下我的这个项目: https://git.isekai.cn/hyperzlib/isekai-feedbot/src/branch/main/src/controller/ChatGPTController.ts

    而且还有个自我暗示功能,在尝试输出“作为一个语言模型”等内容时,会加强自我暗示再次输出。
    shiqueb
        42
    shiqueb  
       2023-03-08 10:11:43 +08:00 via Android
    意思是收费时计算的 token 数是包括输入+输出?下意识以为只算输出的,太坑了
    xbdsky
        43
    xbdsky  
       2023-03-23 20:04:56 +08:00
    @biguokang 楼主你的信用卡是咋搞的,3 个小时 5 美元就给干完,客户要用,国内的信用卡都试了不行,准备给充点
    biguokang
        44
    biguokang  
    OP
       2023-03-24 04:10:27 +08:00
    @xbdsky depay ,我目前测试过能用的,就是手续费很感人,只能用 usdt 充钱
    xbdsky
        45
    xbdsky  
       2023-03-24 21:43:19 +08:00
    @biguokang 恩,昨天也看到这个了,就是觉得麻烦,想着请教你下,原来是一个
    lvxing888
        46
    lvxing888  
       2023-03-31 11:15:06 +08:00
    @biguokang 某宝组一个,主要是省事省心,安不安全就不知道了。我随便打听了以下,50 一年卡费,然后充值是 1:7.8
    isexdpac
        47
    isexdpac  
       2023-04-25 15:23:31 +08:00
    为啥我只有 5 刀的余额呢...
    joefuzhou198x
        48
    joefuzhou198x  
       2023-04-26 19:25:43 +08:00
    p*hub 风格的,可以,很赞!!
    joefuzhou198x
        49
    joefuzhou198x  
       2023-04-26 19:26:11 +08:00
    @isexdpac 我的也只有 5 刀, 新申请的应该都只有 5 刀。
    biguokang
        50
    biguokang  
    OP
       2023-04-26 22:27:32 +08:00
    @isexdpac 我那个时候注册是有 18 刀的,现在新用户只有 5 刀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5465 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:20 · PVG 11:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.