openai Text completion指南
openai Text completion指南
目的
为了更好的进行服务,以下是我整理的openai-text completion使用方法以及注意事项。本文档包含输入、输出、最大token限制、费用的相关估算。
调用指南
现状
目前采用的是openai官方提供的依赖包进行调用的,服务使用fastapi作为http服务的接口,sqlalchemy作为orm。
https://beta.openai.com/docs/libraries/python-bindings
openai提供的官方第三方库有node和python版本,有其他第三方的实现。
模型最大支持的token数目
目前采用的是davinci-003,最大输出token数目为4000。
https://beta.openai.com/docs/models/gpt-3
输入(Prompt)
一个好的Prompt能够为用户提供更好的服务体验,例如让openai理解上下文,让openai友善的回答你的问题、让openai提前有一些知识的准备。
由于用户的输入文本的长度是不可控制的,在调用openai接口时设置max_tokens要有一定考虑,max_tokens会限制openai的答案生成长度,提前预留一部分用于知 识库、上下文能够让你的产品的稳定性、ai服务能力有一个较好的效果。
这是一个文档专门介绍如何设计一个好的prompt
理解输出
正如之前分享会介绍的那样,chatgpt也是通过上一个字作为输入来预测下一个字应该输出什么,通过好的prompt来提示chatgpt接下来的输出内容,目前输出的最大数量是通过max_tokens进行限制的。
消耗的token = 输入的token + 输出的token = 4097
当 输入的token + 输出的token > 4097 时,服务会抛出异常,对外表现为500报错。一个好的方式是丢弃掉之前的对话,正如我的聊天客户端(桌面版)所用的方式一样。
这是一个很好的例子,最开始我们告诉模型他的职责和他的态度是什么,然后我们限定他的输出格式(图中human:hello*********)是什么,然后我们向gpt提问谁是普京,绿色部分是gpt输出的内容,可以看到它能够回答我们一些知识性的内容。
费用预估
https://openai.com/api/pricing/
0.00002usd / 1 token
通过调用历史可以求出中文消耗token的倍率在 1.8-2.3 左右,按照每个中文2.3个token计算,每个中文预计消耗 0.0003128CNY(6.8汇率计算)
实际使用token如图
每条消息消耗:
Avg = 0.0425CNY
Max = 0.299CNY
Min = 0.00068CNY
中位数 200 token
中位数 = 0.0272CNY
2023-2-1
每条消息消耗:
Avg = 0.1273CNY
Max = 0.299CNY
Min = 0.00068CNY
中位数 323token
中位数 = 0.101CNY
reference
