Selam, <https://agents-playground.livekit.io/> bu...
# ask-ai
a
Selam, https://agents-playground.livekit.io/ buradan test etmek istiyorum. Livekit Cloud kullanmıyorum self-hosted. Token istiyor benden onu nereden oluşturacağım
t
Thanks for reaching out, İbrahim. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Selam — sorunu anladım: self‑hosted LiveKit kullandığınız için Agents Playground’a bağlanırken sizden istenen JWT token’ı kendiniz oluşturmanız gerekiyor. Aşağıda en kolay ve hızlı yolları Türkçe olarak adım adım paylaşıyorum. Hangi dili/araçları kullandığınızı söylerseniz doğrudan size özel bir örnek hazırlarım. Özet: Agents Playground’a bağlanmak için • URL: sunucunuzun WebSocket adresi (ör.
<wss://sunucunuz.com>
) • Token: sunucunuzun API_KEY / API_SECRET ile ürettiğiniz JWT 1) En kolay yol — LiveKit CLI (lk) 1. LiveKit CLI’yı yükleyin. 2. CLI’ye API anahtarınızı, API secret’ınızı ve sunucu URL’inizi verin: ◦
lk config set api-key your-api-key
◦
lk config set api-secret your-api-secret
◦
lk config set url <wss://sunucunuz.com>
1. Token oluşturun: ◦
lk token create --identity=test-user --room=test-room --ttl=1h
1. CLI size üreteceği JWT’yi verecek — bunu Agents Playground’daki Token alanına yapıştırın. 2) Sunucu SDK’sı ile oluşturma (daha esnek, backend üzerinden) • Node.js, Python, Ruby gibi diller için LiveKit server SDK’larıyla JWT üretebilirsiniz. Örnek akış: ◦ Access token oluşturun,
identity
ve katılacağı
room
bilgilerini ekleyin. ◦ Yayın/abonelik izinlerini (publish/subscribe) gerekli şekilde verin. ◦
toJwt()
ile token alın ve Agents Playground’a yapıştırın. 3) Dikkat etmeniz gerekenler •
API_KEY
ve
API_SECRET
self-hosted sunucunuzda tanımlı olan anahtarlar olmalı (genelde yapılandırma dosyasında belirlenir). • Token süresi (
ttl
) dolduğunda yeni token ile yeniden bağlanmalısınız. • Token payload’ını görüntülemek isterseniz
<https://jwt.io>
kullanabilirsiniz (imzayı doğrulamak için secret gerekir; payload’ı görebilirsiniz). Nasıl devam edelim? • Hangi dili veya aracı kullanıyorsunuz? (örn. Node.js, Python, Go, CLI) • Self-hosted sunucunuzun URL’sini ve API anahtarlarını hazır bulunduruyor musunuz? Bana kullandığınız dili/ortamı söyleyin; size tam kod/komut örneğini adım adım hazırlayayım. Sources: Server-side | livekit/livekit_composite | DeepWiki | Python SDKs | livekit/livekit_composite | DeepWiki | server-sdk-ruby | livekit/livekit_composite | DeepWiki | server-sdk-kotlin | livekit/livekit_composite | DeepWiki
a
ilk önce proıje oluşturması göstersene
t
Harika — proje oluşturmayı göstereyim. Öncelikle hangi "proje"yi kastettiğinizi netleştireyim, böylece adım adım doğru rehberi verebilirim. Aşağıdakilerden hangisini yapmak istiyorsunuz? • LiveKit sunucusu için yeni bir self‑hosted proje kurulumu (sunucu kurup yapılandırmak), • Bir client uygulama projesi oluşturmak (ör. Node.js/React/Flutter ile LiveKit kullanan uygulama), • LiveKit Cloud üzerinde bir proje oluşturmak (örnek: Cloud paneli — fakat siz Cloud kullanmadığınızı söylediniz), • Yoksa başka bir şey (kısaca açıklayın). Ayrıca lütfen belirtin: • Hangi dili/çerçeveyi kullanmak istiyorsunuz? (ör. Node.js, Python, Go, React Native, Flutter) • Sunucunuzu nereye kuracaksınız? (ör. kendi sunucunuz/VPS, Docker Compose, Kubernetes) Bu bilgiyi verirseniz, adım adım: 1) Gerekli dosya/komutları, 2) `API_KEY`/`API_SECRET` oluşturma yerini, 3) Token üretimi için örnek komut veya kodu sunacağım.
a
lk project ile
t
Süper — “lk project” ile ilgili sorunu netleştireyim: LiveKit CLI (
lk
) üzerinde
lk project create
gibi bir komut yok. Yani yeni bir LiveKit Cloud projesi oluşturmak istiyorsanız bunu web panelinden yapmanız gerekiyor. Eğer self‑hosted kullanıyorsanız ise “proje oluşturma” adımı farklı işliyor — sunucuyu kurup API anahtarlarını kendiniz tanımlıyorsunuz. Aşağıda her iki durum için kısa, net adımlar veriyorum. Hangi durumda olduğunuza göre ilerleyin. 1) LiveKit Cloud (Cloud proje oluşturmak istiyorsanız) • LiveKit Cloud paneline gidin: https://cloud.livekit.io/ • Giriş yapın ve dashboard’dan “Create project” (yeni proje oluştur) seçeneğini kullanın. • Proje oluşturulduğunda size verilecek bilgiler: ◦ LIVEKIT_API_KEY ◦ LIVEKIT_API_SECRET ◦ LIVEKIT_URL (WebSocket URL) • Bu üç değer,
lk
CLI ile veya uygulamalarınızda token üretmek için kullanılacak. Not:
lk
CLI ile bir proje oluşturamazsınız; CLI ile yalnızca Cloud hesabınıza bağlanıp mevcut projelerle çalışabilirsiniz (ör.
lk cloud auth
,
lk app env -w
). 2) Self‑hosted LiveKit (kendi sunucunuzu kullanıyorsanız) • Self‑hosted ortamda “proje” oluşturma adımı yoktur; bunun yerine LiveKit sunucusunu kurup
livekit.yaml
içinde API anahtarlarınızı tanımlarsınız. • Yapılması gerekenler (kısaca): a. Sunucuyu kurun (Docker Compose veya Kubernetes kullandınız mı? Söylerseniz tam komut veririm). b.
livekit.yaml
veya ilgili yapılandırmada
api_key
ve
api_secret
belirleyin — bunlar sizin uygulamanızın token üretmesi için gereken anahtarlar. c.
LIVEKIT_URL
olarak sunucunuzun WebSocket adresini (örn.
<wss://sunucunuz.com>
) kullanın. d. Token üretmek için
lk
CLI veya server SDK’sı kullanın (örneğin
lk token create --identity=... --room=...
). 3)
lk
CLI ile neler yapabilirsiniz (önemli komutlar) •
lk cloud auth
— Cloud hesabınıza giriş yapıp CLI’yi yetkilendirmek için. •
lk app env -w
— mevcut Cloud projenizin API anahtarlarını
.env.local
olarak kaydetmek için. •
lk token create --identity=... --room=... --ttl=...
— token oluşturmak için (self‑hosted sunucunuzda API_KEY/SECRET ayarlıysa çalışır). Nasıl devam edelim? • LiveKit Cloud mu kullanıyorsunuz yoksa self‑hosted mi? • Eğer self‑hosted ise: sunucunuzu Docker Compose mu yoksa Kubernetes mi ile kurdunuz? • Hangi adımda yardımcı olmamı istersiniz: sunucu kurulum komutları,
livekit.yaml
örneği, yoksa
lk
CLI ile token oluşturma komutları? Bana ortamınızı söyleyin; size tam adım‑adım komut ve örnek konfig dosyası hazırlayayım. Sources: Mini tutorial: setting up a LiveKit Cloud project | Voice AI quickstart | LiveKit Documentation | Server-side | livekit/livekit_composite | DeepWiki
a
Bir agent room'da olup olmadığını nasıl anlayabilirim?
t
İyi soru — agent'ın bir oda içinde olup olmadığını nasıl anlayacağınızı yanıtlıyorum. Aşağıda doğrudan kullanabileceğiniz iki basit yöntem ve örnekler var. Hangi dili/SDK’yı kullandığınızı söylerseniz o dile özel örnek kodu hemen veririm. Özet: Agent’lar odalara katıldıklarında normal participant (katılımcı) olarak görünürler. Yani yapılacak: odaya ait participant listesini alın ve katılımcılar arasında agent’ı tanımlayın (identity, metadata veya tip alanına göre). 1) Server SDK ile kontrol etme (en doğrudan yol) • Server SDK’dan ilgili odanın participant listesini alın (ör.
listParticipants(roomName)
). • Listedeki her participant’ın
identity
veya
metadata
alanına bakın; agent’lar genelde kimlik veya metadata ile ayırt edilir (ör.
agent_
prefix’i veya özel bir metadata). • Eğer SDK’da participant tipi (ör.
kind
) varsa, agent olduğunu gösteren değeri kontrol edin. Kısa mantık: • participants = listParticipants("oda-adi") • agentVarMi = any(p.identity veya p.metadata agent’a işaret ediyorsa) 2) Webhook ile gerçek zamanlı izleme (preferred for continuous tracking) • Webhook etkinleştirip
participant_joined
ve
participant_left
olaylarını dinleyin. • Bu webhooks ile backend’inizde agent kimliklerini kontrol edip bir “agent mevcut” durumu tutabilirsiniz. • Böylece sürekli polling yerine olay tabanlı güncel durum alırsınız. Pratik notlar ve ipuçları • Agent’ı güvenilir şekilde tanımlamak için agent token üretirken
identity
veya
metadata
içine açık bir işaret koyun (ör.
agent_support_123
veya
{"type":"agent","name":"support-bot"}
). • Eğer self‑hosted kullanıyorsanız server SDK çağrılarının çalışabilmesi için
LIVEKIT_API_KEY
,
LIVEKIT_API_SECRET
,
LIVEKIT_URL
erişiminizin olması gerekir. • İsterseniz ben hemen kullandığınız dile göre örnek kod veririm (Node.js, Python, Go, vb.). Hangi SDK/dili kullanıyorsunuz veya webhook ile mi takip etmek istersiniz? Buna göre kısa bir örnek ve gerekli komutları paylaşayım. Sources: server-sdk-ruby | livekit/livekit_composite | DeepWiki | livekit/livekit_composite | DeepWiki