İçeriğe atla
megapromotingHadi konuşalım
Ürünler Kallina

Yapay zekâ sesli ajanları Platform

İyi bir konuşma bir eylemle devam eder.

İşletme bilgilerini kullanan ve sistemlerinizle çalışan, aramaları alan ve başlatan ajanlar geliştiriyoruz. İlk sorudan tam bir talebe, bir onaya ya da bir ekip arkadaşına aktarıma kadar.

DinleyinDoğrulaEylem gösterSES + BAĞLAM + EYLEM
Kallina nasıl çalışıyor

Kallina

Bilgiden yapılmış işe.

01

Dinleyin

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

02

Doğrula

Yanıt vermeden önce bilgi tabanını ve yetkilendirilmiş entegrasyonları kontrol eder.

03

Eylem göster

Verileri tamamlayın, izin verilen işlemi yürütün veya konuşmayı bir insana aktarın.

Nerede faydalı olur.

Resepsiyon ve destek

Sık sorulan sorular, taleplerin alınması ve iletişime geçilmesini isteyen kişilere geri dönüş.

Siparişler ve teslimatlar

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

Nitelendirme ve programlamalar

Gerekli ayrıntıları toplayın. Takvime erişim ve rezervasyon her entegrasyon için belirlenir.

Senaryolar, telefon numarası, diller ve eylemler her uygulama için yapılandırılır. Ekip, konuşmayı devralma olanağını korur.

Kallina ayrıntıda

Bu proje ile neler yapabilirsiniz.

Kallina, telefonda ve web sayfasında konuşan ajanlar oluşturduğumuz platformdur. Bir ajanın yazılı bir rolü, onaylı bir bilgi tabanı, çağırabileceği bir araç seti ve konuşmayı bir insana devrettiği bir sınırı vardır. Konuşma transcript’te bitmez: aramanın süresi, sağlayıcı başına maliyeti, kaydı ve analizi vardır; bunların hepsi işletme hesabına bağlıdır.

Ses motoru tek bir tane değil. Ajan yapılandırmasında ElevenLabs Conversational AI, OpenAI Realtime, Gemini Live veya „auto” arasında seçim yaparsınız; bu durumda Kallina dili, yükü ve kullanılabilirliği dikkate alarak sağlayıcıyı seçer. Bunun üstünde metinsel beyni ayrı seçersiniz — kod kataloğunda OpenAI, Google, Anthropic, xAI ve ElevenLabs’ten 78 giriş vardır; her biri gecikmesi ve dakika başına maliyetiyle arayüzde gösterilir, böylece seçim duyuma değil, bilgiye dayanır.

Telefon altyapısı bize aittir, ses sağlayıcısından kiralanmaz. Aramalar kendi Asterisk üzerinden geçer; çalışma saatlerine ve saat dilimine göre yönlendirme, gece programı (örneğin 22:00 → 06:00) ve öncelik eşleşmesi vardır: önce SIP Diversion başlığı, sonra Kallina numarası, sonra yedek kural. OpenAI Realtime için codeci iki yönde dönüştüren bir AudioSocket köprüsü vardır, g711_ulaw ↔ PCM16.

01

Üç ses sağlayıcısı artı bir „auto” konumu

`AGENT_PROVIDERS` içinde dört seçenek vardır: `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 alternatif olan `eleven_turbo_v2_5` yaklaşık 250 ms maliyet getirir. Seçim kodda gizli değildir, ajan yapılandırmasında bir alandır.

02

Gecikme ve maliyeti gösterilen model kataloğu

`LLM_MODELS` içinde arayüzde sağlayıcıya göre gruplandırılmış 78 model, ölçülen gecikme ve dakika başına maliyetle birlikte yer alır — `gpt-5-nano` için yaklaşık 806 ms ve yaklaşık 0,0004 $/dk’dan, `claude-sonnet-4-6` için yaklaşık 1,55 s ve yaklaşık 0,0225 $/dk’ya kadar. „neden yavaş yanıt veriyor” diye soran bir müşteriye bir görüş değil, sayılarla bir yanıt verilir.

03

Asterisk üzerinde kendi telefon altyapısı

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

04

Tek satırlık sesli embed, sayfada agent id olmadan

`<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`. Sayfa hiçbir zaman hangi agent’ın cevap verdiğini öğrenmez ve hiçbir sağlayıcı anahtarı tutmaz: Kallina’dan bir oturum ister, Kallina ise kısa süreli, imzalı bir URL döndürür. `data-mode="inline"` modu da vardır; bu modda embed hiçbir şey çizmez ve sayfa kendi arayüzünü `start()` / `stop()` / `toggle()` / `on(event, fn)` API’si üzerine kurar.

05

Giden çağrı kampanyaları

1–10 eşzamanlı çağrı ile toplu arama, CSV’den kişi içe aktarma, yeniden deneme mantığı, duraklatma, devam ettirme ve durdurma ile gerçek zamanlı takip, ayrıca SMS ile follow-up.

06

Diller

Agent yapılandırması 32 dili (`LANGUAGES`) destekler, platformun tam dil haritasında 41 giriş vardır ve yönetim paneli 20 dile çevrilmiştir (`src/i18n/locales`). Romence, `DEFAULT_VALUES` içinde varsayılan dildir.

Veri ve çalışma

Sisteme ne girer. Ne doğrulanmalıdır.

Verilerin nerede bulunduğu
Supabase üzerinden PostgreSQL, Row Level Security ve pg_cron ile; sürümlenmiş 559 migrasyon. Sunucu mantığı Deno edge function’larıdır — doğrulama tarihinde repoda 472 adet.
İstemci sayfasına hiçbir zaman ulaşmayanlar
Ses sağlayıcısının anahtarı ve agent tanımlayıcısı. Embed, `chat_widget_configs.widget_id` içindeki genel anahtar olan `widget_id` ile `POST /functions/v1/widget-voice-session` çağırır, satırın iç kimliğiyle değil — sunucu da ElevenLabs’tan `convai/conversation/get_signed_url` üzerinden kendisi imzalı bir URL ister ve döndürür. Eskiden `agentId`’yi doğrudan HTML’ye koyan sürüm, Kallina’yı tamamen atlıyordu.
Bilgi tabanı
Platforma yüklenen, ElevenLabs RAG’i ile senkronize edilen belgeler. Bunların üzerine konuşma korumaları, veri toplama şemaları ve çağrı başarısı değerlendirme kriterleri, agent başına tanımlanır.
Ölçülen tüketim önce, sonra değil
`usage_events` tablosu tüketimi sağlayıcıya ve agent’a göre ayrılmış halde tutar. Maliyet oluşturan herhangi bir işlemden önce `check-can-use` fonksiyonu krediyi kontrol eder — gate aramanın önündedir, ay sonunda gelen faturanın değil.

Keşiften uygulamaya

Kallina ile bir proje nasıl hazırlanır.

01

Tek bir yol seçer ve sınırlarını yazarız

Girişi ve çıkışı net olan bir senaryo — resepsiyonda gelen çağrı, sipariş onayı, arama kampanyası. Agent’ın ne yapmasına izin verilmeyeceğini ve konuşmayı hangi yolla bir insana devredeceğini açıkça yazarız.

02

Numarayı bağlarız ve iki yönde de doğrularız

Numara SIP trunk’umuz üzerinden Asterisk’e girer. Gelen ve giden aramalar ayrı ayrı test edilir, çünkü ayrı ayrı bozulabilirler: giden aramalara operatör kısıtlaması, gelenlerin kusursuz çalışmasına engel olmaz.

03

Dakika tüketmeden yolu doğruluyoruz

`scripts/verify-voice-path.mjs`, bir tarayıcının tam yolunu izler — yapılandırmadaki satır, `get-widget-config`, ardından `widget-voice-session` — ve websocket’i açmadan, imzalı URL’de durur. Tek bir widget üzerinde ya da ses etkin olanların hepsinde, paralelde 1–3 ile çalışır ve çıkış kodu döndürür; bu yüzden doğrudan bir cron içine girebilir.

Netleştirilmesi gereken sorular.

Hangi ses motorunu, tam olarak, kullanıyor?

ElevenLabs Conversational AI, OpenAI Realtime ve Gemini Live arasında seçersiniz ya da „auto” bırakırsınız ve Kallina dili ile kullanılabilirliğe göre karar verir. İngilizce dışındaki dillerde ses sentezi için varsayılan model `eleven_flash_v2_5` — 32 dil, yaklaşık 75 ms; daha yüksek kalite isteyip daha fazla gecikmeyi kabul ederseniz, `eleven_turbo_v2_5` yaklaşık 250 ms’dir. OpenAI Realtime sesleri on tanedir ve motorları `gpt-realtime-2.1`’e kadar gider.

Bir siteye nasıl eklenir?

Tek bir satır: `<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`, normal bir script olarak yüklenir, modül olarak değil. Dosya bugün sunuluyor ve 13.762 bayttır. 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. Host’a dikkat: dosya `app.kallina.info` üzerinde duruyor, `kallina.info` üzerinde değil — bunlar iki farklı sunucuda iki ayrı uygulamadır.

Ziyaretçi mikrofonu reddederse dakika tüketilir mi?

Hayır. `embed.js` içindeki sıra şöyledir: SDK yüklenir, `getUserMedia({audio:true})` ile mikrofon istenir ve ancak sonra `widget-voice-session` çağrılır. Kişi mikrofonu reddederse, oturum isteği hiç yapılmaz; dolayısıyla imzalı URL de üretilmez ve hiçbir şey tüketilmez.

Sadece cevap vermekle kalmayıp ilk o arayabilir mi?

Evet — toplu arama, aynı anda 1–10, CSV’den kişiler, yeniden denemeler ve SMS ile follow-up. Ancak giden aramalar sadece bize değil, telefon operatörüne de bağlıdır: sorun kayıtlarımızda, operatör santralinin tüm çıkışlarda `403 Forbidden` döndürmeye başladığı, bizim yapılandırmamız değişmeden kaldığı ve gelen aramaların normal çalıştığı bir vaka belgelenmiştir. Bu yüzden bir kampanya vaat etmeden önce çıkışları ayrı test ediyoruz.

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

Ajan yapılandırması 32 dili destekler, dahili dil haritasında 41 giriş vardır ve yönetim paneli 20 dile çevrilmiştir. Romence, yeni ajanların varsayılan dilidir.

Kodun her değişikliğinde otomatik yayınlanır mı?

Hayır ve bir lansmanı planlamadan önce bunu bilmek iyidir. Depodaki GitHub workflow’su, silinmiş bir Supabase Cloud projesini hedefliyor; dolayısıyla „push pe main = yayın” artık kendi altyapımıza geçişten beri doğru değildir. Gerçek yayınlama SSH üzerinden, kopyalama ve yeniden başlatma ile yapılır. Pratik sonuç: acil bir değişiklik, sadece bir commit değil, bir kişiye ihtiyaç duyar.

Ajan cevabı bilmezse ne olur?

İnsana devretme senaryonun bir parçasıdır, istisna değildir. Her ajanın yazılı sınırları ve telefon altyapısında yapılandırılmış bir aktarım yolu vardır; ayrıca konuşmada başarıyı değerlendiren kapılar ve kriterler bulunur, tam da görev dışı bir vakanın doğaçlama değil, durdurulması için.

İllüstratif örnek

Geceleri gelen, doğru yere ulaşan bir çağrı

Müşteri verisi veya atfedilen ticari sonuçlar olmadan bir kullanım senaryosu.

İlk durum

Biri iş numarasını 23:40’ta, resepsiyon çalışma saatleri dışında arıyor.

Nasıl çalışır

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

Rezultatul

Arama, transkript, ses kaydı, süre ve sağlayıcıya göre ayrılmış maliyetle geçmişte kalır. Ajanın rolünü aşan her şey durdurulur ve doğaçlama yapılmak yerine bir üst hatta aktarılır.

Gereklidir:Asterisk’imizin SIP trunk’ına bağlı numara, istenirse operatör tarafından izin verilen giden aramalar ve geri arama, ayrıca yazılı sınırları olan, onaylı bilgi tabanına ve prompt’a sahip bir ajan.

İş birliği olanakları

Kallina, kuruluşunuz bağlamında.

Bilgilendirme ve taleplerin alınması

Onaylı bilgilerle sesli destek, bir operatöre aktarma ve konuşmaların kaydı ile saklanmasına ilişkin net kurallarla.

Özel şirketler

Gerçek bir süreç etrafında bir pilot tanımlıyoruz: kullanıcılar, veriler, entegrasyonlar, maliyetler ve kabul kriterleri. Sonucun değerlendirilmesinden sonra genişleme gelir.

Kamu kurumları ve şirketleri

Erişilebilirlik, barındırma, veri koruması ve birlikte çalışabilirlik gereksinimlerini belirliyoruz. AGE veya STISC hizmetleriyle herhangi bir bağlantı, uygunluk, erişim ve onayların doğrulanmasını gerektirir.

Bunlar uyarlama senaryolarıdır, mevcut sözleşmeler veya ortaklıklar hakkında beyanlar değildir. Önerilen işlevler projenin çalışma alanında doğrulanır.

Bir pilotu konuşalım

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.

Hadi konuşalım