Skip to content

Commit f1cd9a4

Browse files
committed
docs: label voice snippets as fragments + de-age TS-parity wording
Address CodeRabbit on PR #54: - Pipecat and LiveKit code blocks are integration-point fragments (transport, stt, llm, tts, session, agent, ctx are the reader's existing objects). Label both as fragments and point Pipecat at the runnable examples/voice_turn_budget.py (no API key, no network). A full inline voice agent needs a real transport + room creds — that belongs in examples/, not the README. - Drop the aging 'today' / 'no committed roadmap' phrasing; state only that no TypeScript voice adapter ships in this release.
1 parent 75c944e commit f1cd9a4

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,8 @@ task = PipelineTask(
601601
)
602602
```
603603

604+
> **Fragment**`transport`, `stt`, `llm`, `tts`, and `context_aggregator` are your existing Pipecat objects; this shows only where the guard sits in a pipeline you already have. For a complete, runnable demo (no API key, no network), see [`examples/voice_turn_budget.py`](examples/voice_turn_budget.py).
605+
604606
By default a blocked turn pushes a fatal `ErrorFrame` that terminates the
605607
pipeline — the hard-stop every other adapter gives you. Pass an
606608
`on_budget_exceeded` async callback to speak a graceful "wrapping up" line first
@@ -634,6 +636,8 @@ budget.attach(session, agent) # wire reserve / settle / release
634636
await session.start(agent=agent, room=ctx.room)
635637
```
636638

639+
> **Fragment**`session`, `agent`, and `ctx.room` come from your LiveKit agent entrypoint (`JobContext`); this shows only where the guard attaches.
640+
637641
Pass `stt_usd_per_second` / `tts_usd_per_1k_chars` to also meter STT/TTS spend
638642
(often a voice agent's larger bill) via `record_tool`, and an `on_budget_exceeded`
639643
async callback to speak a wrap-up line before a turn ends. See
@@ -660,15 +664,15 @@ adapter set like the Python package.
660664

661665
### TypeScript voice parity
662666

663-
**There is no TypeScript voice adapter today.** The JS package
667+
**This release ships no TypeScript voice adapter.** The JS package
664668
([`js/`](js/)) ships one surface — the Vercel AI SDK middleware — and it is
665669
**text-only**: it guards a wrapped `LanguageModel`, not a running STT → LLM → TTS
666670
session. A voice/telephony builder on a Node stack should either drive the LLM
667671
turn through the Vercel AI middleware and meter STT/TTS spend by hand via
668672
`recordTool`, or run the LLM leg through the **hosted [Floe proxy](#upgrade-to-hosted-floe)**
669673
(un-bypassable, cross-vendor) — or use the Python Pipecat / LiveKit adapters
670-
above, which enforce the whole turn. A native TS Pipecat/LiveKit adapter is **not
671-
yet available**; there is no committed roadmap for one.
674+
above, which enforce the whole turn. No native TypeScript Pipecat/LiveKit voice
675+
adapter ships in this release.
672676

673677
For wiring floe-guard into an existing voice pipeline, see the Floe docs:
674678
**[Add Floe to your existing pipeline](https://floe-labs.gitbook.io/docs/getting-started/integrate-existing-pipeline)**.

0 commit comments

Comments
 (0)