ChatGPT’yi (Chat Generative-Pre-Trained Transformer) çevreleyen heyecan çılgınlığını kaçırmamış olmayacaksınız. Görüntüler oluşturabilir, kodlar, şarkılar, şiirler yazabilir ve büyük ya da küçük sorunlarımızı çözmeye çalışabilir. Star Trek’in Kobayashi Maru simülasyonunu nasıl yeneceğini bilemeyebilir ama Python ve Bash kodunu kolaylıkla yazabilir. Bir itişte, yazmak için de kullanılabilir G Kodu için en iyi 3D yazıcılar henüz üzerimizde denememize rağmen Creality Ender 2 Pro.
Tipik olarak ChatGPT ile tarayıcı aracılığıyla etkileşim kurarız, ancak bu nasıl yapılır, mütevazi kullanıcılarımızı birbirine bağlayacak özel bir Python kitaplığı kullanacağız. Ahududu Pi güçlü yapay zekaya ve bize neredeyse her soruyu yanıtlamamız için bir araç sağlayın. Bu proje Raspberry Pi’ye özel değildir; Windows, macOS ve Linux PC’lerde de kullanılabilir. Üzerinde Python çalıştırabilirseniz, bu projenin de işe yarama olasılığı yüksektir.
Bir Raspberry Pi kullanıyorsanız, bu projeyle hemen hemen her modeli kullanabilirsiniz, çünkü biz sadece bir İnternet bağlantısı üzerinden talepte bulunuyoruz. Ancak genel olarak en sorunsuz performans için bir Ahududu Pi 4 veya Raspberry Pi 3B+.
Raspberry Pi için ChatGPT API Anahtarını Ayarlama
ChatGPT’yi Raspberry Pi ve Python’umuzla kullanabilmemiz için önce bir API anahtarı oluşturmamız gerekiyor. Bu anahtar, kodumuzun OpenAI hesabımıza bağlanmasını ve sorguları yanıtlamak, kod yazmak, şiir yazmak veya bir sonraki hit şarkıyı yaratmak için AI kullanmasını sağlayacaktır.
1. OpenAI hesabınıza giriş yapın.
2. Menüye tıklayın ve seçin API Anahtarlarını Görüntüleyin.
3. Bir API anahtarı oluşturmak için Yeni gizli anahtar oluştur’a tıklayın. Bu anahtarı güvenli bir yere kopyalayıp yapıştırdığınızdan emin olun, bir daha gösterilmeyecektir. API anahtarlarınızı asla paylaşmayın, bunlar hesabınıza özeldir, oluşacak masraflar hesabınızdan karşılanacaktır.
ChatGPT Python API’sini Raspberry Pi’ye Yükleme
API anahtarımız elimizdeyken artık Raspberry Pi’mizi ve özellikle Python’u API’yi openAI Python kitaplığı aracılığıyla kullanacak şekilde yapılandırabiliriz.
1. Bir Terminal açın ve Raspberry Pi’nizdeki yazılımı güncelleyin. Bu komut iki yönlüdür. İlk önce, Pi’mizdeki yazılım havuzlarının listesinin güncel olup olmadığını kontrol ederek bir güncelleme çalıştırır. Değilse, en son ayrıntıları indirir. “&&”, ilk komut (güncelleme) temiz çalışırsa, yazılımı yükselteceğimiz ikinci komutun başlayacağı anlamına gelir. “-y” bayrağı, kurulumu kullanıcı girişi olmadan kabul etmek için kullanılır.
sudo apt update && sudo apt upgrade -y
2. pip paket yöneticisini kullanarak openai Python kitaplığını kurun.
pip3 install openai
3. Ana dizininizde gizli olan bashrc dosyasını açın. Bu dosya, Raspberry Pi OS ve Python’un yürütülebilir / yapılandırma dosyalarını arayabileceği bir yol, bir yol belirlememiz gereken yerdir.
nano ~/.bashrc
4. Klavyeyi kullanarak dosyanın en altına gidin ve bu satırı ekleyin.
export PATH="$HOME/.local/bin:$PATH"
5. CTRL + X, ardından Y ve Enter tuşlarına basarak dosyayı kaydedin.
6. Yapılandırmayı tamamlamak için bashrc yapılandırmasını yeniden yükleyin. Ardından terminali kapatın.
source ~/.bashrc
Raspberry Pi için ChatGPT Chatbot Oluşturma
Chatbot’umuzun amacı, kullanıcı tarafından belirlenen sorulara yanıt vermektir. Yanıt metin biçiminde olabileceği sürece, bu proje kodu çalışacaktır. Kullanıcı işini bitirdiğinde, çıkmak için bir kelime yazabilir veya kodu durdurmak için CTRL+C tuşlarına basabilir. Onu gerçekler ve önemsiz sorularla test ettik, ardından Python kodu, Bash ve bir 3B yazıcı için küçük bir G-Kodu yazmasını istedik.
1. Thonny’yi Başlatyerleşik bir Python düzenleyicisi. Raspberry Pi menüsünde, Programlama >> Thonny altında bulabilirsiniz.
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ınbu 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.
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")