创建ai项目
首先我们生成我们的API Keys。
尝试请求api
看来api key创建成功了,接口也能正常访问。
然后编写python脚本,代码很简单。
首先在当前环境下安装openai的python venv
python3 -m pip install openai
import openai
openai.api_key = "你的api key"
openai.Model.list()
我们看到模型列表输出出来了。
继续看api,这次尝试我们常用的ai对话模型。
下面是官方示例,但是我们不搞这么复杂,直接回归本质按照http去访问接口。
# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)
根据官方的示例不难看出来,对话模型是可以先定义角色的,然后每次对话通过
messages去缓存,这个messages是保存在客户端的。
- 所以我们编写代码先输入system定义ai角色,然后通过user角色去对话ai.
def open_api_speech():
# 调用语音模型
messages = list()
role = input('输入你的角色:')
while True:
prompt = input('输入你想问的:')
new_msg = [{"role": "user", "content": f'{prompt}'}]
messages.extend(new_msg)
# print([{"role": "system","content": f'{role}'}] + messages)
result = requests.post("https://api.openai.com/v1/chat/completions",
headers={'Content-Type': 'application/json',
'Authorization': f'Bearer {openai.api_key}'},
json={
"model" : target_model,
"messages": [{"role": "system",
"content": f'{role}',
}] + messages
})
return_msg = result.json()['choices'][0]['message']
print(f'{return_msg["content"]}')
messages.insert(messages.__sizeof__() - 1,return_msg)
执行看下效果
但是也有问题,如果对话的session太长的话,保存的messages就会很大。