1. Proje Gereksinimleri
Öncelikle, projemiz için aşağıdaki araç ve kütüphanelere ihtiyacımız olacak:
- Python 3.x (Son sürüm önerilir)
- Flask (Web arayüzü için)
- OpenAI API (Chatbot'un yapay zeka motoru için)
- Requests (API istekleri için)
Gerekli kütüphaneleri yüklemek için aşağıdaki komutu çalıştırabilirsiniz:
pip install flask openai requests
2. OpenAI API Anahtarı Alımı
OpenAI'nin sunduğu GPT-4 veya GPT-3.5 modellerini kullanarak chatbot geliştirmek için OpenAI Platformu üzerinden bir API anahtarı edinmelisiniz.
API anahtarınızı aldıktan sonra, güvenli bir şekilde saklamalı ve kod içinde doğrudan paylaşmamalısınız. Bunun yerine, .env dosyası veya ortam değişkenleri kullanabilirsiniz.
3. Flask ile API Sunucusu Oluşturma
Şimdi Flask kullanarak bir web sunucusu oluşturacağız. Bu sunucu, istemciden gelen kullanıcı girdisini OpenAI API'ye iletecek ve yanıtları döndürecek.
app.py
Dosyası:
from flask import Flask, request, jsonify
import openai
import os
env_api_key = os.getenv("OPENAI_API_KEY")
openai.api_key = env_api_key
app = Flask(__name__)
@app.route("/chat", methods=["POST"])
def chat():
data = request.get_json()
user_message = data.get("message")
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": user_message}]
)
reply = response["choices"][0]["message"]["content"]
return jsonify({"reply": reply})
if __name__ == "__main__":
app.run(debug=True)
Bu kod, /chat
endpoint'ine gelen POST isteklerini alır ve OpenAI API’ye ileterek chatbot yanıtını döndürür.
4. Basit Bir HTML ve JavaScript Arayüzü
Flask API'mizi bir frontend ile test etmek için basit bir HTML ve JavaScript sayfası oluşturabiliriz.
index.html
Dosyası:
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Türkçe Chatbot</title>
</head>
<body>
<h2>Türkçe Chatbot</h2>
<input type="text" id="userInput" placeholder="Mesajınızı girin...">
<button onclick="sendMessage()">Gönder</button>
<p id="response"></p>
<script>
async function sendMessage() {
const message = document.getElementById("userInput").value;
const response = await fetch("/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ message })
});
const data = await response.json();
document.getElementById("response").innerText = data.reply;
}
</script>
</body>
</html>
Bu sayfa, Flask sunucumuza bağlanarak kullanıcı mesajlarını alır ve yanıtları ekrana yazdırır.
5. Uygulamayı Yayınlama
Uygulamanızı yerel olarak çalıştırmak için terminalde şu komutu çalıştırabilirsiniz:
python app.py
Daha geniş bir kitleye sunmak için Heroku, Vercel veya Render gibi platformları kullanarak Flask uygulamanızı deploy edebilirsiniz.
Sonuç
Bu yazıda, Python ile OpenAI API ve Flask kullanarak basit bir Türkçe chatbot geliştirdik. İleri seviyeye geçmek için:
- Veritabanı entegrasyonu ekleyerek chatbot'un hafızasını geliştirebilirsiniz.
- Kullanıcı kimlik doğrulama ekleyerek kişiselleştirilmiş sohbet deneyimi sunabilirsiniz.
- Sesli yanıt ve konuşma tanıma özellikleri ekleyerek chatbot'unuzu daha interaktif hale getirebilirsiniz.
Bu adımları takip ederek siz de kendi yapay zeka destekli chatbot'unuzu geliştirebilirsiniz!