CEYD-A’ ya GPT veya Farklı Bir Sistem Entegre Etmek
GPT-3 türevli OpenAI Text-Davinci kullanan CEYD-A örneği. CEYD-A bir geliştirme ortamı olduğu için ekleyeceğiniz bir kurgu ile herhangi bir sisteme rahatlıkla entegre edilebilir.
oncommandfound, oncommandpatternnotfound ve oncommandnotfound olayları CEYD-A’nın vereceği cevap aşamasında çağrılan olaylardır ve bunlar değiştirildiklerinde istediğiniz sistem ile entegre olmuş bir yapı ile karşılaşırsınız. Kısacası dilediğiniz yapıyı entegre etmiş olursunuz. Yapılması gereken sadece https://kodla.ceyd-a.com sitesine girip hesabınız ile giriş yapmak ve kendi olaylarınızı değiştirmek.
Text-davinci ve Chatgpt, OpenAI tarafından eğitilmiş büyük dil modelleridir. Ancak, eğitim verileri, mimarileri ve yetenekleri açısından iki model arasında bazı farklılıklar vardır.
Text-davinci, kitaplar, makaleler ve web siteleri de dahil olmak üzere çeşitli kaynaklardan alınan geniş bir metin verisi külliyatı üzerinde eğitilmiş GPT-3 dil modelinin bir çeşididir. Text-davinci, insan benzeri metin oluşturmak için tasarlanmıştır ve dil çevirisi, metin özetleme ve metin oluşturma gibi çok çeşitli doğal dil işleme görevleri için kullanılabilir.
Öte yandan Chatgpt, konuşma verileri üzerinde özel olarak eğitilmiş GPT-3 dil modelinin bir çeşididir. Bu, chatgpt’nin insan konuşmasının nüanslarına ve özelliklerine daha fazla uyum sağladığı ve belirli bir konuşmaya uygun yanıtlar üretmede daha iyi olduğu anlamına gelir. Chatgpt, chatbot geliştirme, diyalog oluşturma ve konuşma özetleme gibi görevler için kullanılabilir.
Genel olarak, text-davinci ve chatgpt arasındaki temel fark, text-davinci’nin çok çeşitli metin verileri üzerinde eğitilmiş genel amaçlı bir dil modeli olması, chatgpt’nin ise konuşma verileri üzerinde eğitilmiş özel bir dil modeli olmasıdır. Bu, text-davinci’nin insan benzeri metinler oluşturmayı içeren görevler için daha uygun olduğu, chatgpt’nin ise konuşmalara yanıtlar oluşturmayı içeren görevler için daha uygun olduğu anlamına gelir. (i)
Peki nasıl entegre edeceğiz?
Yapılması gereken bu 3 olayın içeriğini https://kodla.ceyd-a.com sitesine girerek değiştirmek. CEYD-A halen Türkçe cevaplarda zengin içeriğe sahip olduğu için siz soruları İngilizce sorduğunuzda da GPT-3 yapısını kullanarak cevap verebilmesi güzel bir fikir aslında. Aşağıdaki örneklerde eğer siz ona beni ingilizce dinle dediğinizde chatgpt3 yapısı ile entegre olmasını istediğiniz kurgu kodları bulunmakta. oncommandfound kurgusunun 2.parametresi sizin söylediğiniz söz. Bu parametreyi NLP hizmeti veren servisinize aktardığınızda dönen $result değişkenine aktardığınız cevabı CEYD-A’ya söyletebiliyorsunuz. cmdspeaklang ile konuşmasını sağlıyorsunuz buradaki ukenglishfemale parametresi hangi dilde konuşacağını belirtiyor. İsterseniz farklı dillerde de kullanabilirsiniz. Siz beni ingilizce dinle dediğinizde $staListenLang değişkeninin içeriği en-US ile değişir. Burada o değeri kontrol ediyoruz. Eğer değişken içeriği farklı ise, yani normal koşullarda isek (beni ingilizce dinle demediğiniz durumlarda) else :: kısmında sadece {!RET $2!} çalışacağına dikkat ediniz. $2 2.parametre, başka deyişle sizin söylediğiniz söz olduğu için {!RET <sizin söylediğiniz söz>!} çalışacak yani sistem varsayılan yapıda çalışacaktır.
1 2 3 4 5 6 7 8 9 10 |
KURGU KOMUT KODU SORU: oncommandfound,104 SABLON: oncommandfound ({PAR1}),({PAR2}) CEVAP: {!IF $staListenLang==en-US?? {!SET result={!RET cmdloadurl https://xxx.xxx.xxx/chatgpt3.php?s={!RET cmdreplace ' ','%20','$2'!}!}!} {!RET cmdspeaklang ukenglishfemale,$result!} ::{!RET $2!} !} |
Diğer 2 olay kurguları aşağıdaki gibidir. $staListenLang değişkeni en-US ise aynı işlemleri yapabilmesi için ilk kurgumuza yönlendiriyoruz.
1 2 3 4 5 6 7 8 9 |
KURGU KOMUT KODU SORU: oncommandnotfound,1000 SABLON: oncommandnotfound ({PAR1}) CEVAP: {!IF $staListenLang==en-US?? {!RET oncommandfound ,{PAR1}!!} ::!} |
1 2 3 4 5 6 7 |
KURGU KOMUT KODU SORU: oncommandpatternnotfound,1004 CEVAP: {!IF $staListenLang==en-US?? {!RET oncommandfound ,{!GET questionstring!}!} :: !} |
Kurguları CEYD dili ile yazabiliyoruz. Detaylı bilgilere CEYD-A’nın resmi sitesinden(ii) ulaşabilirsiniz.
OpenAI API’ lerine bağlanalım.
Aşağıdaki kod PHP ile Open AI API sine nasıl bağlanabileceğini göstermektedir. Bu kodu PHP destekli kendi web sunucunuzda oluşturun. $OPENAI_API_KEY alanına kendi OpenAI anahtarınızı yerleştirin. Her yapılan isteğin Open AI sistemi politikalarına göre ücretlendirileceğini de göz önüne almanız gerekmektedir.
Kod ismi olarak yukarıdaki CEYD-A kurgusuna uyumlu olması açısından ismini chatgpt3.php olarak seçebilirsiniz.
Hatırlayacağınız üzere yukarıdaki kodda bahsi geçen php kodu aşağıdaki gibi yazılmıştı. xxx.xxx.xxx alanını sizin sunucunuzun IP adresi veya alan adı olarak değiştirebilirsiniz.
{!SET result={!RET cmdloadurl https://xxx.xxx.xxx/chatgpt3.php?s={!RET cmdreplace ‘ ‘,’%20′,’$2’!}!}!}
Anahtarınızı https://platform.openai.com/account/api-keys sayfasından oluşturabilirsiniz. Bu yazıyı hazırladığım sırada belli bir kotaya kadar isteklerin ücretsiz olduğunu da hatırlatmak isterim. Ama yine de https://platform.openai.com/account/billing/overview sayfasından ücretlendirme bilgilerine göz atmanızı tavsiye ederim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<?php function openAI(){ $OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; $user_id="1"; // users id optional $prompt=$_GET["s"]; $temperature=0.5; // 1 adds complete randomness 0 no randomness 0.0 $max_tokens=120; $data = array('model'=>'text-davinci-002', 'prompt'=>$prompt, 'temperature'=>$temperature, 'max_tokens'=>$max_tokens, 'top_p'=>1.0, 'stream'=>TRUE,// stream back response 'frequency_penalty'=>0.0, 'presence_penalty'=>0.0, 'user' => $user_id); $post_json= json_encode($data); $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_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_json); $headers = array(); $headers[] = 'Content-Type: application/json'; // $headers[] = 'Content-Type: text/event-stream'; $headers[] = "Authorization: Bearer $OPENAI_API_KEY"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); //$gpt_response = json_decode($result); //return $gpt_response; $array = preg_split("/\r\n|\n|\r/", $result); $str=""; for($i=0;$i<sizeof($array);$i++) { $gpt_response = json_decode(substr($array[$i],5)); $str .= $gpt_response->choices[0]->text; } return( $str); curl_close($ch); } echo(openAI()); ?> |
Kaynak:
(i) https://mathsgee.com/47568/knowledge-perspective-difference-between-davinci-chatgpt