How-To Guides

Zeki bir AI Sohbet Botu Oluşturma: LangChain ile Geliştirici Rehberi

Yapay zekanın hızla evrilen dünyasında, özel bir sohbet botu oluşturmak artık teknoloji devlerinin ayrıcalığı olmaktan çıktı. Büyük Dil Modelleri (LLM'ler) ve LangChain gibi modern orkestrasyon çerçevelerinin ortaya çıkmasıyla geliştiriciler artık gelişmiş, bağlam duyarlı konuşma ajanları inşa edebilir. Bu rehber, sağlam bir AI sohbet botu oluşturmak için gereken mimari desenleri ve kod uygulamalarını adım adım açıklar.

Ön Koşullar ve Mimari

Koda dalmadan önce, bir LLM destekli uygulamanın temel bileşenlerini anlamak hayati önem taşır. Geleneksel kural tabanlı sohbet botlarının aksine, modern AI sohbet botları olasılıksal üretime dayanır. Temel bileşenler şunları içerir: 1. **LLM Sağlayıcısı**: Altyapıdaki model (örneğin, OpenAI'nin GPT-4'ü, Anthropic'in Claude'u). 2. **İstem Şablonu (Prompt Template)**: Modelin davranışını yönlendiren talimatlar. 3. **Bellek Modülü**: Çoklu tur tutarlılığını sağlayan konuşma geçmişini depolamak ve almak için bir mekanizma. 4. **Zincir (Chain)**: Kullanıcı girdisini modele ve geriye bağlayan mantıksal akış. Bu uygulama için Python, OpenAI API'si ve LangChain kullanacağız. Ortam değişkenlerinizde saklanan bir OpenAI API anahtarına sahip olduğunuzdan emin olun.

Ortamın Hazırlanması

İlk olarak, gerekli bağımlılıkları yükleyin. Orkestrasyon için `langchain` ve model etkileşimi için `openai` kullanacağız.
pip install langchain openai python-dotenv
Ardından, API anahtarınızı güvenli bir şekilde saklamak için bir `.env` dosyası oluşturun. Bu, kimlik bilgilerinizi kod tabanınızda ortaya çıkarmaktan kaçınmak için kritik bir güvenlik uygulamasıdır.
OPENAI_API_KEY=sk-gerçek-api-anahtarınız-burada

Sohbet Mantığının Uygulanması

Sohbet botumuzun kalbi, etkileşim döngüsüdür. Modeli başlatacak, bir bellek arabelleği kuracak ve kullanıcı girdisini işleyecek basit bir fonksiyon oluşturacağız.
import os
from dotenv import load_dotenv
from langchain.llms import OpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory

# Ortam değişkenlerini yükle
load_dotenv()

def create_chatbot():
    # Deterministik yanıtlar için sıcaklığı 0 olan LLM'i başlat
    llm = OpenAI(
        openai_api_key=os.getenv("OPENAI_API_KEY"),
        temperature=0
    )
    
    # Önceki etkileşimleri hatırlaması için belleği ayarla
    memory = ConversationBufferMemory()
    
    # Konuşma zincirini oluştur
    conversation = ConversationChain(
        llm=llm, 
        memory=memory, 
        verbose=False
    )
    
    return conversation

def main():
    bot = create_chatbot()
    print("AI Sohbet Botu başlatıldı. Çıkmak için 'quit' yazın.")
    
    while True:
        user_input = input("Kullanıcı: ")
        if user_input.lower() == 'quit':
            print("Görüşürüz!")
            break
        
        # Yanıt oluştur
        response = bot.predict(input=user_input)
        print(f"AI: {response}")

if __name__ == "__main__":
    main()
Yukarıdaki kodda, `OpenAI` LLM'ini 0 sıcaklığıyla başlatıyoruz. Bu ayar rastgeleliği azaltarak botun yanıtlarını daha tutarlı ve gerçekçi hale getirir. `ConversationBufferMemory` sınıfı, mesajları bağlam penceresine otomatik olarak ekleyerek yönetir ve modelin beş tur önce ne söylendiğini "hatırlamasını" sağlar.

Özel İstemlerle (Prompts) Geliştirme

Üretim seviyesindeki uygulamalar için varsayılan istemlere nadiren güvenmelisiniz. Bunun yerine, botun kişiliğini kısıtlamak için spesifik sistem talimatları tanımlayın. Bunu, `ConversationChain`'e bir `prompt` parametresi geçirerek yapabilirsiniz. Bu, alanına özgü bilgileri veya ton ayarlamalarını doğrudan bağlama enjektelemenize olanak tanır.

Sonuç

LangChain gibi çerçeveler tarafından sağlanan yüksek seviye soyutlamalar sayesinde, bir AI sohbet botu oluşturmak günümüzde çok daha kolay hale geldi. Ancak karmaşıklık altyapıdan istem mühendisliğine (prompt engineering) ve bellek yönetimine kayar. Ölçeklendirdikçe, sohbet botunuzu özel verilerde temellendirmek için geri çekime dayalı üretim (RAG) için vektör veritabanları uygulamayı düşünün. Bu temel kavramları ustalaşarak, zeki, duyarlı ve değerli AI asistanları oluşturmak için sağlam bir temel atarsınız.
Share: