非流式响应

import openai

openai.api_key = "这里放入你的API Key,注意要保留双引号"

completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "知乎是什么?"}]
)

# 将得到的openai对象转换成python字典
data_json = completion.to_dict()
print(data_json)

可运行代码

import openai
openai.api_key = "sk"
question: str = input("问题: ")

completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": question}]
)
# 将得到的openai对象转换成python字典
data_json = completion.to_dict()
data_json = data_json['choices'][0]['message']['content']
print("AI: " + data_json)

流式响应

import openai

openai.api_key = "这里放入你的API Key,注意要保留双引号"

completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "知乎是什么?"}]
)

# 将得到的openai对象转换成python字典
data_json = completion.to_dict()
print(data_json)

可运行代码

import openai  

openai.api_key = "sk-AmHHPxId"
question: str = input("问题: ")
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
stream=True,
messages=[{"role": "user", "content": question}]
)

collected_events = [] # 响应接收区
stream_result = '' # 保存流式输出的总结果
for event in completion:
collected_events.append(event) # 保存事件响应
data_dict = event.to_dict() # 转换响应为字典
data_openai_object = data_dict['choices'][0] # 获取choices的值
data_json = data_openai_object.to_dict() # 转换openai_object为字典
data_openai_object = data_json['delta'] # 获取delta的值
finish_reason = data_json['finish_reason'] # 获取finish的值,用于判断是否传输结束
data_json = data_openai_object.to_dict() # 转换openai_object为字典
segmental_result = data_json.get('content', "null") # 获取content的值,如果没有就返回null

if(segmental_result != "null"): # 判断“分段结果”内是否有内容,有就输出
print(segmental_result, end="") # 输出“分段结果“的内容
else:
if (finish_reason == "stop"):
print("\n 结束对话")