ChatGpt

学习ChatGPT(三)

2023-03-21  本文已影响0人  梅林骑士

创建ai项目

首先我们生成我们的API Keys

尝试请求api

image.png

看来api key创建成功了,接口也能正常访问。

然后编写python脚本,代码很简单。
首先在当前环境下安装openai的python venv

python3 -m pip install openai

import openai
openai.api_key = "你的api key"
openai.Model.list()
image.png
# 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是保存在客户端的。

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)

执行看下效果


image.png

但是也有问题,如果对话的session太长的话,保存的messages就会很大。

上一篇 下一篇

猜你喜欢

热点阅读