前言
最近在看ChatGPT的相关内容,尝试了在自己电脑上调用一下OpenAI的api,下面以调用GPT-3.5-turbo为例进行讲解。
本次分享分为三大模块:
第一个模块先对连接成功后的AI聊天机器人的功能进行简要了解,
第二个模块讲一下国内连接OpenAI的api所需要的前提条件,
第三个模块详细讲解一下怎么进行连接调用OpenAI的api接口。
1 聊天模式
通过api接口连接的ChatGPT其实是GPT-3.5-turbo,它也是目前能调用的功能最强大的GPT-3.5模型,但是它不具有记忆功能,也就是说AI机器人记不住之前的对话内容。 我们可以通过修改代码实现有记忆功能的AI机器人,具体实现方式是把之前的对话内容添加到当前的提问内容之前,也就是说在这种模式下,虽然我们只是输入了一段提问的话,但是模型会自动把之前的对话内容都添加到当前提问内容的前面,这样AI机器人就知道我们之前的对话内容了。这也导致了每次的提问内容特别的长,这是非常耗费token的,因此费用也更高。下面分别给出两种聊天模式的示例:
1.1 不具有记忆功能的AI机器人,以下内容是不具有记忆功能的AI机器人生成的对话:
User: 你是谁?
AI: 我是AI语言模型,被设计成能聊天、回答问题和完成任务等功能的人工智校程序。
User: 你会干什么啊?
AI:作为人工智能语言模型,我可以回答各种问题,提供信息和建议,执行简单的任务,如提醒和定时器。我还可以进行自然语言处理和语义理解,以与人类进行自然的对话。
User; 我上面问你的是什么?
AI: 对不起,我不起道你在上面问的是什么。请您再次提问,我会尽力回答。
User: exit
AI:好的,再见!
1.2 有记忆功能的AI机器人,以下内容是有记忆功能的AI机器人生成的对话:
User: 你是谁?
AI: 我是AI助手,您可以称呼我为小助手。
User: 你会干什么啊?
AI:我可以提供您各种帮助,例如回答问题、提供建议、进行搜索、安排日程、记录备忘录等等。只要您需要,我就会尽力为您服务。
User; 我上面问你的是什么?
AI: 您问的是我会干什么。
User: exit
AI:好的,再见!
2 连接准备
调用OpenAI的api接口需要连接外网的vpn,所以第一步就要求本地电脑要能访问外网。
3 连接教程
3.1 创建OpenAI账号
因为我们要调用OpenAI的api接口, 所以我们要有OpenAI的账号,然后使用我们账号专属的密钥来调用api接口。如果你已经有OpenAI的账号了,那么请直接跳到教程的第2步。如果没有账号,那么请参考https://www.bilibili.com/video/BV1q8411u7KL/?spm_id_from=333.337.search-card.all.click&vd_source=abfae2a3e8e1836fd584d268a469b4d2,注册一个属于你的OpenAI账号。
3.2 连接GPT-3.5-turbo
当我们有了OpenAI的账号后,通过访问https://platform.openai. com/account/api-keys 即可获得属于你的密钥,点击create new secret key生成密钥,复制生成的密钥,这里进入官网如果出现卡顿请打开vpn连接外网。
将以下代码复制到IDE中,将得到密钥复制进代码里,代码不长,每一行代码都写了注释,代码里只需要对两个地方进行更改即可,需要更改的内容为:os.environ[“http_proxy”]和openai.api_key = " " 。
这是不具有记忆功能的聊天机器人代码:
import os
import openai
# 设置代理端口,否则连接不上api
os.environ["http_proxy"]="127.0.0.1:1080"# os.environ["http_proxy"] = "http://<代理ip>:<代理端口>",这里的127.0.0.1就是本机电脑ip,1080是vpn的端口
os.environ["https_proxy"]="127.0.0.1:1080"# os.environ["https_proxy"] = "http://<代理ip>:<代理端口>"
openai.api_key ="your api key"# 将自己的api_key填进去,获取地址:https://platform.openai.com/account/api-keyswhileTrue:# 获取用户输入
user_input =input("User:")# 检查是否输入了 “exit”,如果是则退出聊天if user_input.lower()=="exit":print("AI:好的,再见!")break# 获得ChatGPT的回复
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user","content": user_input}])# 将回复进行输出print("AI:", completion.choices[0].message["content"])
这是具有记忆功能的聊天机器人代码:
import os
import openai
# 设置代理端口,否则连接不上api
os.environ["http_proxy"]="127.0.0.1:1080"# os.environ["http_proxy"] = "http://<代理ip>:<代理端口>"
os.environ["https_proxy"]="127.0.0.1:1080"# os.environ["https_proxy"] = "http://<代理ip>:<代理端口>"
openai.api_key ="your api key"# 将自己的api_key填进去,获取地址:https://platform.openai.com/account/api-keys
chat_history =""whileTrue:# 获取用户输入
user_input =input("User:")# 检查是否输入了 “exit”,如果是则退出聊天if user_input.lower()=="exit":print("AI:好的,再见!")break# 将用户的输入拼接到历史对话中
chat_history +=f"\nUser: {user_input}"
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user","content": chat_history}])# 将AI的回答拼接到历史对话中
chat_history +=f"\n: {completion.choices[0].message['content']}"# 输出Ai的回答print("AI:", completion.choices[0].message["content"])
更改好代码之后,安装好需要的依赖包就可以直接运行了。运行代码之后会弹出User界面,在User后输入提问的问题,然后会回车,AI机器人就会给出回答, AI后的内容表示聊天机器人的回答,想要结束聊天时,在User后输入exit就可以结束聊天了。
总结
以上就是全部内容了,也是参考官网的教程来搞得,没啥技术含量,就当记录一下小白的成长经历吧。
版权归原作者 J心流 所有, 如有侵权,请联系我们删除。