Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0509ebd597 |
@@ -56,43 +56,6 @@ 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).
|
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
|
## Czego to nie załatwia
|
||||||
- **Brak TLS** — Basic Auth idzie po sieci w postaci łatwej do podsłuchania. Przy
|
- **Brak TLS** — Basic Auth idzie po sieci w postaci łatwej do podsłuchania. Przy
|
||||||
niezaufanej sieci potrzebny ingress z certyfikatem.
|
niezaufanej sieci potrzebny ingress z certyfikatem.
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ resources:
|
|||||||
- presentation.yaml
|
- presentation.yaml
|
||||||
images:
|
images:
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-data
|
- name: gitea.czernobog.pl/gitea/astrololo-data
|
||||||
newTag: 752f477a
|
newTag: de5d5895
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-logic
|
- name: gitea.czernobog.pl/gitea/astrololo-logic
|
||||||
newTag: 4ef90b30
|
newTag: 6f87b2b3
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-presentation
|
- name: gitea.czernobog.pl/gitea/astrololo-presentation
|
||||||
newTag: 4ef90b30
|
newTag: 6f87b2b3
|
||||||
|
|||||||
@@ -26,30 +26,6 @@ spec:
|
|||||||
- name: INTERNAL_TOKEN
|
- name: INTERNAL_TOKEN
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef: { name: astrololo-auth, key: INTERNAL_TOKEN }
|
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:
|
resources:
|
||||||
requests: { cpu: "100m", memory: "128Mi" }
|
requests: { cpu: "100m", memory: "128Mi" }
|
||||||
limits: { cpu: "500m", memory: "512Mi" }
|
limits: { cpu: "500m", memory: "512Mi" }
|
||||||
|
|||||||
Reference in New Issue
Block a user