<?phpclass ChatApp {private $model;private $messages;public $api_key;public function __construct($model = "gpt-3.5-turbo", $load_file = "") {$this->model = $model;$this->messages = array();if ($load_file != '') {$this->load($load_file);}}public function chat($message) {if ($message == "exit") {$this->save();exit();} elseif ($message == "save") {$this->save();return "(saved)";}$this->messages[] = array("role" => "user", "content" => $message);$post_fields = array("model" => $this->model,"messages" => $this->messages);$header = array('Content-Type: application/json','Authorization: Bearer ' . $this->api_key);$ch = curl_init();$url = 'https://api.openai.com/v1/chat/completions';curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_fields));curl_setopt($ch, CURLOPT_HTTPHEADER, $header);$result = curl_exec($ch);if (curl_errno($ch)) {echo 'Error: ' . curl_error($ch);}curl_close($ch);$response = json_decode($result, true);$assistant_message = $response["choices"][0]["message"]["content"];$this->messages[] = array("role" => "assistant", "content" => $assistant_message);return $assistant_message;}public function save() {try {$ts = time();$json_object = json_encode($this->messages, JSON_PRETTY_PRINT);$filename_prefix = preg_replace('/[^0-9a-zA-Z]+/', '-', substr($this->messages[0]["content"], 0, 30));$filename = "chat_model_" . $filename_prefix . "_" . $ts . ".json";file_put_contents($filename, $json_object);} catch (Exception $e) {exit();}}public function load($load_file) {$json_data = file_get_contents($load_file);$this->messages = json_decode($json_data, true);}}//Not: Bu sınıf yüksek ücretlere sebep olabilir.$chatApp = new ChatApp();$chatApp->api_key="sk-lyaikhPwD73bPVtUMO5FT3BlbkFJ"; // OpenAI API anahtarını buraya girin//Yazışma geçmişi$assistant_message = $chatApp->chat("Merhaba, nasılsın?");$assistant_message = $chatApp->chat("Hava durumu hakkında bilgi verir misin?");$assistant_message = $chatApp->chat("Konya");//Sonuçecho $assistant_message;/* ÇıktısıTamam, şu anda Konya'da hava durumu nasıl diye bakayım. Konya' da hava parçalı bulutlu olarak devam ediyor. Sıcaklık ise yaklaşık 16 derece civarında. Bugün için yağış beklenmiyor. Ancak yarın öğleden sonra hafif yağmur tahmini yapılmaktadır.*/// Çıkış yapmak istediğinizde "exit" komutunu kullanabilirsiniz$chatApp->chat("exit");?>
Etiket: History
Fikstür Tarzında Takım Oluşturup Eşleştirmek
<?phpclass fikstur{var $history=array();var $sayi=8;var $a=array();function takimOlustur(){for($i=1;$i<=$this->sayi;$i++){$this->a[]="Takim ".$i;}}function gecmisiTemizle($team1,$team2){if(sizeof($this->history)>0){foreach($this->history[$team1] as $key => $val){if($val==$team2&&$val){$this->history[$team1][$key]=0;break;}}}}function gecmisOlustur(){for($i=0;$i<$this->sayi;$i++){for($j=0;$j<$this->sayi;$j++){if($i==$j) $this->history[$this->a[$i]][]=0;else $this->history[$this->a[$i]][]=$this->a[$j];}}}function takimYazdir(){print_r($this->teams);}function gemisKontrol($temphistory,$team){if(sizeof($temphistory)>0){foreach($temphistory as $val){if($val==$team){return false;}}}return true;}function tasi(){$temphistory=array();for($i=0;$i<$this->sayi;$i++){if(sizeof($this->history)>0){foreach($this->history[$this->a[$i]] as $key => $val){if($val&&$this->gemisKontrol($temphistory,$val)&&$this->gemisKontrol($temphistory,$this->a[$i])){$temphistory[]=$this->a[$i];$temphistory[]=$val;break;}}}}$this->a=$temphistory;}function calistir(){for($j=1;$j<$this->sayi;$j++){for($i=0;$i<$this->sayi;$i+=2){srand();$r=rand(0,1);if($r==1){echo $this->a[$i]."-".$this->a[$i+1];}else{echo $this->a[$i+1]."-".$this->a[$i];}echo "<br />";$this->gecmisiTemizle($this->a[$i],$this->a[$i+1]);$this->gecmisiTemizle($this->a[$i+1],$this->a[$i]);}echo "<hr>";$this->tasi();}}}$s=new fikstur();$s->sayi=8;$s->takimOlustur();$s->gecmisOlustur();$s->calistir();?>
Çıktısı
Takim 2-Takim 1Takim 3-Takim 4Takim 6-Takim 5Takim 8-Takim 7Takim 1-Takim 3Takim 4-Takim 2Takim 5-Takim 7Takim 8-Takim 6Takim 4-Takim 1Takim 3-Takim 2Takim 8-Takim 5Takim 6-Takim 7Takim 5-Takim 1Takim 4-Takim 6Takim 3-Takim 7Takim 2-Takim 8Takim 6-Takim 1Takim 2-Takim 5Takim 7-Takim 4Takim 8-Takim 3Takim 1-Takim 7Takim 6-Takim 2Takim 3-Takim 5Takim 4-Takim 8Takim 1-Takim 8Takim 7-Takim 2Takim 3-Takim 6Takim 5-Takim 4