import openai
# chatgpt3.0
def chatGPT(keyword):
# 设置 API Key
openai.api_key = sk-******** #这个需要去 https://platform.openai.com/ 注册账户申请
# 设置请求参数
# model_engine = "text-davinci-003" # "text-davinci-002" #接口类型
completions = openai.Completion.create(
engine="text-davinci-003",
# 使用的模型ID。可以使用模型API列表接口https://platform.openai.com/docs/api-reference/models/list 查看所有可用的模型,有关模型的描述,请参阅模型概述 https://platform.openai.com/docs/models/overview
prompt=keyword,
# 生成完成的提示,编码为字符串、字符串数组、token数组或token数组的数组。请注意,<|endoftext|>是模型在训练期间看到的文档分隔符,因此,如果未指定提示,则模型将从新文档的开头生成。
max_tokens=2048, # 完成时要生成的最大token数量。提示的token计数加上max_tokens不能超过模型的上下文长度。大多数模型的上下文长度为2048个token(最新模型除外,支持4096个)。
n=1, # 每个提示要生成多少个完成。注意:由于此参数会生成许多完成,因此它可以快速消耗您的token配额。小心使用,并确保您对max_tokens和stop有合理的设置。
stop=None,
temperature=0.5, # 使用什么样的采样温度,介于0和2之间。较高的值(如0.8)将使输出更加随机,而较低的值(例如0.2)将使其更加集中和确定。 通常建议更改它或top_p,但不能同时更改两者。
)
return completions.choices[0].text
# chatgpt3.5接口
def chatGPT35(keyword,modelCntent=''):
# 设置 API Key
openai.api_key = sk-******** #这个需要去 https://platform.openai.com/ 注册账户申请
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
# 3.5的调教说明:https://github.com/openai/openai-cookbook/blob/main/examples/How_to_format_inputs_to_ChatGPT_models.ipynb
{"role": "system", "content": modelCntent}, #给gpt指定角色
{"role": "user", "content": keyword},#具体要查询的关键词
],
temperature=0,
)
return response['choices'][0]['message']['content']
def main():
keyword = ''
while keyword != 'exit':
if keyword != '':
chatGPT35(keyword)
#chatGPT(keyword) #3.0
keyword = input('请输入要查询的内容:')
if __name__ == "__main__":
main()
运行以上命令时需要满足一下条件:
1、进行科学上网,具体的科学上网方式可以参考文章:http://www.ewebol.com/jkxw/da3a9b4347e72bc05eec7086384076f3.html
2、并且将节点地址设置到非大陆,香港和台湾的IP,具体操作方法如下:
2、完成上述科学上网后,进入chatGpt官网:https://platform.openai.com/login/,注册一个账户,生成对应的key