ChatGPT API ile devam eden sohbet nasıl yaparım.
Şu anda bir sisteme chatgpt yi entegre ediyorum.
Fakat takıldığım nokta şu.
Sitesinde olduğu gibi bir sohbeti açıp ona devam etmem lazım.
Şu anda her seferinde yeni bir sohbet misali durum var ortada.
Bunu yapabileceğim bir fonksiyonu var mı acaba ?
Yoksa sohbeti sql de tutup her seferinde tüm sohbeti de mi post etmem lazım ?
Bu şekilde yaparsam maliyeti yüksek bir durum ortaya çıkacak benim adıma.
Bu konuda bilgisi olan arkadaşlar bir yol gösterirse sevinirim.
Şimdiden ilgilenen zaman ayıran herkese teşekkür ederim.
Kullandığım dil PHP bu arada.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Hocam evet mantıklı bir şey söylüyorsunuz ama chatgpt'nin internet erişimi yok bildiğim kadarıyla o yüzden bir url verip oradan mesajları oku demek çok mümkün olacak bir durum değil.
ChatGPT API'sini hiç kullanmadım. Yalnızca fikir vermek için cevap veriyorum.
İnternette yabancı kaynaklardan, özellikle de Open AI'ın kendi forumlarından araştırma yaptım.
Anlaşılan o ki, API geçmiş konuşmaları hatırlamak için bir yol sunmuyor. Bu durumda da bahsettiğin gibi geçmiş konuşmayı hafızada tutup yeni konuşma başladığında önce eski konuşmayı ona göndermek gerektiği söylenmiş. Ama elbette söylediğin gibi bu da her konuşmanın başında bir sürü token göndermek anlamına geliyor ve maliyeti çok artırıyor.
İşe yarar mı bilmiyorum ama benim fikrim şu ki,
Geçmiş konuşmaları kendi sisteminizde tutun. (mesela bir veritabanı veya json dosyaları olarak)
Daha sonra bu verilere erişebilecek bir kanal açın. Mesela chat yapılan web sitenizde history.php adlı bir dosya oluşturup buna GET isteği ile ulaşılabilmesini sağlayın.
history.php, GET ile yapılan isteklerden historytoken ve id adlı 2 query string parametresi alsın. Burada historytoken parametresi güvenlik için, id parametresi de hangi kullanıcıyla yapılan görüşmelerin hatırlanacağını belirtmek için kullanılacak.
Daha sonra ChatGPT'ye yeni bir konuşmaya başlamadan önce, sizin sunucunuzdaki history.php sayfasına GET isteği atmasını söyleyin.
Mesela bir kullanıcı konuşmaya başladığında siz ChatGPT'ye ilk mesaj olarak şunu verin:
"Bu kullanıcıyla ilgili konuşmalara, xxx linkinden alacağın geçmiş konuşmalara göre devam et."
gibi bir mesaj...
Burada xxx ifadesi, sizin history.php sayfanızın url'si. Örneğin:
https://prototurk.com/history.php?historytoken=yyy&userid=zzz
yyy, sizin tarafınızdan oluşturlan ve history.php tarafından doğrulanabilecek bir şifre.
zzz ise konuşmaya başlayacak kullanıcıya atanmış bir id değeri olacak. İlk kez konuşuyor olsa bile her kullanıcıya benzersiz bir id atayın.
history.php dosyası öncelikle historytoken parametresinden şifreyi doğrulasın. Sonra id parametresinden gelen değer için daha önce bir konuşma verisi var mı diye kontrol edin. Eğer yoksa boş dizi dönebilirsiniz.
Eğer id'nin karşılığı varsa bu değerleri gönderin. Mesela bir geçmiş konuşma json örneği:
[
{"user": "Merhaba, ben Eren", "anwser": "Tanıştığıma memnun oldum Eren, sana nasıl yardımcı olabilirim?"},
{"user": "Sen kimsin?", "answer": "Ben bir yapay zeka sohbet botuyum."}
]
Böylece konuşmaya başlarken ChatGPT'ye tek cümlelik bir ifade göndermiş olacaksınız ve o sizin siteniz üzerinden yüzlerce mesajlık konuşmaları inceleyip hafızasını tazelemiş olacak.
Denemek lazım...