Çö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ızMecanismul de dispecerizare e scris și migrat în platforma noastră vocală: tabela `courier_calls` cu șapte stări posibile, trei încercări implicite, pauză de 120.000 ms între ele și rezultatul apelului păstrat structurat, plus cinci funcții de server care o folosesc — inițierea apelului către curier, verificarea rezultatului, mătura pentru apelurile rămase agățate, identificarea celui care sună înapoi și webhookul de după apel. A doua implementare e filtrul de ieșire scris pentru un client din transport, care elimină recursiv câmpurile de contact ale șoferului din rezultatul uneltei, păstrând numerele dispeceratului. Rezerva, spusă înainte să întrebi: partea de telefon trece printr-o gazdă SIP, iar gazda prin care merg liniile noastre de test nu răspunde la data scrierii — nu-ți dăm un număr de demonstrație pe care nu l-am putea ridica în fața ta.
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.