“TypeError:'ChatCompletion'对象不可订阅”错误

问题描述 投票:0回答:1

运行下一个代码并出现错误。请帮我修复!预先感谢

这是我的代码:

def get_completion_and_token_count(messages, 
                                   model="gpt-3.5-turbo", 
                                   temperature=0, 
                                   max_tokens=500):
    
    response = client.chat.completions.create(
        model=model,
        messages=messages,
        temperature=temperature, 
        max_tokens=max_tokens,
    )
    
    content = response.choices[0].message.content
    
    token_dict = {
'prompt_tokens':response['usage']['prompt_tokens'],
'completion_tokens':response['usage']['completion_tokens'],
'total_tokens':response['usage']['total_tokens'],
    }

    return content, token_dict
 
messages = [
{'role':'system', 
 'content':"""You are an assistant who responds\
 in the style of Dr Seuss."""},    
{'role':'user',
 'content':"""write me a very short poem \ 
 about a happy carrot"""},  
] 
response, token_dict = get_completion_and_token_count(messages)

这是我运行上面的代码后得到的结果。

TypeError: 'ChatCompletion' object is not subscriptable

error

我期待问题得到解决。我尝试卸载/安装openai,将型号更改为4,但不幸的是它不起作用

python artificial-intelligence
1个回答
0
投票

聊天完成对象(docs)的属性应作为属性引用,而不是使用 dict 语法。更换

token_dict = {
  'prompt_tokens':response['usage']['prompt_tokens'],
  'completion_tokens':response['usage']['completion_tokens'],
  'total_tokens':response['usage']['total_tokens'],
}

token_dict = {
  'prompt_tokens': response.usage.prompt_tokens,
  'completion_tokens': response.usage.completion_tokens,
  'total_tokens': response.usage.total_tokens,
}
© www.soinside.com 2019 - 2024. All rights reserved.