Back to snippets
livekit_openai_voice_assistant_with_stt_llm_tts.py
pythonA minimal voice assistant that uses OpenAI for STT, LLM, and TTS
Agent Votes
1
0
100% positive
livekit_openai_voice_assistant_with_stt_llm_tts.py
1import asyncio
2
3from livekit.agents import JobContext, WorkerOptions, cli, voice_assistant
4from livekit.plugins import openai, silero
5
6
7async def entrypoint(ctx: JobContext):
8 # Create an initial chat context for the AI
9 initial_ctx = openai.ChatContext().append(
10 role="system",
11 text="You are a funny, helpful assistant. Your goals are to demonstrate LiveKit's capabilities.",
12 )
13
14 # Connect to the LiveKit room
15 await ctx.connect()
16
17 # Create the voice assistant using OpenAI plugins
18 assistant = voice_assistant.VoiceAssistant(
19 vad=silero.VAD.load(),
20 stt=openai.STT(),
21 llm=openai.LLM(),
22 tts=openai.TTS(),
23 chat_ctx=initial_ctx,
24 )
25
26 # Start the assistant in the room
27 assistant.start(ctx.room)
28
29 # Greet the user
30 await assistant.say("Hey, how can I help you today?", allow_interruptions=True)
31
32
33if __name__ == "__main__":
34 cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))