在 Python 中为 `openai` 和 `ChatCompletion` 创建函数

cod*_*ird 2 python openai-api

我正在尝试创建一个简单的函数,它将接受消息(字符串)并将其传递给openai.ChatCompletion.create(),但是当我使用 F 字符串时,它会返回一个对象错误。对调试Python不太熟悉,所以我有点卡在这里。

def get_response(message):
    
    response = openai.ChatCompletion.create(
        model = 'gpt-3.5-turbo',
        temperature = 1,
        messages = [
            f"{{'role': 'user', 'content': '{message}'}}"
        ]
    )
    return response.choices[0]["message"]["content"]

# get_response('What is 2 + 2?')
Run Code Online (Sandbox Code Playgroud)

它返回:

InvalidRequestError: "{'role': 'user', 'content': 'What is 2 + 2?'}" is not of type 'object' - 'messages.0'
Run Code Online (Sandbox Code Playgroud)

我想我可能需要将字符串转换为openai已创建的某个独特的类,但我不太确定如何执行。查看了源代码,但找不到对该类的引用。

Vio*_*eig 6

您的消息必须是对象,而不是字符串(请参阅此处

def get_response(message):
    
    response = openai.ChatCompletion.create(
        model = 'gpt-3.5-turbo',
        temperature = 1,
        messages = [
            {"role": "user", "content": message}
        ]
    )
    return response.choices[0]["message"]["content"]
Run Code Online (Sandbox Code Playgroud)