API OpenAI ChatGPT (gpt-3.5-turbo): как получить доступ к содержимому сообщения?

При получении ответа от OpenAItext-davinci-003модели я смог извлечь текст из ответа с помощью следующего PHP-кода:


Вот код ответа да Винчи:

      {
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

Сейчас я пытаюсь изменить свой код для работы с недавно выпущеннымgpt-3.5-turboмодель, которая возвращает ответ немного по-другому:

      {
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

Мой вопрос в том, как я могу изменить код:

      $response = $response->choices[0]->text;

... чтобы он мог получить содержимое ответного сообщения?

1 ответ

Это то, что сработало для меня.

      $data = array(
  "prompt" => "Is Climate Change worrisome?", //Your question or request
  "temperature" => 0.5,
  "max_tokens" => 500,
  "model" => "text-davinci-003",
  "top_p" => 1,
  "frequency_penalty" => 0,
  "presence_penalty" => 0
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
  'https://api.openai.com/v1/completions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: Bearer '.$OPENAI_API_KEY;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
if (curl_errno($ch)) {
  echo 'Error:' . curl_error($ch);
}
curl_close($ch);

$response = json_decode($response);
echo $response->choices[0]->text;
Другие вопросы по тегам