feat(astrololo): klucze do modeli w chmurze + konfiguracja modelu lokalnego
Domyslnie dziala model LOKALNY i nic nie opuszcza sieci. Zeby dalo sie wybrac w UI OpenAI albo Anthropic, logika potrzebuje ich kluczy. - LLM_PROVIDER=local, LOCAL_BASE_URL, LOCAL_MODEL, LLM_TIMEOUT, LLM_MAX_TOKENS jawnie (nie sa tajne), - OPENAI_API_KEY i ANTHROPIC_API_KEY z osobnego sekretu `astrololo-llm`. Sekret jest OPCJONALNY (optional: true) — inaczej niz `astrololo-auth`. Auth to zabezpieczenie i ma zatrzymac pody, gdy go brak; klucze do chmury to funkcja, wiec ich brak nie moze wywracac wdrozenia. Bez nich pody startuja normalnie, tylko chmura jest niedostepna. Osobny sekret, a nie doklejenie do astrololo-auth, zeby klucze LLM dalo sie wymieniac bez dotykania hasla i tokenu miedzywarstwowego. Zwalidowane kubectl kustomize; w wyniku nadal zadnego `kind: Secret`. Instrukcja tworzenia i podmiany kluczy w astrololo/README.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -56,6 +56,43 @@ curl -s -o /dev/null -w "z hasłem: %{http_code}\n" -u astrololo:'<hasło>' http
|
||||
```
|
||||
Oczekiwane: **401** bez hasła, **200** z hasłem. `/health` zostaje publiczny (sondy k8s).
|
||||
|
||||
## Klucze do modeli w chmurze — sekret `astrololo-llm` (opcjonalny)
|
||||
|
||||
Domyślnie działa **model lokalny** i nic nie opuszcza sieci. Żeby móc wybrać w UI
|
||||
OpenAI lub Anthropic, potrzebne są ich klucze. Ten sekret jest **opcjonalny**
|
||||
(`optional: true`) — bez niego pody startują normalnie, tylko chmura jest niedostępna.
|
||||
|
||||
```bash
|
||||
read -rs -p "OPENAI_API_KEY (Enter = pomiń): " OPENAI_KEY; echo
|
||||
read -rs -p "ANTHROPIC_API_KEY (Enter = pomiń): " ANTHROPIC_KEY; echo
|
||||
|
||||
kubectl -n astrololo create secret generic astrololo-llm \
|
||||
--from-literal=OPENAI_API_KEY="$OPENAI_KEY" \
|
||||
--from-literal=ANTHROPIC_API_KEY="$ANTHROPIC_KEY"
|
||||
|
||||
unset OPENAI_KEY ANTHROPIC_KEY
|
||||
kubectl -n astrololo rollout restart deploy/logic # klucze wstrzykują się przy starcie
|
||||
```
|
||||
|
||||
Podmiana pojedynczego klucza (bez kasowania drugiego):
|
||||
```bash
|
||||
kubectl -n astrololo create secret generic astrololo-llm \
|
||||
--from-literal=OPENAI_API_KEY="$(kubectl -n astrololo get secret astrololo-llm \
|
||||
-o jsonpath='{.data.OPENAI_API_KEY}' | base64 -d)" \
|
||||
--from-literal=ANTHROPIC_API_KEY='NOWY-KLUCZ' \
|
||||
--dry-run=client -o yaml | kubectl apply -f -
|
||||
kubectl -n astrololo rollout restart deploy/logic
|
||||
```
|
||||
|
||||
**Adres modelu lokalnego** ustawia `LOCAL_BASE_URL` w `logic.yaml` — dopasuj do miejsca,
|
||||
gdzie faktycznie stoi Ollama/vLLM. Konfiguracja jest **per dostawca**
|
||||
(`LOCAL_*`, `OPENAI_*`, `ANTHROPIC_*`), więc ustawienia lokalnego modelu nie przejmują
|
||||
żądań do chmury.
|
||||
|
||||
> Wybór dostawcy w chmurze oznacza, że **oryginalne opisy z baz opuszczają naszą sieć**.
|
||||
> Prompt można obejrzeć przed wysłaniem. Warto zawnioskować u dostawcy o Zero Data
|
||||
> Retention — patrz LOG-32.
|
||||
|
||||
## Czego to nie załatwia
|
||||
- **Brak TLS** — Basic Auth idzie po sieci w postaci łatwej do podsłuchania. Przy
|
||||
niezaufanej sieci potrzebny ingress z certyfikatem.
|
||||
|
||||
Reference in New Issue
Block a user