Files
esh-pfi-infrastructure/stacks/lobe-chat/.env.example
T
vh 3d30a6530b feat(lobe-chat): pass every chat-capable model through the picker
Operator: "pass everything through, lobe is a test surface for me." The picker
goes from 11 curated seats to all 25 chat-capable models the gateway serves,
paid passthroughs included.

Membership is derived from LiteLLM's declared `mode` rather than by taste:
chat (15) and completion (1) are in, and the nine GLM/frontier entries whose
mode is unset are chat models in practice. Out: audio_speech (ext-tts, tts-1,
tts-1-hd, gpt-4o-mini-tts), embedding (qwen3-embedding) and rerank (reranker,
reranker-a3-bge-v2-m3) — seven models that cannot answer a chat request at all,
so listing them would recreate the visible-but-dead entry this list just got
fixed for.

Every candidate was probed live from inside the container before being pinned,
which corrected an earlier claim in this file. char-rp and char-rp-reasoning
are NOT retired: they are configured and their upstream seat (ana-ml2:8016) is
refusing connections while under maintenance, which is a 500, not a 400. Both
are retained deliberately — dropping a name because its seat is bouncing makes
the list rot in the other direction. Only char-rp-fable is genuinely gone (400,
absent from model_info). The comment now spells out the 400-vs-500 distinction
so the next editor does not repeat the mistake.

Also corrects the credential-posture header, which still described the key as
scoped to free local models and cited the glm/kimi rejection as current
verification. The key now carries the all-proxy-models access group with no
budget ceiling, so that block had become a false security claim in the most
load-bearing comment in the file.
2026-08-21 08:11:17 -07:00

19 lines
1.4 KiB
Bash

# lobe-chat on esh-docker-vm. Real .env lives on the host and is NEVER committed.
# Populate from the vault:
# secret get esh-docker-vm/lobe-chat-litellm-key -> OPENAI_API_KEY
# secret get esh-docker-vm/lobe-chat-access-code -> ACCESS_CODE
# secret get esh-docker-vm/lobe-chat-key-vaults-secret -> KEY_VAULTS_SECRET
LOBE_PORT=3210
OPENAI_PROXY_URL=http://10.250.50.70:4000/v1
OPENAI_API_KEY=
ACCESS_CODE=
KEY_VAULTS_SECRET=
# System-agent background model routing (avoids the gpt-5-mini default 403ing on the scoped key)
SYSTEM_AGENT=topic=openai/summarizer,translation=openai/gen,agentMeta=openai/gen,queryRewrite=openai/summarizer,historyCompress=openai/summarizer,thread=openai/summarizer
# Picker contents. NEVER auto-discovered: -all clears Lobe's built-in OpenAI
# catalogue, then each +name re-adds one, so a seat added to LiteLLM stays
# invisible until it is listed here AND the container is bounced. Keep it to
# LIVE, CHAT-CAPABLE models: a retired name left here becomes a picker entry
# that 400s on click, and TTS/embedding/reranker seats cannot chat at all.
OPENAI_MODEL_LIST=-all,+gen,+gen-reasoning,+sec,+sec-reasoning,+char-rp,+char-rp-reasoning,+summarizer,+summarizer-large,+classifier,+chat-judge,+selene-1-mini-8b,+image-judge,+qwen-image-bench,+coder-fast,+gen-frontier,+gen-frontier-reasoning,+glm-5.2,+glm-5.2-reasoning,+glm-5.1,+glm-5.1-reasoning,+glm-5-turbo,+glm-4.7,+glm-4.5-air,+kimi-k3,+kimi-k3-gen-api