起底ChatGPTAPI计费逻辑,2步教你实时测算对话成本

但是问题来了,API服务里的这个“按量计费”的“量”应该怎么算?

也许你会说,那还不简单,直接看它回答了多少字数呗!这话只对了一半。因为ChatGPT不仅会讲中文,它还可以根据使用者所发送的语言,回答出英语、法语、西语等多国语言,相同意思下每个语言的长度都会不一样,所以它会将这些内容统一换算为另一个标准单位——Tokens,然后再进行计费。

ChatGPT不仅会统计自己输出了多少内容,还会记录用户输入了多少内容,毕竟它也需要先分析输入的文本才能输出有意义的回答,统一换算为Tokens值后汇总费用。以下是ChatGPTAPI的官方收费表,里面的4K、8K等数据代表单次问答中的最大上下文Tokens值。

如果你已经通过ChatGPTAPI成功地将AI能力嵌入至商业化产品中,比如说打造出了一个对客提供服务的智能客服,那么作为开发人员的你需要立刻、马上、清楚地知道每个客户的问答所产生的消耗额。因为公(Ling)司(Dao)需要知道最基础的成本才能制定出合理的运营策略。

总不能依靠实时监控OpenAI的账号后台来查看所消耗的成本吧?(更何况它还有五分钟的延迟)

那怎样才能在使用Apifox调用API的过程中就直接看到输入和输出的人民币成本呢?通过以下2步就能够清楚地看到人民币花费:

安装第三方库的运行环境。

npminstallopenai-gpt-token-counter参考以下示例代码,新建名为gpt-tokens-counter.js的Node.js脚本:

constopenaiTokenCounter=require('openai-gpt-token-counter');consttext=process.argv[2];//获取命令行参数中的测试内容constmodel="gpt-4";//替换为你想要使用的OpenAI模型consttokenCount=openaiTokenCounter.text(text,model);constcharacterCount=text.length;//计算字符数console.log(`${tokenCount}`);将该脚本文件放置于Apifox的外部程序目录下以供调用:

输入值就是在询问ChatGPT时所填写的问题。你可以在“聊天消息”API文档的前置操作中添加一个自定义脚本,使得Apifox能够调用上文中写好的Tokens换算脚本,提取位于请求参数Body中的content参数后换算为Tokens值。

填写以下示例代码:

try{varjsonData=JSON.parse(pm.request.body.raw);varcontent=jsonData.messages[0].content;//获取content中的信息varresult_input_tokens_js=pm.execute('./gpt-tokens/gpt-tokens-counter.js',[content])console.log(content);pm.environment.set("RESULT_INPUT_TOKENS",result_input_tokens_js);console.log("InputTokenscount:"+pm.environment.get("RESULT_INPUT_TOKENS"));}catch(e){console.log(e);}点击“运行”按钮后可以在控制台中看到已统计的输入值。

接下来需要计算ChatGPT输出了多少个Tokens。

因此我们需要先拼接所有的输出内容,然后再进行Tokens换算。

在后置操作中添加以下自定义脚本,拼接所有输出内容并换算Tokens:

//获取响应的文本内容consttext=pm.response.text()//将文本内容分割成行数varlines=text.split('\n');//创建一个空数组存储"content"参数varcontents=[];//遍历每一行for(vari=0;i

得到输入和输出所耗费的Tokens值后,因为ChatGPT采用美元计价,因此还需要调用实时汇率API后才能预估所消耗的人民币成本。

本文将调用CurrencylayerAPI获取实时汇率。

得到输入Tokens值后,还需请求实时汇率接口得到一个人民币换算乘数。在前置操作中新增以下脚本:

换算出输出所耗费的Tokens值后,与汇率相乘得到实际人民币成本。在后置操作中添加以下脚本:

最后还可以在后置操作中添加一个可以自动计算输入+输出总成本的步骤。

//输入输出成本加总constINPUTPrice=Number(pm.environment.get("INPUT_PRICE"));constOUTPUTPrice=Number(pm.environment.get("OUTPUT_PRICE"));console.log("总成本:"+(INPUTPrice+OUTPUTPrice)+"元");这样就能够在调试ChatGPTAPI的过程中预估出大致的输入输出总成本。

现在你不仅可以在Apifox中愉快地调用ChatGPTAPI,还能够清楚掌握你的调用成本,做到心中有数。

THE END
1.ChatGPT在数据处理中的应用如何用chatgdp处理csv数据? 在SQL结果中,我没有实际去验证。在Python结果中,使用了describe函数,还是很不错的。我们在Python中概览数据时,就是使用该函数。但是describe函数的结果中已经包含了非空值计数,而ChatGPT又单独计算了一次。 1.2 数据预处理 ? 数据预处理主要包括缺失值填充、重复值删除、异常值删除或替换。接下来看看ChatGPThttps://blog.csdn.net/weixin_41905135/article/details/136232210
2.如何利用CHATGPT分析数据快熟生成文案:无论是小红书、微博还是公众号, Chat GPT都能帮你快熟生成吸引眼球的文案,让你的创作更具有吸引力。自动撰写报告:无论是工作汇报还是项目 只需输入相关指令, Chat GPT就能为你生成结构清晰、内容肺腑的报告。Chat GPT使用技巧 1、准确提问 Chat GPT功能虽然非常强大, 但由于目前Chat GPT数据库http://www.hlwwhy.com/ask/6705610.html
3.chatgpt怎么做统计?Worktile社区2. 数据预处理:对采集到的对话数据进行预处理。预处理包括数据清洗、去除重复对话、去除噪声等步骤,以确保数据的质量和准确性。 3. 统计指标选择:根据分析的目的,选择适当的统计指标来衡量ChatGPT的性能和效果。例如,可以考虑以下指标:生成回答的准确率、可读性、相关性等。 https://worktile.com/kb/ask/539416.html
4.ChatGPT服务器,深度拆解基于此,我们进一步假设:1)考虑到AI大模型预训练主要通过巨量数据喂养完成,模型底层架构变化频率不高,故我们假设每月最多进行一次预训练;2)人类反馈机制下,模型需要不断获得人类指导以实现参数调优,以月为单位可能多次进行。由此我们计算得ChatGPT单月Finetune算力成本至少为1350.4PFlop/s-day。https://www.51cto.com/article/747956.html
5.从ChatGPT爆火看人工智能大势大数据。ChatGPT训练数据集规模巨大,训练数据集包含六类数据,分别是维基百科、书籍、期刊、Reddit链接、Common Craw以及专门的数据集。GPT-3的预训练数据有45TB。ChatGPT训练数据集规模未公开,推测也是百T级别。 大算力。GPT-3的算力需求为3640Petaflop/s-day(假设每秒计算1千万亿次,需要3640天),微软投入5亿美元建https://www.cnii.com.cn/gxxww/zgdxy/ztjj/202304/t20230420_464182.html
6.ChatGPT作为知识库问答系统的问答能力评测与现有的KBQA模型不同,ChatGPT在问答场景下的输出一般是一段包含了答案的文本,难以直接与数据集提供的答案做精确匹配从而得到模型的精准率。而由于采样的数据规模较小,已有的ChatGPT评估工作一般通过人工评价来计算模型的性能。因此,我们需要建立一套大部分自动化的答案评测方法。 https://maimai.cn/article/detail?fid=1777689012&efid=GJoGHmTuTzjbUa7TLdmtDw
7.ChatGPT原理理解和结构解读〖前言〗问了200+个问题后,终于完全搭建起来对Chat@GPT本身的原理理解和结构了解,形成的理解文件90%的内容都是他生成的。但是结构化这篇文章以及深入时刻,是自己完成的。今后的学习和工作可能都需要和他来共同完成了。 1 从概率角度理解生成式模型原理 https://www.jianshu.com/p/0628b1bd2c48