我正在参与「启航计划」
除了经过网页运用ChatGPT,OpenAI还供给了ChatGPT的敞开接口API,让开发者能够经过程序直接获取ChatGPT的答复。这样,其他开发者就能够在自己的程序和系统中接入ChatGPT,供给智能应对的功用。
进入OpenAI的敞开渠道(platform.openai.com),能够看到接口相关文档和演示代码。
调用ChatGPT的接口需求先申请一个API key,登录账号之后,点击页面右上角的用户名,选择【View API keys】,在弹出的页面上点击【Create new secret key】,创立一个新的API key。请注意,API key生成成功后需求复制下来并妥善保存,在页面上无法再次检查,后面在代码中调用时会用到。
ChatGPT的接口不是免费的,费用以token为单位计算,1000个token大约相当于750个英文单词,费用为0.002美元。一般一次问答会耗费几百个token,也就是约人民币1分钱左右。现在每个账号注册后会赠送一定的额度,能够在页面上检查API额度的运用情况。
下面介绍3种接入办法。
1. 经过SDK接入
有了API key,就能够在代码中运用ChatGPT了。OpenAI官方供给了SDK,也就是一个现成的Python模块供开发者运用,姓名就叫 openai。能够在指令行经过pip指令进行装置:
pip install openai
导入openai模块,将创立的API Key赋值给openai的api_key特点。
结构恳求内容,格局是一个字典,其间role的值为user,content的值为向ChatGPT发问的内容。
经过openai.ChatCompletion.create函数调用ChatGPT接口,参数model设定为gpt-3.5-turbo,messages参数是对话列表,这里只包含一个元素,就是前面结构的恳求内容。你也能够传入多个对话作为上下文。
响应结果中会包含很多信息,如对话ID、时刻、耗费的token数等等,我们这里只提取其间的内容部分。
import openai
openai.api_key = '在网页上创立的APIKey'
prompt = input('发问:')
msg = {'role':'user', 'content':prompt}
result = openai.ChatCompletion.create(model='gpt-3.5-turbo', messages=[msg])
answer = result.choices[0].message['content']
print(answer)
2. 经过指令行调用
在装置了openai模块之后,会一起主动装备好一个指令行东西,于是也就能够经过如下指令调用ChatGPT:
openai -k 你的APIKey api chat_completions.create -m gpt-3.5-turbo -g user 发问内容
3. 经过指令行调用
不管是经过SDK接入还是指令行调用ChatGPT,本质上都是向ChatGPT的API接口发送网络恳求,在此根底之上做了不同方式的封装。所以,我们也能够直接经过Python代码向接口发送恳求,实现与ChatGPT的对话。
运用requests模块向ChatGPT的API接口地址发送恳求,在头部信息中包含恳求的数据格局及API key。恳求的数据内容结构及意义与之前SDK中运用的参数相同。
import openai
openai.api_key = '在网页上创立的API Key'
def ask(prompt):
msg = {'role':'user', 'content':prompt}
result = openai.ChatCompletion.create(model='gpt-3.5-turbo', messages=[msg])
answer = result.choices[0].message['content']
return answer
while True:
ques = input('发问:')
if not ques:
break
print('AI思考中……')
ans = ask(ques)
print('答复:', ans)
以上就是在程序中接入OpenAI API的几种办法,可根据实践的开发需求调理传递的参数然后实现愈加完善的交互功用。这里不做进一步演示,大家可参考敞开渠道上文档和示例进行深化学习。