<?php class 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
<?php class 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 1 Takim 3-Takim 4 Takim 6-Takim 5 Takim 8-Takim 7 Takim 1-Takim 3 Takim 4-Takim 2 Takim 5-Takim 7 Takim 8-Takim 6 Takim 4-Takim 1 Takim 3-Takim 2 Takim 8-Takim 5 Takim 6-Takim 7 Takim 5-Takim 1 Takim 4-Takim 6 Takim 3-Takim 7 Takim 2-Takim 8 Takim 6-Takim 1 Takim 2-Takim 5 Takim 7-Takim 4 Takim 8-Takim 3 Takim 1-Takim 7 Takim 6-Takim 2 Takim 3-Takim 5 Takim 4-Takim 8 Takim 1-Takim 8 Takim 7-Takim 2 Takim 3-Takim 6 Takim 5-Takim 4