1

I am trying out completions using insertions.

It seems that I am supposed to use a parameter called suffix: to inform where the end of the insert goes.

enter image description here

The payload to the endpoint: POST /v1/completions

{
  "model": "code-davinci-002",
  "prompt": "Write a JSON document for a person with first name, last name, email and phone number\n\n{\n",
  "suffix": "\n}",
  "temperature": 0,
  "max_tokens": 256,
  "top_p": 1,
  "frequency_penalty": 0,
  "presence_penalty": 0
}

I tried doing this from a ruby implementation of GPT3.

parameters
=> {
:model=>"code-davinci-001",
 :prompt=>"generate some JSON for a person with first and last name {",
 :max_tokens=>250,
 :temperature=>0,
 :top_p=>1,
 :frequency_penalty=>0,
 :presence_penalty=>0,
 :suffix=>"\n}"}
post(url: "/v1/completions", parameters: parameters)

I get an invalid argument error for suffix

{"error"=>{"message"=>"Unrecognized request argument supplied: suffix", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
David Cruwys
  • 6,262
  • 12
  • 45
  • 91

1 Answers1

1

I looked at the Payload from OpenAI vs the payload from the Ruby Library and saw the issue.

My ruby library was setting the model to code-davinci-001 while OpenAI was using code-davinci-002.

As soon as I manually altered the model: attribute in debug, the completion started working correctly.

{
  "id"=>"cmpl-5yJ8b01Cw26W6ZIHoRSOb71Dc4QvH",
  "object"=>"text_completion",
  "created"=>1665054929,
  "model"=>"code-davinci-002",
  "choices"=>
  [{"text"=>"\n    \"firstName\": \"John\",\n    \"lastName\": \"Smith\"",
    "index"=>0,
    "logprobs"=>nil,
    "finish_reason"=>"stop"}],
  "usage"=>{"prompt_tokens"=>14, "completion_tokens"=>19, 
 "total_tokens"=>33}
}
David Cruwys
  • 6,262
  • 12
  • 45
  • 91