Repository navigation
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
69 lines (61 loc) · 2.96 KB
/
Copy pathconfig.example.yaml
File metadata and controls
69 lines (61 loc) · 2.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# A minimal, CURRENT busbar config that wires this repo's headroom-hook plugin in as a
# prompt-compression rewrite gate on every pool. Validated against the released busbar 1.5.3
# with `busbar --validate`.
#
# This file used to describe the RETIRED Unix-socket transport (a `hooks.headroom.socket:` block
# pointing at a shared volume, alongside `api_key_env:` and pool members using `target:`). All
# three of those shapes were retired by the 1.5.0 config redesign and busbar 1.5.3 refuses to boot
# a config still carrying them, so the old contents were not merely stale documentation, they were
# an example that could not work. headroom-hook is a dlopen cdylib now: busbar loads it IN-PROCESS
# from `plugins.dir`, there is no hook container and no socket volume.
#
# See README.md "Install and run" for the tarball drop-in, and bench/config.hook.yaml for the
# variant this repo's own benchmark harness feeds to busbar.
listen: "0.0.0.0:8080"
# An identity provider is DEFINED once here and REFERENCED by bare name from auth below; busbar
# 1.5.3 retired the inline module form under `auth.admin_auth:`.
identity-providers:
admin-tokens: { module: admin-tokens, token: { env: BUSBAR_ADMIN_TOKEN } }
auth:
chain: [] # open data-plane relay: fine for a local trial, never for production
admin_auth: [admin-tokens]
# Secret fields are SECRET REFERENCES now, not `<field>_env` scalars.
providers:
anthropic:
api_key: { env: ANTHROPIC_KEY }
models:
claude:
provider: anthropic
max_concurrent: 10
upstream_model: claude-3-5-sonnet-20241022
# A hook instance is DEFINED once here and REFERENCED by bare name from a pool. This replaces both
# the inline hook maps that used to sit under `pools.*.hooks` and the removed top-level
# `global_hooks:` list.
hooks:
busbar-headroom:
module: busbar-headroom
kind: gate
prompt: rw # the rewrite grant
timeout_ms: 25
on_error: nothing # a broken compressor never touches a request
settings:
target_ratio: 0.5
min_savings_pct: 10
pools:
# `hooks:` here is a RESERVED key, not a pool name: it attaches these hooks to ALL pools, which
# is what "global" means in 1.5.3. Drop it and put `hooks: [busbar-headroom]` inside a single
# pool to compress only that pool's traffic.
hooks: [busbar-headroom]
default:
members:
- model: claude # `model:`, not the retired `target:`
weight: 1
plugins:
enabled: true
dir: /etc/busbar/plugins # or wherever you unpacked the signed tarball
# busbar 1.5.3's own released binaries embed no plugin release public key, so they refuse every
# correctly-signed first-party tarball with "manifest claims first-party publisher 'busbar' but
# this build embeds no busbar release key". Until that is fixed upstream this opt-in is required
# even for a signed release artifact; busbar then logs a per-plugin UNVERIFIED warning.
# See https://github.com/GetBusbar/busbar/issues/50
trust: { allow_unsigned: true }