Skip to content

openai Text completion指南

24567字约82分钟

promptopenai

2024-11-01

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

正如之前分享会介绍的那样,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

https://beta.openai.com/docs/introduction/overview