gpt4 book ai didi

openai-api - 如何确定 gpt-4 chatCompletion 的预期提示标记

转载 作者:行者123 更新时间:2023-12-02 22:48:15 25 4
gpt4 key购买 nike

对于下面的nodejs代码,我在响应中得到prompt_tokens = 24。我希望能够在发出请求之前确定预期的提示 token 应该是什么。

    import { Configuration, OpenAIApi } from 'openai';

const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});

const openai = new OpenAIApi(configuration);

const completion = await openai.createChatCompletion({
model: "gpt-4",
messages: [
{role: "system", content: systemPrompt}, //systemPrompt= 'You are a useful assistant.'
{role: "user", content: userPrompt} //userPrompt= `What is the meaning of life?`
]
});

/* completion.data = {
id: 'chatcmpl-72Andnl250jsvSJGbjBJ6YzzFGToA',
object: 'chat.completion',
created: 1680752525,
model: 'gpt-4-0314',
usage: { prompt_tokens: 24, completion_tokens: 91, total_tokens: 115 },
choices: [ [Object] ]
} */

似乎每个模型都有自己的编码方式,最好的库是 python tiktoken。因此,如果我要估计“prompt_tokens”。我需要将“文本”值传递给下面的脚本。但是我不确定我应该在 python 脚本中使用什么作为上面的 Nodejs 中的“消息”的“文本”,这样 print(token_count) 下面 = 24 [响应中的实际提示 token ]

    import sys
import tiktoken

text = sys.argv[1]
enc = tiktoken.encoding_for_model("gpt-4")
tokens = enc.encode(text)
token_count = len(tokens)
print(token_count)

最佳答案

OpenAI推荐一个JS库gpt3-encoder ,经过测试,它给出了与 tokenizer playground 类似的结果.

以下是如何使用它的示例:

import { encode, decode } from 'gpt-3-encoder'

const str = 'This is an example sentence to try encoding out on!'
const encoded = encode(str)
console.log('Encoded this string looks like: ', encoded)

这给出了以下结果:

Encoded this string looks like:  [
1212, 318, 281,
1672, 6827, 284,
1949, 21004, 503,
319, 0
]

如果你想使用 token id 到字符串的对应关系

for (let token of encoded) {
console.log({ token, string: decode([token]) })
}

结果

{ token: 1212, string: 'This' }
{ token: 318, string: ' is' }
{ token: 281, string: ' an' }
{ token: 1672, string: ' example' }
...

最后,要将 token id 转回来,这句话

const decoded = decode([array of token ids])
console.log('We can decode it back into:\n', decoded)

因此,对于您来说,您可以查看encoded数组的大小,以获取 token 的数量。 编码长度

关于openai-api - 如何确定 gpt-4 chatCompletion 的预期提示标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75945693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com