voice-agent-livekit / agent /token_server.py
sitsope's picture
Voice Agent LiveKit — GPT-4o + Whisper small + Azure TTS
5c1a0cb
"""
token_server.py — Génération de tokens LiveKit pour l'interface Gradio
"""
import os
import uuid
from dotenv import load_dotenv
from livekit.api import AccessToken, VideoGrants
load_dotenv()
def get_connection_details(room_name: str | None = None) -> dict:
api_key = os.environ.get("LIVEKIT_API_KEY")
api_secret = os.environ.get("LIVEKIT_API_SECRET")
livekit_url = os.environ.get("LIVEKIT_URL")
if not api_key or not api_secret or not livekit_url:
raise ValueError(
"Variables manquantes dans .env : LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET"
)
room = room_name or f"voice-room-{uuid.uuid4().hex[:8]}"
identity = f"user-{uuid.uuid4().hex[:6]}"
token = (
AccessToken(api_key=api_key, api_secret=api_secret)
.with_identity(identity)
.with_name(identity)
.with_grants(
VideoGrants(
room_join=True,
room=room,
can_publish=True,
can_subscribe=True,
)
)
.to_jwt()
)
return {
"success": True,
"url": livekit_url,
"token": token,
"room": room,
"identity": identity,
}