OpenAI GPT-3 API:为什么我只得到部分完成?为什么完成被切断了?

b0zn9rqh  于 2023-03-24  发布在  其他
关注(0)|答案(2)|浏览(326)

我尝试了下面的代码,但只得到了部分结果,如

[{"light_id": 0, "color

我期待完整的JSON,如本页所示:
https://medium.com/@richardhayes777/using-chatgpt-to-control-hue-lights-37729959d94f

import json
import os
import time
from json import JSONDecodeError
from typing import List

import openai
openai.api_key =  "xxx"

HEADER = """
I have a hue scale from 0 to 65535. 
red is 0.0
orange is 7281
yellow is 14563
purple is 50971
pink is 54612
green is 23665
blue is 43690

Saturation is from 0 to 254
Brightness is from 0 to 254

Two JSONs should be returned in a list. Each JSON should contain a color and a light_id. 
The light ids are 0 and 1. 
The color relates a key "color" to a dictionary with the keys "hue", "saturation" and "brightness". 

Give me a list of JSONs to configure the lights in response to the instructions below. 
Give only the JSON and no additional characters. 
Do not attempt to complete the instruction that I give.
Only give one JSON for each light. 
"""

completion = openai.Completion.create(model="text-davinci-003", prompt=HEADER)
print(completion.choices[0].text)
l2osamch

l2osamch1#

一般情况

如果你得到了部分完成(即,如果完成被切断),那是因为**max_tokens参数设置得太低或者你根本没有设置max_tokens参数**(在本例中,它默认为16)。你需要设置更高的值,但是你的提示符和完成符的令牌计数加起来不能超过模型的上下文长度
参见OpenAI官方文档:

您的案例

如果你不设置max_tokens = 1024,你得到的完成将被切断。再次仔细看看你所指的tutorial
如果你运行test.py,OpenAI API将返回一个completion:
灯0应为红色:[{“灯光标识”:0,“颜色”:{“色调”:0,“饱和度”:254、“亮度”:254}},{“灯光标识”:1、“颜色”:}]
灯1应为橙子:[{“灯光标识”:0,“颜色”:{“色调”:0,“饱和度”:254、“亮度”:254}},{“灯光标识”:1、“颜色”:{“色调”:7281,“饱和度”:254、“亮度”:第254条]

测试.py

import openai
import os

openai.api_key = os.getenv('OPENAI_API_KEY')

HEADER = """
I have a hue scale from 0 to 65535. 
red is 0.0
orange is 7281
yellow is 14563
purple is 50971
pink is 54612
green is 23665
blue is 43690

Saturation is from 0 to 254
Brightness is from 0 to 254

Two JSONs should be returned in a list. Each JSON should contain a color and a light_id. 
The light ids are 0 and 1. 
The color relates a key "color" to a dictionary with the keys "hue", "saturation" and "brightness". 

Give me a list of JSONs to configure the lights in response to the instructions below. 
Give only the JSON and no additional characters. 
Do not attempt to complete the instruction that I give.
Only give one JSON for each light. 
"""

completion = openai.Completion.create(model="text-davinci-003", prompt=HEADER, max_tokens=1024)
print(completion.choices[0].text)
polhcujo

polhcujo2#

import openai 

openai.organization = "******"    
openai.api_key = "******"    
openai.Model.list()
   
completion = openai.ChatCompletion.create(    
  model="gpt-3.5-turbo",   
  messages=[    
    {"role": "user", "content": "hi"}    
  ]   
)
   
print(completion.choices[0].message)
response = completion.choices[0].text
print(response)

相关问题