-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.multi-instance.example.yaml
More file actions
133 lines (127 loc) · 3.93 KB
/
Copy pathconfig.multi-instance.example.yaml
File metadata and controls
133 lines (127 loc) · 3.93 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Example: multi-key credential pool vs. multiple backend *instances*.
#
# This file is an upstream-credential layout example. It binds loopback (127.0.0.1:8080) so it
# passes `lipstd check-config` as-is; the focus is the `plugins.backends` credential-pool vs.
# multiple-instance layout below.
#
# For a non-loopback (all-interfaces) production deployment, build out from this baseline by setting:
# - server.address to a non-loopback bind (e.g. ":8080")
# - access.mode: multi_user with authentication (auth.handler + required_level beyond none; see
# config/config.yaml commented scenarios), and start serve with `lipstd serve --multi-user`
# - diagnostics.shared_secret (>=12 chars), since protected diagnostics surfaces on a non-loopback
# bind require it
#
# - One runtime backend `id` is one upstream deployment (same adapter + base URL + parameters).
# Multiple API keys for that same target go in `api_key` + `api_keys` (ordered pool), not in
# extra backend rows. Numbered env vars (`OPENAI_API_KEY`, `OPENAI_API_KEY_2`, …) also map to
# a single default pool when YAML omits credentials (Anthropic/Gemini use the same
# numbered-env pattern with their respective prefixes).
# - Use a second backend row with a distinct `id` only for a genuinely separate deployment
# (e.g. different `base_url`, region, or provider account), not for each spare API key.
# Copy/adapt for your environment; do not commit real secrets.
server:
address: "127.0.0.1:8080"
logging:
level: info
format: json
access_log: false
diagnostics:
enabled: true
routing:
max_attempts: 3
# Selectors use runtime instance ids (not factory kind alone).
default_route: "openai-primary:gpt-4o-mini"
continuity:
in_memory: true
store: memory
hooks:
tool_reactor_error_policy: fail_open
plugins:
frontends:
- id: openai-responses
enabled: true
config: {}
- id: openai-legacy
enabled: true
config: {}
- id: anthropic
enabled: true
config: {}
- id: gemini
enabled: true
config: {}
backends:
# Focus of this example: two openai-responses *instances* — one with an ordered
# api_key/api_keys pool for a single deployment, one targeting a separate upstream.
- kind: openai-responses
id: openai-primary
enabled: true
config:
# Ordered pool for one OpenAI deployment (same base_url default).
api_key: ${OPENAI_API_KEY_PRIMARY}
api_keys:
- ${OPENAI_API_KEY_SECONDARY}
- kind: openai-responses
id: openai-corporate-proxy
enabled: true
config:
# Second *instance*: different upstream target (example: tenant-specific gateway).
base_url: https://openai-gateway.example.corp/v1
api_key: ${OPENAI_API_KEY_CORP_GATEWAY}
# Mandatory standard backend registrations (disabled; present so this file passes
# `lipstd check-config` like the other config/examples/*.yaml).
- id: openai-responses
enabled: false
config: {}
- id: openai-legacy
enabled: false
config: {}
- id: anthropic
enabled: false
config: {}
- id: gemini
enabled: false
config: {}
- id: bedrock
enabled: false
config: {}
- id: acp
enabled: false
config: {}
- id: openrouter
enabled: false
config: {}
- id: nvidia
enabled: false
config: {}
- id: opencode-go
enabled: false
config: {}
- id: opencode-zen
enabled: false
config: {}
- id: ollama
enabled: false
config: {}
- id: ollama-cloud
enabled: false
config: {}
- id: llamacpp
enabled: false
config: {}
- id: lmstudio
enabled: false
config: {}
- id: vllm
enabled: false
config: {}
features:
- id: submit-noop
enabled: true
config: {}
- id: parts-noop
enabled: true
config: {}
- id: tool-reactor-noop
enabled: true
config: {}