<Note>
ChatGPT API发布了!
我在这里发布了一篇关于ChatGPT API版本的文章:
https://medium.com/geekculture/2023-how-to-use-chatgpt-api-with-curl-f2628e4f809
<Introduction>
全世界都在热议ChatGPT!
此外,OpenAI还发布了GPT-3的API。
该模型经过训练,可以将日语、英语和其他语言的句子作为输入,并生成类似于人类生成的自然文本。
如果你可以通过使用curl从GPT-3(或其他模型)获得答案,那么就可以将GPT-3嵌入你的应用程序中!
本文将分享以下内容:
- 生成API密钥
- 在curl中运行GPT-3
- 将其作为shell脚本运行
维基百科
生成式预训练变形器3(GPT-3;风格化为GPT·3)是一个自回归语言模型,它使用深度学习来产生类似于人类的文本。给定一个初始文本作为提示,它将生成继续提示的文本。
该体系结构是一个标准的变压器网络(带有一些工程调整),其上下文长度为2048个标记,并且拥有1750亿个参数(需要800 GB的存储)。训练方法是“生成预训练”,这意味着它被训练来预测下一个标记是什么。该模型在许多基于文本的任务上表现出强大的小样本学习能力。
它是GPT-n系列的第三代语言预测模型(也是GPT-2的后继者),由OpenAI创建,OpenAI是总部位于旧金山的人工智能研究实验室。GPT-3于2020年5月推出,截至2020年7月,仍处于测试阶段,是预训练语言表示的自然语言处理系统的趋势之一。
(维基百科)
<生成API密钥>
- 访问
- 登录
你可以使用社交账号登录,如Google登录。
- 访问查看API密钥
- 点击“创建新的secret key”
你的API密钥将生成如下:
- 安装jq
它使我们能够格式化响应。
brew install jq
<执行>
- curl语句示例
curl https://api.openai.com/v1/completions \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer [Your API Key]" \
-d '{
"model": "text-davinci-003",
"prompt": "What is your name?",
"max_tokens": 4000,
"temperature": 1.0
}' \
--insecure
得到的响应如下:
{"id":"cmpl-6M8ZTfWK4oyQ6ALUUR5Ht0Lc0VmRK","object":"text_completion","created":1670734183,"model":"text-davinci-003","choices":[{"text":"\n\nMy name is Hannah.","index":0,"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":5,"completion_tokens":7,"total_tokens":12}}
但是响应不太容易查看,并混合了不必要的信息。
因此,我建议使用jq来格式化响应并仅过滤回答单词。
curl https://api.openai.com/v1/completions \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer [Your API Key]" \
-d '{
"model": "text-davinci-003",
"prompt": "What is your name?",
"max_tokens": 4000,
"temperature": 1.0
}' \
--insecure | jq '.choices[]'.text
注意:请用你自己的API密钥替换**[Your API Key]**。
一个示例响应如下:
这更容易看到它的答案。
在这里,我将提到一些参数:
- temperature
要使用的采样温度。较高的值意味着模型会冒更多的风险。尝试0.9进行更具创造性的应用程序,尝试0(argmax采样)进行具有明确定义答案的应用程序。
- max_tokens
在完成中要生成的最大数量的标记。
你的提示的标记计数加上`max_tokens`不能超过模型的上下文长度。大多数模型的上下文长度为2048个标记(除了最新的模型,它们支持4096)。
1000个token大约是750个单词。
<制作一个shell脚本以便更方便地使用>
Curl非常有用,但每次使用这个长命令都有点麻烦。
我们想要做的就是改变关键字、温度等参数。
我写了一个shell脚本,可以通过这个命令运行脚本:
sh gpt3.sh "What is your name?" 1.0
这里,第二个参数1.0是为了温度。
max_tokens在脚本中被固定为4000。
gpt3.sh
#!/bin/sh
echo '$0: Script Name: '$0
echo '$1: Keyword: '$1
echo '$2: Temperature: '$2
echo "\nInput": $1
echo "\nOutput:"
curl=`cat <<EOS
curl https://api.openai.com/v1/completions \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer [Your API Key]" \
-d '{
"model": "text-davinci-003",
"prompt": "$1",
"max_tokens": 4000,
"temperature": $2
}' \
--insecure | jq '.choices[]'.text
EOS`
eval ${curl}
注意:将**[你的API密钥]**替换为你自己的。
然后,让我们运行脚本!
sh gpt3.sh "What is your name?" 1.0
你会得到这样的响应:
$0: Script Name: gpt3.sh
$1: Keyword: What is your name?
$2: Temperature: 1.0
Input: What is your name?
Output:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 384 100 281 100 103 186 68 0:00:01 0:00:01 --:--:-- 245
"\n\nMy name is Chris."
- 奖励问题
sh gpt3.sh "What do you think about the evolution of AI?" 1.0
>
“我认为人工智能非常令人兴奋,并正在快速发展成为一种改善我们生活的强大工具。
它正在开启一些可能性,从自动化乏味的日常任务到实现更准确和更快速的决策。
我认为它具有革命性的潜力,我期待着看它在能力上继续增长。”
……太棒了
现在你可以将GPT-3嵌入你的应用程序中了!
恭喜!
<注意:使用GPT-3的价格>
免费开始
开始尝试使用18美元的免费信用,可在你的前3个月内使用。
价格是每1000个token的价格。你可以把token看成单词的一部分,其中1000个token大约是750个单词。这段话有35个token。
<参考>
- 每个模型的描述
- 每个参数的描述
希望这篇文章对你有所帮助!
开发愉快!
KASATA
https://twitter.com/IT_makesUsHappy
译自:https://medium.com/geekculture/2022-how-to-use-chatgpt-api-with-curl-88830dec8a65
评论(0)