fix: upgrade model claude-opus-4-6 → claude-opus-4-7, add 2500 NOK budget cap

This commit is contained in:
chrischristiansen-glitch 2026-05-31 12:58:11 +02:00
parent e2c2b0449b
commit d44d6a11a7

View File

@ -1,6 +1,6 @@
# GEMINI.md — OSVauco / OPAX
> Claude Opus 4.6 · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe
> Claude Opus 4.7 · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe
---
@ -16,8 +16,10 @@ GCP_REGION: europe-west1
GCP_VERTEX_LOC: eu
CLOUD_RUN_SVC: osvauco-agent
ARTIFACT_REPO: gcr.io/propane-will-491900-m5
MODEL: claude-opus-4-6@20260301
MODEL: claude-opus-4-7@20260301
MODEL_PROVIDER: Vertex AI (Anthropic Claude via Google Cloud)
MODEL_COST: ~2 NOK per 1M tokens (input)
BUDGET_CAP: 2500 NOK intern grense — spør Chris om +1000 NOK ved behov
OPERATOR: Chris Christiansen (chris.christiansen@vauco.no)
OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco
```
@ -26,13 +28,14 @@ OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco
---
## Modell: Claude Opus 4.6 via Vertex AI
## Modell: Claude Opus 4.7 via Vertex AI
Denne agenten kjøres med **Claude Opus 4.6** tilgjengelig via Vertex AI EU multi-region endpoint.
Denne agenten kjøres med **Claude Opus 4.7** tilgjengelig via Vertex AI EU multi-region endpoint.
- Data forblir innenfor EU-grensen (GDPR-compliant) [cite:76]
- Data forblir innenfor EU-grensen (GDPR-compliant)
- Ingen separat Anthropic API-nøkkel — billing via eksisterende GCP-konto
- EU endpoint auto-routes internt mellom europeiske regioner for kapasitet
- Intern budsjett-cap: **2 500 NOK** — ved behov for mer, spør Chris eksplisitt om +1 000 NOK
```python
# Korrekt initialisering
@ -44,16 +47,13 @@ client = anthropic.AnthropicVertex(
)
response = client.messages.create(
model="claude-opus-4-6@20260301",
model="claude-opus-4-7@20260301",
max_tokens=8192,
messages=[{"role": "user", "content": "..."}]
)
```
```bash
# Aktiver model i Vertex AI Model Garden (kun første gang)
# Console → Vertex AI → Model Garden → søk "Claude Opus" → Enable
# Auth
gcloud auth application-default login --project=propane-will-491900-m5
```
@ -151,12 +151,10 @@ NÅR noe feiler:
NÅR du er usikker på state:
```bash
# Sjekk hva som faktisk kjører
gcloud run services describe $CLOUD_RUN_SVC \
--project=$GCP_PROJECT --region=$GCP_REGION \
--format="yaml(status,spec.template.spec.containers)"
# Sjekk siste image som ble bygget
gcloud artifacts docker images list \
gcr.io/$GCP_PROJECT/osvauco-agent \
--project=$GCP_PROJECT \
@ -183,17 +181,15 @@ gcloud artifacts docker images list \
Etter enhver endring:
```bash
# Bekreft at ny revisjon er aktiv
gcloud run revisions list \
--service=$CLOUD_RUN_SVC \
--project=$GCP_PROJECT \
--region=$GCP_REGION \
--limit=3
# Bekreft at endepunktet svarer
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
https://osvauco-agent-357036551735.us-central1.run.app/health
https://opax.vauco.no/health
```
### Regel 5: Bruk strukturerte observasjoner
@ -212,7 +208,7 @@ VERIFY: [kommando for å bekrefte fix]
### BOOT
- Read `docs/AGENT_RULEBOOK.md`, `docs/VAUCO_OS_ROADMAP.md`, and `docs/OSVAUCO_OPAX_SESSION_LOG.md`.
- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `OPERATOR`).
- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `BUDGET_CAP`, `OPERATOR`).
- Print the last `## NESTE OPPGAVE` block found in the session log.
- If no NESTE OPPGAVE found → warn and read ROADMAP NOW section instead.
- Sjekk gjeldende GCP auth: `gcloud auth list` og `gcloud config get-value project`
@ -250,7 +246,6 @@ VERIFY: [kommando for å bekrefte fix]
### NEXT
- At the next session start, read `## NESTE OPPGAVE` before doing anything else.
- The boot script reads the last NESTE OPPGAVE automatically — keep it updated.
---
@ -261,13 +256,14 @@ VERIFY: [kommando for å bekrefte fix]
3. **Never batch unrelated edits** in a single EXECUTE step.
4. **OPAX (`opax.vauco.no`) is management plane only** — it never receives raw patient data.
5. **Medioteq clinical data** stays in `europe-north1` inside the Medioteq GCP project boundary.
6. **Deploy `clinical-mcp` and `clinical-orchestrator`** to the Medioteq project (`--project=<MEDIOTEQ_PROJECT_ID>`), never the Vauco project.
6. **Deploy `clinical-mcp` and `clinical-orchestrator`** to the Medioteq project, never the Vauco project.
7. **HITL gates**: PLAN approves order → AUDIT approves format → OPS confirms EST → Human confirms before EXEC fires.
8. **Aldri søk på nett for å diagnostisere feil du kan lese i loggene.**
9. **Aldri anta at noe virker — verifiser alltid med en faktisk kommando.**
10. **Aldri gjett på koden — les den.** Du er i repoet. Bruk `cat`, `grep`, `git diff`.
11. **Aldri skriv .env fra .env.example** — se Kritiske fil-sikkerhetsregler.
12. **Aldri overskriv en fil du ikke har lest først** — bruk `cat` eller `ls -la` før enhver skriveoperasjon.
13. **Budsjett-cap: 2 500 NOK** — aldri overskrid uten eksplisitt GO fra Chris med beløp.
---
@ -325,9 +321,9 @@ gcloud iap web get-iam-policy \
### 🔴 Claude / Vertex AI-feil
```bash
# Test Claude Opus 4.6 via Vertex EU endpoint
# Test Claude Opus 4.7 via Vertex EU endpoint
curl -X POST \
"https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-6@20260301:rawPredict" \
"https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-7@20260301:rawPredict" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
@ -354,32 +350,6 @@ find ~ -name ".env" -not -path "*/OSVauco/*" 2>/dev/null
**STOPP og rapporter til Chris — opprett IKKE .env fra .env.example.**
### Prioritert diagnose-rekkefølge
```
FEIL OPPDAGET
1. Les loggene (build / runtime / HTTP response)
2. Identifiser hvilken linje/steg som feilet
3. Les den aktuelle filen i repoet
4. Formuler rot-årsak med OBSERVASJON/ROT-ÅRSAK/FIX
5. PLAN → HITL → EXECUTE → VERIFY
ALDRI: Søk på nett som første steg
ALDRI: Gjett og prøv uten å lese loggene
ALDRI: Opprett .env fra template
```
### Diagnoseoversikt
| Situasjon | Gjør DETTE | IKKE dette |
@ -398,20 +368,14 @@ ALDRI: Opprett .env fra template
## GCP-konvensjoner for dette prosjektet
```bash
# Alltid bruk eksplisitt prosjekt og region
--project=propane-will-491900-m5
--region=europe-west1
# Cloud Run service
CLOUD_RUN_SVC=osvauco-agent
# Artifact Registry
IMAGE=gcr.io/propane-will-491900-m5/osvauco-agent
# Cloud Build
gcloud builds submit --config=cloudbuild.yaml --project=propane-will-491900-m5
# Deploy manuelt
gcloud run deploy osvauco-agent \
--image=$IMAGE:latest \
--project=propane-will-491900-m5 \
@ -435,7 +399,7 @@ Auth: Google OAuth now. BankID on `-os` later (Medioteq first).
## Standard Boot Prompt
Lim inn dette ved start av HVER sesjon i Gemini TUI:
Lim inn dette ved start av HVER sesjon:
```
BOOT: Read docs/AGENT_RULEBOOK.md, docs/VAUCO_OS_ROADMAP.md, docs/OSVAUCO_OPAX_SESSION_LOG.md.