Sari la conținut
megapromotingHai să discutăm
Produse Kallina

Agenți vocali AI Platformă

İyi bir konuşma bir eylemle devam eder.

Çağrı alan ve çağrı başlatan, işletmenin bilgisini kullanan ve sistemlerinizle çalışan ajanlar kuruyoruz. İlk sorudan eksiksiz bir talebe, bir onaya ya da bir çalışana devre kadar.

AscultăVerificăAcționeazăVOCE + CONTEXT + ACȚIUNE
Cum funcționează Kallina

Kallina

Bilgiden yapılmış işe.

01

Ascultă

Talebi, konuşmanın ve işletme kurallarının bağlamı içinde anlar.

02

Verifică

Yanıtlamadan önce bilgi tabanına ve yetkilendirilmiş entegrasyonlara bakar.

03

Acționează

Verileri tamamlar, izin verilen eylemi yürütür ya da konuşmayı bir insana devreder.

Nerede işe yarıyor.

Karşılama ve destek

Sık sorulan sorular, taleplerin alınması ve aranmak isteyenlere geri dönüş.

Siparişler ve teslimatlar

Bağlı sipariş sistemindeki bilgilerle onaylar ve koordinasyon.

Niteleme ve randevular

Gerekli ayrıntıları toplar. Takvim erişimi ve rezervasyon her entegrasyon için ayrıca belirlenir.

Senaryolar, telefon numarası, diller ve eylemler her kurulum için ayrı yapılandırılır. Ekip, konuşmayı devralma imkânını her zaman korur.

Ayrıntısıyla Kallina

Bu projeyle neler yapabilirsiniz.

Kallina, telefonda ve web sayfasında konuşan ajanlar kurduğumuz platformdur. Bir ajanın yazılı bir rolü, onaylanmış bir bilgi tabanı, çağırabileceği bir araç kümesi ve ötesinde konuşmayı bir insana devrettiği bir sınırı vardır. Konuşma dökümde bitmez: çağrının süresi, sağlayıcı bazında maliyeti, kaydı ve analizi vardır — hepsi işletmenin hesabına bağlı.

Ses motoru tek değil. Ajan yapılandırmasında ElevenLabs Conversational AI, OpenAI Realtime, Gemini Live ya da «auto» arasından seçiyorsunuz; «auto» seçilirse Kallina sağlayıcıyı dile, yüke ve erişilebilirliğe göre kendisi belirliyor. Bunun üstünde metin beynini ayrıca seçiyorsunuz — koddaki katalogda OpenAI, Google, Anthropic, xAI ve ElevenLabs'ten 78 kayıt var; her birinin gecikmesi ve dakika maliyeti arayüzde görünüyor, ki seçim kulaktan dolma değil bilgiye dayalı olsun.

Telefon altyapısı bizim; ses sağlayıcısından kiralanmış değil. Çağrılar kendi Asterisk'imizden geçiyor: çalışma saatine ve saat dilimine göre yönlendirme, gece programı (örneğin 22:00 → 06:00) ve önceliğe göre eşleme — SIP Diversion başlığı, sonra Kallina numarası, sonra yedek kural. OpenAI Realtime için, kodeki iki yönde dönüştüren bir AudioSocket köprüsü var: g711_ulaw ↔ PCM16.

01

Üç ses sağlayıcısı ve bir «auto» konumu

`AGENT_PROVIDERS` içinde dört seçenek var: `elevenlabs` (ConvAI), `openai-realtime`, `gemini-live` ve `auto`. İngilizce dışındaki dillerde metinden sese için varsayılan `eleven_flash_v2_5` — 32 dil, yaklaşık 75 ms gecikme; daha kaliteli seçenek `eleven_turbo_v2_5` ise yaklaşık 250 ms'ye mal oluyor. Seçim kodun içine gizlenmiş değil; ajan yapılandırmasında bir alan.

02

Gecikmesi ve maliyeti görünen model kataloğu

`LLM_MODELS` içinde 78 model, arayüzde sağlayıcıya göre gruplanmış hâlde, ölçülen gecikmesi ve dakika maliyetiyle birlikte — yaklaşık 806 ms ve dakikada yaklaşık 0,0004 $ ile `gpt-5-nano`'dan, yaklaşık 1,55 s ve dakikada yaklaşık 0,0225 $ ile `claude-sonnet-4-6`'ya kadar. «Neden yavaş cevap veriyor» diye soran bir müşteri, görüş değil sayı içeren bir yanıt alır.

03

Asterisk üzerinde kendi telefon altyapımız

Çağrı yönlendirmesi çalışma saatlerine ve saat dilimine göre yapılandırılır; gece programı desteklenir ve eşleme önceliğe göre yapılır (SIP Diversion başlığı → Kallina numarası → yedek kural). `openai-realtime-bridge` köprüsü, çift yönlü ses akışı için g711_ulaw ile PCM16 arasında AudioSocket dönüşümünü yapar.

04

Tek satırlık sesli gömme, sayfada ajan kimliği olmadan

`<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`. Sayfa hangi ajanın yanıtladığını hiçbir zaman öğrenmez ve hiçbir sağlayıcı anahtarı tutmaz: Kallina'dan bir oturum ister, Kallina da kısa ömürlü imzalı bir URL döndürür. Bir de `data-mode="inline"` kipi var; bu kipte gömme hiçbir şey çizmez ve sayfa kendi arayüzünü `start()` / `stop()` / `toggle()` / `on(event, fn)` API'sinin üzerine kendisi kurar.

05

Giden çağrı kampanyaları

Aynı anda 1–10 çağrıyla toplu arama, CSV'den kişi içe aktarma, yeniden deneme mantığı, duraklatma, sürdürme ve durdurmayla gerçek zamanlı takip, ayrıca SMS ile geri dönüş.

06

Limbi

Ajan yapılandırması 32 dili kabul ediyor (`LANGUAGES`), platformun tam dil haritasında 41 kayıt var ve yönetim paneli 20 dile çevrilmiş durumda (`src/i18n/locales`). `DEFAULT_VALUES` içinde varsayılan dil Romence.

Veri ve işleyiş

Sisteme ne giriyor. Neyin doğrulanması gerekiyor.

Veriler nerede duruyor
Supabase üzerinden PostgreSQL; Row Level Security ve pg_cron ile, 559 sürümlenmiş migrasyon. Sunucu mantığı Deno edge fonksiyonlarıdır — doğrulama tarihinde depoda 472 tane.
Müşterinin sayfasına asla ulaşmayanlar
Ses sağlayıcısının anahtarı ve ajanın kimliği. Gömme, `widget_id` ile `POST /functions/v1/widget-voice-session` çağrısını yapar — bu, satırın iç kimliği değil, `chat_widget_configs.widget_id` içindeki açık anahtardır — ve sunucu imzalı URL'yi ElevenLabs'ten `convai/conversation/get_signed_url` ile kendisi ister ve geri döndürür. `agentId`'yi doğrudan HTML'e koyan eski sürüm, Kallina'yı tamamen atlıyordu.
Bilgi tabanı
Platforma yüklenen ve ElevenLabs'in RAG'iyle eşitlenen belgeler. Bunların üzerine ajan bazında tanımlanan konuşma korkulukları, veri toplama şemaları ve çağrının başarı ölçütleri konur.
Tüketim sonradan değil, önceden ölçülür
`usage_events` tablosu tüketimi sağlayıcı ve ajan bazında ayrıştırarak tutar. Maliyet doğuran her eylemden önce `check-can-use` fonksiyonu krediyi kontrol eder — kapı, ay sonu faturasında değil, çağrının önündedir.

Keşiften kuruluma

Kallina ile bir projeyi nasıl hazırlıyoruz.

01

Tek bir güzergâh seçiyor ve sınırlarını yazıyoruz

Girişi ve çıkışı belli tek bir senaryo — karşılamaya gelen bir çağrı, sipariş onayı, arama kampanyası. Ajanın neyi yapmaya yetkisi olmadığını ve konuşmayı hangi yolla bir insana devrettiğini açıkça yazıyoruz.

02

Numarayı bağlıyor ve iki yönde de doğruluyoruz

Numara, Asterisk'imizin SIP trunk'ına girer. Gelen ve giden çağrılar ayrı ayrı test edilir, çünkü ayrı ayrı bozulabilirler: operatörün giden çağrılara koyduğu bir kısıt, gelenlerin kusursuz çalışmasına engel olmaz.

03

Güzergâhı dakika harcamadan doğruluyoruz

`scripts/verify-voice-path.mjs` bir tarayıcının izlediği yolun tam olarak aynısını izler — yapılandırma satırı, `get-widget-config`, ardından `widget-voice-session` — ve websocket'i açmadan imzalı URL'de durur. Tek bir bileşen üzerinde ya da sesi etkin olan bütün bileşenlerde, paralelde 1–3 ile çalışır ve çıkış kodu döndürür; dolayısıyla doğrudan bir cron'a girebilir.

Netleştirmeye değer sorular.

Somut olarak hangi ses motorunu kullanıyor?

ElevenLabs Conversational AI, OpenAI Realtime ve Gemini Live arasından seçiyorsunuz; ya da «auto» bırakıyorsunuz ve Kallina dile ve erişilebilirliğe göre karar veriyor. İngilizce dışındaki dillerde ses sentezi için varsayılan model `eleven_flash_v2_5` — 32 dil, 75 ms civarı; daha yüksek kalite isteyip daha fazla gecikmeyi kabul ederseniz `eleven_turbo_v2_5` 250 ms civarındadır. OpenAI Realtime sesleri on tanedir ve motorları `gpt-realtime-2.1`'e kadar gider.

Bir siteye nasıl konur?

Tek satır: `<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`, modül olarak değil sıradan bir script olarak yüklenir. Dosya bugün sunuluyor ve 13.762 bayt. Kendi arayüzünüzü istiyorsanız `data-mode="inline"` hiçbir şey çizmez ve size `start()`, `stop()`, `toggle()` ile `state`, `message`, `error` olaylarını bırakır. Sunucu adına dikkat: dosya `app.kallina.info` üzerinde, `kallina.info` üzerinde değil — bunlar iki ayrı sunucudaki iki ayrı uygulamadır.

Ziyaretçi mikrofonu reddederse dakika harcanır mı?

Hayır. `embed.js` içindeki sıra şudur: SDK'yı yükle, `getUserMedia({audio:true})` ile mikrofonu iste, ancak ondan sonra `widget-voice-session` çağrısını yap. Kişi mikrofonu reddederse oturum isteği hiç yapılmaz; dolayısıyla imzalı bir URL üretilmez ve hiçbir şey harcanmaz.

Sadece cevap vermekle kalmayıp önce kendisi arayabilir mi?

Evet — toplu arama, aynı anda 1–10, CSV'den kişiler, yeniden denemeler ve SMS ile geri dönüş. Ama giden çağrılar yalnızca bize değil, telefon operatörüne de bağlı: kendi sorun kaydımızda, yapılandırmamız hiç değişmemiş ve gelen çağrılar normal çalışırken operatörün santralinin bütün çıkışlara `403 Forbidden` döndürmeye başladığı bir vaka belgelenmiş durumda. Bir kampanya sözü vermeden önce çıkışları ayrıca test etmemizin sebebi budur.

Kaç dilde konuşuyor, kaç dilde yönetiliyor?

Ajan yapılandırması 32 dili kabul ediyor, iç dil haritasında 41 kayıt var ve yönetim paneli 20 dile çevrilmiş. Yeni ajanların varsayılan dili Romence.

Her kod değişikliğinde otomatik olarak yayına alınıyor mu?

Hayır — ve bir lansmanı planlamadan önce bunu bilmekte fayda var. Depodaki GitHub akışı, silinmiş bir Supabase Cloud projesini hedefliyor; dolayısıyla kendi altyapımıza geçtiğimizden beri «main'e push = yayın» artık doğru değil. Gerçek yayına alma SSH ile, kopyalama ve yeniden başlatmayla yapılıyor. Pratik sonuç: acil bir değişiklik yalnızca bir commit'e değil, bir kişiye ihtiyaç duyar.

Ajan cevabı bilmiyorsa ne oluyor?

İnsana devir senaryonun parçasıdır, istisna değil. Her ajanın yazılı sınırları ve telefon altyapısında yapılandırılmış bir devir yolu vardır; konuşmanın içinde de korkuluklar ve başarı ölçütleri bulunur — tam da rolün dışına düşen bir durumun doğaçlanması değil durdurulması için.

Örnekleyici senaryo

Gece gelen ve gitmesi gereken yere ulaşan bir çağrı

Bir kullanım senaryosu; müşteri verisi ya da atfedilmiş ticari sonuç içermez.

Başlangıç durumu

Biri işletmenin numarasını 23:40'ta, karşılama mesai saatlerinin dışında arıyor.

Nasıl çalışıyor

Asterisk gece programı kuralını uyguluyor (örneğin 22:00 → 06:00) ve eşlemeyi önceliğe göre yapıyor: SIP Diversion başlığı, sonra Kallina numarası, sonra yedek kural. Gece ajanı yapılandırmada seçilen sağlayıcı üzerinden yanıtlıyor, talebi netleştiriyor ve kullanmasına izin verilen araçları çağırıyor.

Rezultatul

Çağrı; dökümü, ses kaydı, süresi ve sağlayıcı bazında ayrıştırılmış maliyetiyle geçmişte kalıyor. Ajanın rolünü aşan her şey doğaçlanmıyor, durduruluyor ve daha ileriye devrediliyor.

Ce este necesar:Numărul conectat pe trunkul SIP al Asterisk-ului nostru, apelurile ieșite permise de operator dacă se dorește și sunat înapoi, plus un agent cu prompt, bază de cunoștințe aprobată și limite scrise.

İş birliği olanakları

Kallina, kurumunuzun bağlamında.

Bilgilendirme ve talep alma

Onaylanmış bilgi üzerinden sesli destek; bir operatöre geçiş ve konuşmaların kaydı ile saklanmasına dair açık kurallarla.

Özel şirketler

Gerçek bir sürecin etrafında bir pilot tanımlıyoruz: kullanıcılar, veriler, entegrasyonlar, maliyetler ve kabul kriterleri. Yaygınlaştırma, sonucun değerlendirilmesinden sonra gelir.

Kamu kurumları ve şirketleri

Erişilebilirlik, barındırma, veri koruma ve birlikte çalışabilirlik gerekliliklerini belirliyoruz. Moldova e-Yönetişim Ajansı (AGE) ya da ulusal bilgi teknolojileri servisi (STISC) hizmetleriyle kurulacak her bağlantı; uygunluğun, erişimin ve onayların doğrulanmasını gerektirir.

Bunlar uyarlama senaryolarıdır; mevcut sözleşmeler ya da ortaklıklar hakkında beyan değildir. Önerilen işlevler projenin çalışma kapsamında teyit edilir.

Discută un pilot

Bir ekosistemin parçası.

Neyin daha iyi çalışmasını isterdiniz?

Bize sürecinizi anlatın. Neyin kurulmaya değer olduğuna, neyi bağlayabileceğimize ve sonucu nasıl doğrulayacağımıza birlikte karar verelim.

Hai să discutăm