feat: document cf_text and cf_voice as trunk service backends in llm.yaml.example #53

Closed
opened 2026-04-20 10:56:39 -07:00 by pyr0ball · 0 comments
Owner

Summary

Add cf_text and cf_voice as example openai_compat backends in llm.yaml.example, showing the cf_orch allocation block pattern. This makes them first-class trunk services in The Orchard — products declare "allocate cf-text through the broker" the same way they declare any other backend.

Background

cf-vision already has its own vision_service backend type in the LLM router. cf-text and cf-voice use the standard openai_compat path (cf-text already exposes /v1/chat/completions), so they do not need a new router type — only an example config showing the cf_orch block pattern.

The architectural boundary:

  • cf-core owns the trunks: direct wiring to specific services (ollama, vllm, cf-text, cf-voice, cf-vision)
  • cf-orch owns the full tree: branch routing, leaf model registration (catalog entries in node profiles), bench-driven leaf selection

Done

  • peregrine/config/llm.yaml.example — added cf_text and cf_voice trunk backends (acc04b0)
  • snipe/config/llm.yaml.example — added cf_text trunk backend (2e0a49b)

Remaining

  • Add cf_text / cf_voice to any other product llm.yaml.example files as they are created
  • Confirm cf_voice trunk backend pattern once cf-voice exposes an OpenAI-compat /v1/chat/completions endpoint
  • Update cf-core llm/router.py module-level docstring to name cf-text and cf-voice as supported trunk service types
## Summary Add `cf_text` and `cf_voice` as example `openai_compat` backends in `llm.yaml.example`, showing the `cf_orch` allocation block pattern. This makes them first-class trunk services in The Orchard — products declare "allocate cf-text through the broker" the same way they declare any other backend. ## Background cf-vision already has its own `vision_service` backend type in the LLM router. cf-text and cf-voice use the standard `openai_compat` path (cf-text already exposes `/v1/chat/completions`), so they do not need a new router type — only an example config showing the `cf_orch` block pattern. The architectural boundary: - **cf-core** owns the trunks: direct wiring to specific services (ollama, vllm, cf-text, cf-voice, cf-vision) - **cf-orch** owns the full tree: branch routing, leaf model registration (catalog entries in node profiles), bench-driven leaf selection ## Done - [x] `peregrine/config/llm.yaml.example` — added `cf_text` and `cf_voice` trunk backends (acc04b0) - [x] `snipe/config/llm.yaml.example` — added `cf_text` trunk backend (2e0a49b) ## Remaining - [ ] Add `cf_text` / `cf_voice` to any other product `llm.yaml.example` files as they are created - [ ] Confirm `cf_voice` trunk backend pattern once cf-voice exposes an OpenAI-compat `/v1/chat/completions` endpoint - [ ] Update cf-core `llm/router.py` module-level docstring to name cf-text and cf-voice as supported trunk service types
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/circuitforge-core#53
No description provided.