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))