1<?php 2 3namespace dokuwiki\plugin\aichat\Model\OpenAI; 4 5 6class ChatModel extends AbstractOpenAIModel 7{ 8 /** @inheritdoc */ 9 public function getAnswer(array $messages): string 10 { 11 $data = [ 12 'messages' => $messages, 13 'model' => $this->getModelName(), 14 'max_completion_tokens' => null, 15 'stream' => false, 16 'n' => 1, // number of completions 17 ]; 18 19 // resoning models o1, o1-mini, o3-mini do not support setting temperature 20 // for all others we want a low temperature to get more coherent answers 21 if(!str_starts_with($this->getModelName(), 'o')) { 22 $data['temperature'] = 0.0; 23 } 24 25 $response = $this->request('chat/completions', $data); 26 return $response['choices'][0]['message']['content']; 27 } 28} 29