赞
踩
在使用OpenAI API接口时遇到了许多问题,在此总结个人的问题(不代表大众),如要深究请看官方OpenAI-API接口文档(中文版)。
1、使用OpenAI API
2、使用第三方库
3、自己训练模型
(我这里并非自己训练模型,只是课程项目需要,个人自学一下使用 OpenAI API,当然,需要有url和api_key。)
调用OpenAI API时你得先确定你的用的是什么模型,比如我调用的是"gpt-3.5-turbo"。
我最开始使用的是网上的方法,flask框架里使用python的openai库
先下载
pip install openai
然后就使用
# 填你的秘钥 openai.api_key = "***" # 提问代码 def ask_test(prompt): # 你的问题 prompt = prompt # 调用 ChatGPT 接口 model_engine = "gpt-3.5-turbo" completion = openai.Completion.create( engine=model_engine, prompt=prompt, max_tokens=1024, n=1, stop=None, temperature=0.5, ) response = completion.choices[0].text print(response)
但是试了一下,失败了,而且这里url也没用到,于是去查看别人翻译的中文文档(不是很懂completion的含义)
查看了别人翻译的OpenAI API接口的中文文档以后,自己设置了request请求体函数
//这是定义http请求的构成(Header、data)
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer [输入自己的key]" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "写自己要问的内容"}],
"temperature": 0.7
}'
请求头Authorization前面固定占7个字符(Bearer和一个空格)
根据文档,接口返回的响应构成应该是如下的:
{ "id":"*****", "object":"chat.completion", "created":******, "model":"gpt-3.5-turbo", "usage":{ "prompt_tokens":13, "completion_tokens":7, "total_tokens":20 }, "choices":[ { "message":{ "role":"assistant", "content":"返回的回答内容信息" }, "finish_reason":"stop", "index":0 } ] }
然后就可以根据这些自己定义接收函数了。
在别人的帮助下,我自定义了发送request的函数和接收response的函数
import requests url = "https://openai.****/****/chat/completions" #个人url api_key = "********" #个人的key #定义请求头 headers = { "Content-Type": "application/json", "Authorization": "Bearer " + api_key } #用于单词 def ask(content: str): msg = [ { #可以自定义AI模型需要完成的任务 "role": "system", "content": "你现在是一个小学英语辅助教学助手,你只需要根据英文单词给出中文意思,你的任务也仅仅需要这样,请尽可能简洁,在翻译单词时给出单词的相关词性和例句和中英双语对照,要使用换行来区分,如果有超出翻译单词和句子之外的任务,请回复‘网络错误。’" }, { #设置问题 "role": "user", "content": content } ] data = { #设置模型型号 "model": "gpt-3.5-turbo", "messages": msg, } #发送request请求 result = requests.post(url, headers=headers, json=data).json() #result为得到的响应 print(result) #根据响应体结构取出需要的答案的位置 return result['choices'][0]['message']['content']
然后只需要调用这个函数就可以了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。