Dijital ikiz ne demek?
Bu projede dijital ikiz, bir kişinin mesleki bilgilerini ziyaretçilere sohbet ederek anlatan yardımcı anlamına geliyor. Ziyaretçi eğitim, deneyim veya projeler hakkında soru sorabiliyor. Asistanın görevi, verilen profil bilgilerine dayanarak cevap üretmek.

Bilgi modele nasıl veriliyor?
Profil bilgileri profile.md dosyasından okunup sistem talimatına ekleniyor. PROFILE_FILE ile farklı bir metin seçilebiliyor. İstenirse PROFILE_PDF ile verilen PDF de pypdf üzerinden okunuyor; PDF olmadan da uygulama çalışıyor. Talimat, asistanın kimi temsil ettiğini ve yalnızca hangi bilgilere dayanarak cevap verebileceğini belirliyor.
Kullanıcının sorusu ve sohbet geçmişi bu bağlamla birlikte modele gönderiliyor. Model cevabı Gradio sohbet ekranına dönüyor. Burada özel bir model eğitimi veya ayrı bir vektör veritabanında arama akışı bulunmuyor; profil metni doğrudan konuşmanın bağlamına ekleniyor.
Araç çağrıları nasıl çalışıyor?
Model gerektiğinde normal bir cevap yerine tanımlanmış bir araç çağrısı isteyebiliyor. Python bu çağrıyı işliyor, sonucunu konuşmaya ekliyor ve modelden devam cevabı alıyor. Bu döngü, asistanın sadece metin yazmanın yanında tanımlı bir işlemi de başlatabilmesini gösteriyor.
Cevabı bilinmeyen sorular ve iletişim istekleri için Pushover bildirim araçları bulunuyor. Bildirim ayarı yoksa araç, bilginin kaydedilmediğini açıkça döndürüyor. Ayar varsa gönderimin başarılı olduğu kontrol ediliyor. Burada ayrı bir iletişim veritabanı bulunmadığı için bildirim göndermekle kalıcı kayıt tutmayı aynı şey olarak anlatmıyorum.
Ben hangi kısmı değiştirdim?
Ders örneğindeki başka kişiye ait profil yerine kendi herkese açık proje bilgilerimi ekledim. Dosya yollarını uygulamanın bulunduğu klasöre göre çözdüm; böylece başka bir klasörden başlatmak profil okumayı bozmuyor. Boş profil metnine hata veriliyor. Profil okuma ve yapılandırılmamış bildirim davranışını otomatik testlerle kontrol ettim; bütün model cevaplarının doğruluğunu test etmiş değilim.
Ne öğrendim?
Bir kişiyi temsil eden asistanın yanlış deneyim veya beceri anlatmaması gerekiyor. Talimatta bilmediğini söylemesi isteniyor ama bu kural tek başına her cevabın doğru olacağını garanti etmiyor. Mülakatta model eğitimiyle modele bağlam verme arasındaki farkı bu proje üzerinden açıklayabilirim.
Bu sürümde ne geliştirdim?
Başka kişiye ait örnek PDF kaldırılarak düzenlenebilir profile.md kullanıldı. PDF eklemek isteğe bağlı hale geldi; dosyalar çalışma dizininden bağımsız okunuyor. Bildirim yapılandırılmamışsa bilgilerin kaydedilmediği açıkça bildiriliyor. Bu davranışlar için API çağrısı yapmadan çalışan otomatik testler ekledim.
Mülakatta sorulabilecek bir soru
Bu projede modeli yeniden eğittin mi?
Hayır. Profil metnini modele bağlam olarak veriyorum. Model eğitmek, modelin ağırlıklarını değiştiren ayrı bir süreç; burada mevcut modelin hangi bilgiden cevap vereceğini belirliyorum.
Ajan geliştirme çalışması: ders deposu ve temel örnekler.
Kısa Özet
Profil bilgilerime ve projelerime dayanarak soruları cevaplayan bir dijital ikiz örneğini kişiselleştirdim. Python ve OpenAI bağlantısı cevap üretimini, Gradio sohbet ekranını sağlıyor. Bilgileri düzenlenebilir bir Markdown dosyasından okuyup modele bağlam olarak veriyorum; yeni bir model eğitmiyorum. PDF okumayı isteğe bağlı yaptım ve bildirim ayarı yokken uygulamanın bilgileri kaydetmiş gibi davranmasını düzelttim. Böylece hem bilgi kaynağını hem de araçların gerçekte ne yaptığını daha açık hale getirdim.