PHP Laravel ve OpenAI API'sini kullanan bu başlangıç seti.
ChatGPT ( chat.openai.com/ ) gibi, bu başlangıç kitiyle bir iletişim kutusunda sohbet edebilirsiniz. Bu, GPT-3 motoruna bağlam sağlamak için bulduğum bir geçici çözüm.
Teknik Yığın
Bu başlangıç şablonu için aşağıdaki teknolojileri kullanıyorum:- En son Laravel v9.x paketi.
- En son openai-php/laravel paketi.
- Atalet JS v1.0
- En son Tailwindcss v3.x
Bu başlangıç kitini geliştirirken kodu ve gerekli tüm bileşenleri GPT klasörü altında izole ettim. Bu, her şeyi app\Gpt klasörü altında bulabileceğiniz arka uç kodu için geçerlidir. Veya Resources/js/Pages/Gpt.vue sayfasını ve Resources/js/Components/Gpt klasörünü eklediğim ön uç kodu. Son olarak testler için başlangıç kitinin işlevselliğini test etmek amacıyla testler/Feature/Gpt klasörünü ekledim.
Bu uygulamayı çalıştırmak için kendi OpenAI API Anahtarınızı alın ve .env dosyasına yerleştirin:
OPENAI_API_KEY=
Ardından, aşağıdaki komutu kullanarak arka uç bileşenlerini yükleyin:
composer install
Ardından son olarak uygulamayı çalıştırmak için aşağıdaki iki komutu çalıştırın:
npm install && run dev
Başlangıç kiti ayrıca çalıştırmayı da dedestekler. Resmi Laravel Sail paketini kullanarak bir Docker konteyneri üzerinden. Bu nedenle, aşağıdaki komutlarla docker sail'i kullanarak çalıştırabilirsiniz:
Kod:
./vendor/bin/sail up -d
./vendor/bin/sail npm
./vendor/bin/sail npm run dev
Npm yerine iplik de kullanabilirsiniz. Daha fazla bilgi için Laravel Sail'in resmi belgelerine bakın.
İşleyiş
GPT Dizini sayfası ilk kez yüklendiğinde, kaydedilen tüm modelleri almak için OpenAI API'sine bir GET isteği gerçekleştirir. Bu modeller, kullanıcının bir OpenAI modeli veya motoru seçmesine olanak sağlamak için başlangıç kitinin sol kenar çubuğunda görünür.GPT Index sayfasında varsayılan modeli text-davinci-003 olarak ayarladım. Bu şimdiye kadarki en popüler modeldir ve onu değiştirmekte özgürsünüz.
Kullanıcı ayrıca tamamlamaların Sıcaklığı ile de oynayabilir. Sıcaklığın değeri ne kadar düşük olursa cevap o kadar doğru ve anlaşılır olacaktır.
Son olarak, kullanıcı Maksimum Uzunluğu veya belirteçleri genellikle 0 ile 4000 arasında değiştirebilir.
Kullanıcı yeni bir istem girdiğinde, sunucuya yeni bir POST isteği gönderilir ve aşağıdaki alanlar üzerinden geçer:
- Model adı
- Sıcaklık değeri
- Maksimum uzunluk jeton değeri
- İstemi metni.
Yanıt metni daha sonra kullanıcıya OpenAI API'sinden gelen bir yanıt olarak görüntülenir.
Bağlamı Korumak
OpenAI API'sinde fark ettiğim bir şey, bir istemden diğerine bağlamın korunmasıydı.Resmi chat.openai.com/ web sitesini denerseniz içeriğin korunduğunu fark edersiniz. Örneğin, chatbottan Karides içeren beş tarifi listelemesini istiyorsunuz. Bir sonraki komut isteminde chatbottan ikinci seçeneğin içeriğini listelemesini istersiniz. İkinci seçenekte tarifin adını belirtmediğinize dikkat edin. Bunun nedeni, ChatGPT sohbet robotunun bağlamı koruması ve önceki isteminizi veya tartışmanızı hatırlamasıdır.
Bu nedenle bu özellik, OpenAI API'sinden ziyade ChatGPT sohbet robotunun bir parçasıdır.
Bu başlangıç kitindeki bağlamı modele aktarmanın bir yolunu buldum. Dolayısıyla, bu başlangıç kitini kullanarak yönetilen bir içeriğe sahip olacaksınız. Model, gönderdiğiniz her yeni istem için orijinal tartışmayı hatırlayacaktır. Ne yaptığımı açığa çıkarmayacağım; Bu başlangıç kitinin kopyasını indirdiğinizde bunu görebilirsiniz