Geçen ay yeni pozisyona geçen bir meslektaşımla akıllı müşteri hizmetleri prototipi yaptık, gereksinim çok basitti: kullanıcı soru sorar, model yanıtlar, biraz bağlam hafızası olsun, akış halinde yazsın. Kulağa iki günde hallolur gibi geliyor, ama sonunda API Key'i koda gömmek, yeniden deneme mantığı ve akış entegrasyonunda ayrı ayrı tökezledi. Tüm süreci bu yazıda topladım, yeni eleman yetiştirme notu olarak okuyabilirsiniz.
Birinci adım: Önce gereksinimleri parçala, sonra model seç
Hemen kod yazmaya başlamayın. Akıllı müşteri hizmetlerinin yetenek gereksinimleri kabaca üçe ayrılır: niyet tanıma, bilgi soru-cevap, çok turlu sohbet. Niyet tanıma hızlı ve ucuz olmalı, DeepSeek-V3 veya Qwen API yeterli; bilgi soru-cevap özel dokümanlarınızı içerir, RAG üzerinden gitmeli, model uzun bağlamı anlamalı; çok turlu sohbet ton açısından yüksek gereksinim duyar, Claude 4 Sonnet veya GPT-4o daha güvenilir.
Benim yaklaşımım önce genel bir modelle zinciri çalıştırmak, sonra tek tek değiştirmek. SiCore TokenWorks'ün çoklu model yönlendirmesi bu noktada işi kolaylaştırıyor, aynı kod tabanıyla model adını değiştirerek sonuçları karşılaştırabiliyorsunuz, kimlik doğrulamayı değiştirmeye gerek yok. Büyük model API seçimi en güçlüyü seçmek değil, göreve en uygun olanı seçmektir.
İkinci adım: Key yönetimi, koda yazmayın
Key'i kaynak koduna gömmek yeni çalışanların en sık yaptığı hatadır. git'e commit edildiği anda açığa çıkmış demektir. Doğru yaklaşım ortam değişkeni artı yapılandırma dosyası kademelendirmesidir: yerelde .env, test ve üretimde yapılandırma merkezi veya anahtar yönetim servisi.
Çoklu ortam izolasyonunda üç noktayı unutmayın: geliştirme, test, üretim için farklı Key kullanın; her Key'e bağımsız kota üst sınırı koyun; üretim Key'i yalnızca sunucu tarafına verilir, ön yüz asla alamaz. Projemizde SiCore TokenWorks kullanıyoruz, tek Key ile GPT-4o, Claude, DeepSeek, Qwen, ERNIE, Doubao gibi ana akım modelleri çağırabiliyoruz, birden fazla kimlik doğrulama seti bakımından kurtuluyoruz, çoklu ortamda Key değiştirmek de sadece bir değişkeni değiştirmek oluyor.
Üçüncü adım: Çağrı sarmalama ve hata yeniden deneme
SDK'yı çıplak çağıran kod bakımı yapılamaz. Bir katman sarmalayın, zaman aşımı, hız sınırlama, yeniden denemeyi tek elden yönetin. Mantık şöyle: model çağrısını bir fonksiyona sarın, parametreler messages ve model adı olsun, içeride üç tür hatayı yakalayın — ağ zaman aşımı, 429 hız sınırlama, 5xx sunucu hatası.
Yeniden deneme stratejisi üstel geri çekilme kullanır, ilkinde 1 saniye, ikincide 2 saniye, üçüncüde 4 saniye, en fazla üç kez. 429 özel işlenmeli, dönen retry-after başlığına bakın. Her hatayı yeniden denemeyin, parametre hatasını yüz kez denemek de fayda etmez. Model ağ geçidinin değeri bu katmanda, yeniden deneme, düşürme, logları tek yerde toplar, iş kodu sadece sonucu alır.
Tuzak uyarısı: yeniden deneme idempotent olmalı. Çağrının yan etkisi varsa (örneğin veritabanına yazma), yeniden denemeden önce öncekinin gerçekten başarısız olduğunu doğrulayın.
Dördüncü adım: Akış çıktısı ve ön yüz entegrasyonu
Müşteri hizmetleri deneyiminin çekirdeği "daktilo efekti"dir. Sunucu SSE ile token'ları parça parça ön yüze iter, ön yüz EventSource veya fetch'in ReadableStream'iyle alır.
Arka uç kilit noktası: stream=True ayarlayın, dönen delta'yı parça parça çözümleyin, [DONE] görünce bitirin. Ön yüz kilit noktası: her karakter geldiğinde setState yapmayın, 20-50 milisaniye biriktirip toplu render edin, yoksa sayfa slayt gibi donar.
Bir tuzak daha, akış sırasında kullanıcı sayfayı kapatabilir. Sunucu bağlantı kesilme olayını dinlemeli, yukarı akış isteğini zamanında iptal etmeli, yoksa boşuna token yakarsınız. Kullandıkça ödeme modelinde bu israf damla damla birikir.
Beşinci adım: Maliyet izleme ve uyarı
Yayına almadan önce mutlaka ölçüm noktası koyun. Her çağrıda kaydedin: model adı, giriş token sayısı, çıkış token sayısı, süre, yeniden deneme olup olmadığı. Bu verileri bir hafta biriktirin, paranın nereye gittiğini ancak o zaman anlarsınız.
Uyarı için iki çizgi koyun: günlük maliyet eşiği aşınca alarm, tek çağrıda token anormalliğinde alarm. Bir keresinde bir kullanıcı tüm bir dokümanı yapıştırmıştı, tek girişte on binlerce token, uyarı olmasa ay sonu faturası çirkin görünürdü.
Tasarruf deneyimi: niyet tanıma gibi yüksek frekanslı düşük zorluklu görevleri ucuz yerli modellere kaydırın, maliyet bir miktar düşer. Toplu satın alma artı yeşil enerji zamanlaması, SiCore TokenWorks gibi bir toplayıcı platformun fiyatının resmi doğrudan satın alımın altında olmasının nedenidir, bizim karşılaştırmamızda yüksek frekanslı çağrı senaryolarında fark belirgin.
Tek cümleyle özet: akıllı müşteri hizmetleri prototipinin zorluğu modelde değil, mühendislik detaylarında. Key'i iyi yönetin, yeniden denemeyi doğru yazın, akışı sağlam bağlayın, maliyeti takip edin, gerisi prompt ayarlamak. Çoklu model birleşik entegrasyon ve model yönlendirme uygulamasını derinlemesine incelemek isterseniz, büyük model API ağ geçidi hattı boyunca okumaya devam edebilirsiniz.