From 7b8b606278e5f1fa75d71b1aadfd16c6ba195355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Thu, 30 May 2024 15:02:12 -0700 Subject: [PATCH] update CHANGELOG and create websocker-server instructions --- CHANGELOG.md | 5 +++- examples/websocket-server/README.md | 27 +++++++++++++++++++ .../websocket-server/frames.proto | 0 .../websocket-server/index.html | 0 examples/websocket-server/requirements.txt | 2 ++ .../websocket-server/server.py | 0 6 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 examples/websocket-server/README.md rename examples/{foundational => }/websocket-server/frames.proto (100%) rename examples/{foundational => }/websocket-server/index.html (100%) create mode 100644 examples/websocket-server/requirements.txt rename examples/{foundational => }/websocket-server/server.py (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0686d95b9..a1753c421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added WebsocketServerTransport. This will create a websocket server and will + read messages coming from a client. The messages are serialized/deserialized + with protobufs. See `examples/websocket-server` for a detailed example. + - Added function calling (LLMService.register_function()). This will allow the LLM to call functions you have registered when needed. For example, if you register a function to get the weather in Los Angeles and ask the LLM about @@ -24,7 +28,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed an issue where `camera_out_enabled` would cause the highg CPU usage if no image was provided. - ## [0.0.24] - 2024-05-29 ### Added diff --git a/examples/websocket-server/README.md b/examples/websocket-server/README.md new file mode 100644 index 000000000..56b300e82 --- /dev/null +++ b/examples/websocket-server/README.md @@ -0,0 +1,27 @@ +# Websocket Server + +This is an example that shows how to use `WebsocketServerTransport` to communicate with a web client. + +## Get started + +```python +python3 -m venv venv +source venv/bin/activate +pip install -r requirements.txt +``` + +## Run the server + +```bash +python server.py +``` + +## Run the HTTP server + +This will host the static web client: + +```bash +python -m http.server +``` + +Then, visit `http://localhost:8000` in your browser to start a session. diff --git a/examples/foundational/websocket-server/frames.proto b/examples/websocket-server/frames.proto similarity index 100% rename from examples/foundational/websocket-server/frames.proto rename to examples/websocket-server/frames.proto diff --git a/examples/foundational/websocket-server/index.html b/examples/websocket-server/index.html similarity index 100% rename from examples/foundational/websocket-server/index.html rename to examples/websocket-server/index.html diff --git a/examples/websocket-server/requirements.txt b/examples/websocket-server/requirements.txt new file mode 100644 index 000000000..77e5b9e91 --- /dev/null +++ b/examples/websocket-server/requirements.txt @@ -0,0 +1,2 @@ +python-dotenv +pipecat-ai[openai,silero,websocket,whisper] diff --git a/examples/foundational/websocket-server/server.py b/examples/websocket-server/server.py similarity index 100% rename from examples/foundational/websocket-server/server.py rename to examples/websocket-server/server.py