メインコンテンツへスキップ
LiveKit は、WebRTC を活用したスケーラブルなマルチユーザー会議を可能にするオープンソースプロジェクトです。アプリケーションにリアルタイムのビデオ、音声、データ機能を追加するためのツールを提供します。

前提条件

  • SambaCloud アカウントとAPIキー
  • Python 3.11.5 以上

セットアップ

  1. 仮想環境を作成して有効化します。
    python -m venv .venv source .venv/bin/activate
    
  2. LiveKit の最小構成をインストールします。
    pip install "livekit-agents[openai,silero,deepgram,cartesia,turn-detector]~=1.0"
    

ユースケース例

LiveKit と SambaCloud モデルを組み合わせることで、リアルタイム AI エージェントを構築できます。よくあるユースケースとしては、以下が挙げられます。
  • マルチモーダルアシスタント:テキスト、音声、画面共有をサポートする AI アシスタント
  • 遠隔医療 (Telehealth):オンライン診察でリアルタイム AI サポートを提供
  • コールセンター:インバウンド・アウトバウンド対応を AI 音声エージェントで自動化
  • リアルタイム翻訳:多言語会話を即時に翻訳

実装例 - SambaCloudを用いた音声エージェント

以下は、LiveKit と SambaCloud の STT / LLM モデルを使用して音声 AI エージェントを構築する例です。
from livekit import agents
from livekit.agents import AgentSession, Agent, RoomInputOptions
from livekit.plugins import openai, cartesia, noise_cancellation, silero
import os

SAMBANOVA_URL = os.getenv("SAMBANOVA_URL")
SAMBANOVA_API_KEY = os.getenv("SAMBANOVA_API_KEY")

class Assistant(Agent):
    def __init__(self) -> None:
        super().__init__(instructions="You are a helpful voice AI assistant.")

stt = openai.STT(
    model="Whisper-Large-v3",
    api_key=SAMBANOVA_API_KEY,
    base_url=SAMBANOVA_URL,
)

llm = openai.LLM(
    model="Llama-4-Maverick-17B-128E-Instruct",
    api_key=SAMBANOVA_API_KEY,
    base_url=SAMBANOVA_URL,
)

async def entrypoint(ctx: agents.JobContext):
    session = AgentSession(
        stt=stt,
        llm=llm,
        tts=cartesia.TTS(),
        vad=silero.VAD.load(),
    )
    await session.start(
        room=ctx.room,
        agent=Assistant(),
        room_input_options=RoomInputOptions(
            noise_cancellation=noise_cancellation.BVC(),
        ),
    )
    await session.generate_reply(
        instructions="Greet the user and offer your assistance."
    )

if __name__ == "__main__":
    agents.cli.run_app(agents.WorkerOptions(entrypoint_fnc=entrypoint))

参考情報

詳細は LiveKitの公式ドキュメント をご参照ください。