diff --git a/README.md b/README.md index 180b332..cbcbdbc 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Clone the repository and install dependencies to a virtual environment: ```console cd agent-starter-python -uv sync +uv sync --prerelease=allow ``` Sign up for [LiveKit Cloud](https://cloud.livekit.io/) then set up the environment by copying `.env.example` to `.env.local` and filling in the required keys: @@ -139,4 +139,4 @@ You can also self-host LiveKit instead of using LiveKit Cloud. See the [self-hos ## License -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. \ No newline at end of file +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. diff --git a/pyproject.toml b/pyproject.toml index 621bc8a..a5ff793 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ description = "Simple voice AI assistant built with LiveKit Agents for Python" requires-python = ">=3.9" dependencies = [ - "livekit-agents[silero,turn-detector]~=1.2", + "livekit-agents[silero,turn-detector]~=1.3.0rc1", "livekit-plugins-noise-cancellation~=0.2", "python-dotenv", ] diff --git a/src/agent.py b/src/agent.py index d85c794..df7767c 100644 --- a/src/agent.py +++ b/src/agent.py @@ -3,6 +3,7 @@ import logging from dotenv import load_dotenv from livekit.agents import ( Agent, + AgentServer, AgentSession, JobContext, JobProcess, @@ -48,11 +49,16 @@ class Assistant(Agent): # return "sunny with a temperature of 70 degrees." +server = AgentServer() + + +@server.setup() def prewarm(proc: JobProcess): proc.userdata["vad"] = silero.VAD.load() -async def entrypoint(ctx: JobContext): +@server.rtc_session() +async def my_agent(ctx: JobContext): # Logging setup # Add any other context you want in all log entries here ctx.log_context_fields = { @@ -129,4 +135,4 @@ async def entrypoint(ctx: JobContext): if __name__ == "__main__": - cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint, prewarm_fnc=prewarm)) + cli.run_app(server)