如何正常使用ChatGPT接口
在LangChain实战课的第二课中,我们需要注册自己的OPENAI API KEY并将其导入使用,在注册时,我们有很多种API可以选用,接下来我们来聊聊,想要用ChatGPT的API应该做些什么准备。 文章分为两部分:1.实战课中获取ChatGPT API KEY的延伸。2.如何获取免费额度的API KEY。
1.实战课中获取ChatGPT API的延伸
在LangChain实战课的第二章中已经讲到了在具备科学上网的前提下,注册完成后如何获取API。
在注册时,十分重要的是一个可以“使用”的手机号,但是有很多人并没有合适的手机号,这里可以自行了解一下接码平台,不再过多赘述。
我在获取到ChatGPT API KEY之后,使用了free plan进行调用,却发现超过了使用限额,一番查看后发现,目前free plan本来是可以使用的,但在部分地区有使用额度,想要使用的话需要付费。
接下来的方法则是可以获取到有免费额度的API KEY。
2.如何获取免费额度的API KEY
在具备科学上网的条件后,就可以去github上自行寻找Free GPT API KEY,虽然绝大多数也是有限额的,但是仍然满足个人使用的需要。另外,需要注意的是,免费的API KEY仅可以用于非商业用途。
我个人使用了chatanywhere的API KEY [1], 可以在其github库中找到申请免费API KEY的链接。获取了KEY后,按照实战课中的代码导入KEY,在这里我们选择其中一种方式做示范:
from openai import OpenAI
client = OpenAI(
api_key="YOUR API KEY",
base_url="https://api.chatanywhere.tech"
)
在这里,需要把base_url设置成"api.chatanywhere.tech", 之后我们来尝试调用gpt-3.5-turbo模型,并把角色设定为user,max_tokens设定为500:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "请讲解一下LangChain"},
],
temperature=0.8,
max_tokens=500
)
print(response.choices[0].message.content)
我们得到的回复如下图所示:
在这里回复的内容是一口气全部生成的,如果想要减少等待感或是提高使用的灵活性,可以使用流式输出,这样可以实时看到生成的过程,以便在发现生成内容不符合预期时及时停止输出,具体代码如下:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "请讲解一下LangChain"},
],
temperature=0.8,
max_tokens=500,
stream=True
)
for chunk in response:
if hasattr(chunk.choices[0].delta, "content"):
print(chunk.choices[0].delta.content, end='')
具体的API限额与可以使用的模型可以查看参考资料中的github链接,如果有其他方法欢迎在评论区讨论。
参考资料: [1] github.com/chatanywher…