(İmaj kredisi: Tom’un Donanımı)
2. Openai kitaplığını içe aktarın. Bu, Python kodumuzun çevrimiçi olmasını ve ChatGPT’yi etkinleştirir.
import openai
3. Bir nesne oluşturun, model_engine ve orada tercih ettiğiniz modeli saklayın. davinci-003 en yetenekli olanıdır, ancak (yetenek sırasına göre) “text-curie-001”, “text-babbage-001” ve “text-ada-001” de kullanabiliriz. Ada modeli en düşük token maliyetine sahiptir.
model_engine = "text-davinci-003"
4. Bir nesne oluşturun, open.api_key ve API anahtarınızı saklayın. API anahtarınızı tırnak işaretleri arasına yapıştırın.
openai.api_key = "YOUR API KEY HERE”
5. Kullanıcıdan argüman olarak sorguyu (soruyu) alan bir işlev, GPT() oluşturun. Bu, işlevi herhangi bir soru için yeniden kullanabileceğimiz anlamına gelir.
def GPT(query):
6. Sorgumuzun ayrıntılarını ChatGPT’ye iletecek bir yanıt nesnesi oluşturun. Soruyu sormak için seçtiğimiz modeli ve sorguyu kullanır. Maksimum belirteç harcamasını 1024 olarak belirledik, ancak gerçekte, bunun ayarlanabilmesi için çok daha az harcayacağız. “Sıcaklık”, yanıtların ne kadar yaratıcı olabileceğini kontrol eder. Değer ne kadar yüksek olursa, örneğin 0,9, model o kadar yaratıcı olmaya çalışacaktır. 0.5, yaratıcı ve olgusalın iyi bir karışımıdır.
response = openai.Completion.create(
engine=model_engine,
prompt=query,
max_tokens=1024,
temperature=0.5,
)
7. Yanıt metnini ve kullanılan belirteç sayısını çıkararak ChatGPT’den verileri döndürün. Döndürülen veriler bir sözlük / JSON biçimindedir, bu nedenle anahtarları kullanarak doğru verileri özellikle hedeflememiz gerekir. Bu tuşlar ilişkili değerleri döndürür.
return str.strip(response['choices'][0]['text']), response['usage']['total_tokens']
8. Bir demet oluşturun ve sohbetten çıkmak için kullanılabilecek dizelerin bir listesini depolamak için kullanın. Demetler değişmezdir, yani oluşturulabilir ve yok edilebilirler, ancak çalışan kod tarafından güncellenemezler. Mükemmel “kur ve unut” yapılandırmaları yaparlar.
exit_words = ("q","Q","quit","QUIT","EXIT")
9. Python’a kodumuzu denemesi ve çalıştırması talimatını vermek için try ve ardından while True: kullanın ve bunu sonsuza kadar yapın.
try:
while True:
10. Kullanıcıya bir talimat yazdırın bu durumda sohbetten nasıl çıkılacağı.
print("Type q, Q, quit, QUIT or EXIT and press Enter to end the chat session")
11. Özel bir komut istemi kullanarak kullanıcı sorgusunu yakalayın ve sorgu adı verilen bir nesnede saklayın.
query = input("What is your question?> ")
12. Exit_words’ten herhangi birinin yalnızca sorguda mevcut olup olmadığını kontrol etmek için koşullu bir test kullanın. Bu kelimeleri bir sorguda kullanabiliriz, ancak bunlar tek kelime ise sohbet sona erecektir.
if query in exit_words:
13. Öyle ayarlayın ki, exit_words mevcutsa, kod “SOHBETİ SONLANDIR” yazacaktır ve sonra kodu durdurmak için break kullanın.
print("ENDING CHAT")
break
14. Başka bir koşul oluşturun. Hiçbir exit_words bulunmazsa bu koşul her zaman çalışacaktır.
else:
15. ChatGPT sorgusunu çalıştırın ve çıktıyı iki nesneye kaydedin, res (yanıt) ve kullanım (kullanılan belirteçler).
(res, usage) = GPT(query)
16. ChatGPT yanıtını Python kabuğuna yazdırın.
print(res)
17. ChatGPT metni arasında bir engel oluşturmak için arka arkaya 20 = yazdırın ve ardından kullanılan belirteç sayısını yazdırın.
print("="*20)
print("You have used %s tokens" % usage)
print("="*20)
18. Kullanıcı CTRL+C’ye basarsa etkinleşecek bir istisna işleyici oluşturun. Kod çıkmadan önce Python kabuğuna bir çıkış mesajı yazdıracaktır.
except KeyboardInterrupt:
print("\nExiting ChatGPT")
19. Kodu ChatGPT-Chatbot.py olarak kaydedin ve başlatmak için Çalıştır’ı tıklayın. Sorularınızı sohbet robotuna sorun ve işiniz bittiğinde, çıkmak için çıkış_kelimelerinden birini yazın veya CTRL+C tuşlarına basın.
(İmaj kredisi: Tom’un Donanımı)
Eksiksiz Kod Listesi
import openai
model_engine = "text-davinci-003"
openai.api_key = "YOUR API KEY HERE"
def GPT(query):
response = openai.Completion.create(
engine=model_engine,
prompt=query,
max_tokens=1024,
temperature=0.5,
)
return str.strip(response['choices'][0]['text']), response['usage']['total_tokens']
exit_words = ("q","Q","quit","QUIT","EXIT")
try:
while True:
print("Type q, Q, quit, QUIT or EXIT and press Enter to end the chat session")
query = input("What is your question?> ")
if query in exit_words:
print("ENDING CHAT")
break
else:
(res, usage) = GPT(query)
print(res)
print("="*20)
print("You have used %s tokens" % usage)
print("="*20)
except KeyboardInterrupt:
print("\nExiting ChatGPT")