Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4eed105571 |
@@ -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.
|
||||
|
||||
@@ -26,6 +26,30 @@ spec:
|
||||
- name: INTERNAL_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef: { name: astrololo-auth, key: INTERNAL_TOKEN }
|
||||
|
||||
# --- Model językowy (LOG-31) ---
|
||||
# Domyślnie LOKALNY: prompt niesie oryginalne opisy z baz, więc nic nie
|
||||
# opuszcza sieci. Dostawcę można przełączyć w UI przy pojedynczym żądaniu.
|
||||
- name: LLM_PROVIDER
|
||||
value: "local"
|
||||
- name: LOCAL_BASE_URL
|
||||
value: "http://ollama.ollama.svc.cluster.local:11434/v1"
|
||||
- name: LOCAL_MODEL
|
||||
value: "llama3.1:8b"
|
||||
- name: LLM_TIMEOUT
|
||||
value: "180" # dłuższe horoskopy potrafią trwać
|
||||
- name: LLM_MAX_TOKENS
|
||||
value: "2000"
|
||||
|
||||
# Klucze do chmury — OPCJONALNE (optional: true), bo to funkcja, nie
|
||||
# zabezpieczenie: bez sekretu pody startują normalnie i działa model
|
||||
# lokalny. Wybór chmury w UI oznacza, że treść baz OPUSZCZA naszą sieć.
|
||||
- name: OPENAI_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef: { name: astrololo-llm, key: OPENAI_API_KEY, optional: true }
|
||||
- name: ANTHROPIC_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef: { name: astrololo-llm, key: ANTHROPIC_API_KEY, optional: true }
|
||||
resources:
|
||||
requests: { cpu: "100m", memory: "128Mi" }
|
||||
limits: { cpu: "500m", memory: "512Mi" }
|
||||
|
||||
Reference in New Issue
Block a user