Çözümler · Ulaşım & lojistik
Müşteri kolinin nerede olduğunu sorduğunda, ajan tahmin etmez: kuryeyi arar, ona sorar ve cevapla geri döner.
Sesle dispeçerleme, bir vaat olarak değil bir mekanizma olarak kuruldu: açık durumlara sahip bir tablo, iki dakika arayla üç deneme, arama sonucunun yapılandırılmış olarak yazılması ve modele ulaşan her şeyden sürücü numarasını çıkaran bir filtre, böylece müşteriye dikte edilemesin.
Zaten kurduklarımızSevk mekanizması yazıldı ve sesli platformumuza taşındı: yedi olası durumlu `courier_calls` tablosu, varsayılan üç deneme, aralarında 120.000 ms duraklama ve çağrı sonucunun yapılandırılmış biçimde saklanması; ayrıca onu kullanan beş sunucu işlevi — kurye aramasını başlatma, sonucu kontrol etme, takılı kalan çağrılar için süpürge, geri arayanı belirleme ve çağrı sonrası webhook. İkinci uygulama, ulaşım sektöründeki bir müşteri için yazılan çıkış filtresidir; araç içi iletişim alanlarını araçtan gelen sonuçtan yinelemeli olarak kaldırır, sevk numaralarını korur. Sormadan önce açık rezerv: telefon kısmı bir SIP sunucusu üzerinden geçer ve test hatlarımızın geçtiği sunucu yazım tarihinde yanıt vermiyor — önünde kaldıramayacağımız bir demo numarası vermiyoruz.
Bir nakliye veya teslimat şirketinde gelen aramaların çoğu, farklı kişilerin sorduğu aynı sorudur: yük nerede, saat kaçta varır, neden varmadı. Yanıt bir belgede değildir ve bir sistemde değildir — araç kullanan şoförün kafasındadır. Dispeçer bağlantıyı kurar: müşterinin aramasını alır, şoförü arar, müşteriye geri döner. Bu iş bir tam kişiyi meşgul eder ve günde yüz kez, aynı üç cümleyle yapılır.
Biz tam bu zinciri, pazarlama işlevi olarak değil, durumları olan bir mekanizma olarak kurduk. Bir ajan müşteriyle konuşur. Sahip olmadığı bir cevaba ihtiyaç duyduğunda, kurye ile ilgili ikinci bir aramayı başlatan bir fonksiyonu çağırır — çıktığı konuşmayla bağlantılı olarak. O aramanın kendi satırı bir tabloda yer alır; `calling`, `in_progress`, `retrying`, `completed`, `failed`, `no_answer`, `timeout` durumlarından geçer, deneme numarası vardır, en fazla üç deneme yapılır ve aralarında iki dakika beklenir. Sonuç yapılandırılmış olarak yazılır: kuryenin söylediklerinin özeti, tahmini süre, konum.
Kolayca gözden kaçan ve bizim bir önlem değil bir gereklilik olarak ele aldığımız kısım: sürücünün telefon numarası müşteriye ulaşmamalıdır. Bu, ajan promptuna yazılmış bir talimat değildir; çünkü bir prompttaki talimat aşılabilir. Bu, aracın çıktısını yinelemeli olarak tarayan ve sürücünün iletişim alanlarını, o çıktı modele ulaşmadan önce kaldıran bir filtredir — dispeçer numaralarını koruyarak. Kaldırılan şey, ajan nasıl sorgulanırsa sorgulansın, dikte edilemez.
Ve en önemli sınır zekâ değil, altyapı sınırıdır: telefondaki bir sesli ajan, operatörünüz ile platform arasında bir SIP sunucusuna bağlıdır. O sunucu çöktüğünde, aramalar çıkmaz ve hatanın imzası tanınabilir olur — zaman aşımı isteği, boş çağrı kimliği, sıfır süre. Test hatlarımızın geçtiği sunucu, bu sayfanın yazıldığı tarihte yanıt vermiyor. Web’de ses yolu bugün doğrulanabilir; telefonda ise herhangi bir çalışmanın ilk aşaması, numaralarınızın hangi sunucuya girdiğini belirlemektir.