feat: OPAX heavy mode + LLM-ruting oppdatert + RAG serverless fix\n\n- MASTERPLAN.md: ny LLM-RUTINGSSTRATEGI-seksjon med OPAX Heavy Mode\n- masterplan-summary.md: oppdatert med heavy mode-referanser\n- setup_corpus.py: fjernet backend_config (Serverless mode, ingen Spanner)\n- sesjon-logg: 2026-05-24_opax-heavy-mode-llm-ruting-rag.md
This commit is contained in:
parent
0248081b83
commit
09dcb4d1a2
|
|
@ -309,48 +309,76 @@ Terraform-ressurser:
|
||||||
|
|
||||||
## LLM-RUTINGSSTRATEGI
|
## LLM-RUTINGSSTRATEGI
|
||||||
|
|
||||||
**Prinsipp: Lett modell i front, tung modell ved behov i bakkant — vurdert per modul og kost.**
|
**Prinsipp:** Lett modell i front, tung modell ved behov i bakkant - vurdert per modul og kost.
|
||||||
|
|
||||||
| Modell | Pris input/output (per 1M) | EU-tilgang | Bruksomrade |
|
| Modell | Pris input/output (per 1M) | EU-tilgang | Bruksomrade |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| `gemini-2.0-flash` | $0.10 / $0.40 | Ja (europe-west4) | Standard — alle enkle kall |
|
| `gemini-2.0-flash` | $0.10 / $0.40 | Ja (europe-west4) | Standard - alle enkle kall |
|
||||||
| `gemini-2.5-pro` | $1.25 / $10.00 | Ja (europe-west4) | Kompleks reasoning, compliance |
|
| `gemini-2.5-pro` | $1.25 / $10.00 | Ja (europe-west4) | Kompleks reasoning, compliance, OPAX heavy |
|
||||||
| `gemini-3.5-flash` | $1.50 / $9.00 | Nei (kun US/global) | Tung orkestrering, Fase C |
|
| `gemini-3.5-flash` | $1.50 / $9.00 | Nei (kun US/global) | Tung orkestrering, Fase C, OPAX heavy reasoning |
|
||||||
|
|
||||||
**Rutetabell per modul:**
|
**Rutetabell per modul:**
|
||||||
|
|
||||||
| Modul / Agent | Standard modell | Eskalering til | Trigger |
|
| Modul / Agent | Standard modell | Eskalering til | Trigger |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| OPAX billing-agent | `gemini-2.0-flash` | — | Aldri — strukturert data |
|
| OPAX billing-agent (standard) | `gemini-2.0-flash` | - | Aldri - strukturert data |
|
||||||
|
| **OPAX billing-agent (heavy)** | **`gemini-2.5-pro`** | **`gemini-3.5-flash`** | **`mode: heavy` - komplekse prosjekter / multi-agent** |
|
||||||
| RAG retrieval + svar | `gemini-2.0-flash` | `gemini-2.5-pro` | Komplekse flertrinns-sporsmal |
|
| RAG retrieval + svar | `gemini-2.0-flash` | `gemini-2.5-pro` | Komplekse flertrinns-sporsmal |
|
||||||
| Memory Bank oppslag | `gemini-2.0-flash` | — | Aldri — faktahenting |
|
| Memory Bank oppslag | `gemini-2.0-flash` | - | Aldri - faktahenting |
|
||||||
| TUI-cockpit (operator) | `gemini-2.0-flash` | `gemini-3.5-flash` | Bruker ber om dyp analyse |
|
| TUI-cockpit (operator) | `gemini-2.0-flash` | `gemini-3.5-flash` | Bruker ber om dyp analyse |
|
||||||
| vauco-os (kundeflate) | `gemini-2.0-flash` | `gemini-2.5-pro` | Compliance/kliniske sporsmal |
|
| vauco-os (kundeflate) | `gemini-2.0-flash` | `gemini-2.5-pro` | Compliance/kliniske sporsmal |
|
||||||
| **Dialogflow CX Playbooks** | **Gemini (managed)** | — | **Native i plattformen** |
|
| **Dialogflow CX Playbooks** | **Gemini (managed)** | - | **Native i plattformen** |
|
||||||
| Fase C: Terraform-gen | `gemini-3.5-flash` | — | Standard for denne modulen |
|
| Fase C: Terraform-gen | `gemini-3.5-flash` | - | Standard for denne modulen |
|
||||||
| Fase C: Kunde-onboarding | `gemini-2.5-pro` | `gemini-3.5-flash` | Multi-step orkestrering |
|
| Fase C: Kunde-onboarding | `gemini-2.5-pro` | `gemini-3.5-flash` | Multi-step orkestrering |
|
||||||
|
|
||||||
**Konfigurasjon i `.env`:**
|
### OPAX Heavy Mode
|
||||||
|
|
||||||
|
OPAX aktiverer `mode: heavy` per request naar prosjektet krever det.
|
||||||
|
Bruksomrader: kompleks multi-agent analyse, Terraform-generering, kunde-onboarding, dype flertrinns-sporsmal.
|
||||||
|
|
||||||
|
**Request-format:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message": "...",
|
||||||
|
"user_id": "opax",
|
||||||
|
"session_id": "opax-proj-001",
|
||||||
|
"mode": "heavy"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Modellfordeling i heavy-modus (OPAX):**
|
||||||
|
|
||||||
|
| Parameter | Standard | Heavy (OPAX) |
|
||||||
|
|---|---|---|
|
||||||
|
| Orchestrator | `gemini-2.0-flash` | `gemini-2.5-pro` |
|
||||||
|
| Sub-agenter | `gemini-2.0-flash` | `gemini-2.5-pro` |
|
||||||
|
| Reasoning | `gemini-2.0-flash` | `gemini-3.5-flash` |
|
||||||
|
| Multi-agent pipeline | Nei | Ja (research, compliance, billing sub-agenter) |
|
||||||
|
| Budsjettgrense | $3/dag per traad | $10/dag (eller per-prosjekt-budsjett) |
|
||||||
|
|
||||||
|
**Autoriserte brukere for heavy mode:** `opax`, `admin`
|
||||||
|
- Andre brukere faar HTTP 403 ved forsok paa `mode: heavy`
|
||||||
|
- Hard stopp: $1 per oppgave (standard) / $3 per oppgave (heavy)
|
||||||
|
|
||||||
|
**Implementasjon (`agent.py` / `config.py`):**
|
||||||
|
```python
|
||||||
|
HEAVY_MODE_ALLOWED_USERS = ["opax", "admin"]
|
||||||
|
|
||||||
|
def get_models_for_mode(mode: str) -> dict:
|
||||||
|
if mode == "heavy":
|
||||||
|
return {"orchestrator": "gemini-2.5-pro", "subagent": "gemini-2.5-pro", "reasoning": "gemini-3.5-flash"}
|
||||||
|
return {"orchestrator": "gemini-2.0-flash", "subagent": "gemini-2.0-flash", "reasoning": "gemini-2.0-flash"}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Konfigurasjon i `.env`:**
|
||||||
```env
|
```env
|
||||||
ORCHESTRATOR_MODEL=gemini-2.0-flash
|
ORCHESTRATOR_MODEL=gemini-2.0-flash
|
||||||
SUBAGENT_MODEL=gemini-2.0-flash
|
SUBAGENT_MODEL=gemini-2.0-flash
|
||||||
REASONING_MODEL=gemini-3.5-flash
|
REASONING_MODEL=gemini-3.5-flash
|
||||||
|
HEAVY_ORCHESTRATOR_MODEL=gemini-2.5-pro
|
||||||
|
HEAVY_SUBAGENT_MODEL=gemini-2.5-pro
|
||||||
|
HEAVY_REASONING_MODEL=gemini-3.5-flash
|
||||||
|
HEAVY_MODE_BUDGET_USD_PER_DAY=10.0
|
||||||
```
|
```
|
||||||
|
|
||||||
**Regionsstatus (mai 2026):**
|
|
||||||
- `gemini-2.0-flash` + `gemini-2.5-pro` tilgjengelig `europe-west4` ok
|
|
||||||
- `gemini-3.5-flash` kun `us-central1` / global endpoint
|
|
||||||
- Navarende prosjektregion: `us-central1` — dekker alle modeller ok
|
|
||||||
|
|
||||||
**Kostnadsestimat med ruting:**
|
|
||||||
|
|
||||||
| Scenario | Uten ruting (3.5 Flash alt) | Med ruting | Besparelse |
|
|
||||||
|---|---|---|---|
|
|
||||||
| Dev daglig | ~$15-30/mnd | ~$1-5/mnd | ~85% |
|
|
||||||
| 1 kunde prod | ~$60-120/mnd | ~$8-20/mnd | ~85% |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
*OSVauco-NMTMD-GCOS | propane-will-491900-m5 | us-central1*
|
|
||||||
*GitHub: chrischristiansen-glitch/OSVauco*
|
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,6 @@ def main():
|
||||||
print(f"Creating RAG corpus '{CORPUS_DISPLAY_NAME}' in {LOCATION}...")
|
print(f"Creating RAG corpus '{CORPUS_DISPLAY_NAME}' in {LOCATION}...")
|
||||||
corpus = rag.create_corpus(
|
corpus = rag.create_corpus(
|
||||||
display_name=CORPUS_DISPLAY_NAME,
|
display_name=CORPUS_DISPLAY_NAME,
|
||||||
backend_config=rag.RagVectorDbConfig(
|
|
||||||
rag_embedding_model_config=rag.RagEmbeddingModelConfig(
|
|
||||||
vertex_prediction_endpoint=rag.VertexPredictionEndpoint(
|
|
||||||
publisher_model="publishers/google/models/text-embedding-005"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
print(f"Corpus created: {corpus.name}")
|
print(f"Corpus created: {corpus.name}")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Chris Christiansen er første kunde. Når det virker → selg til andre.
|
||||||
- RAG-region: europe-west4 (Serverless, ingen allowlist)
|
- RAG-region: europe-west4 (Serverless, ingen allowlist)
|
||||||
- Repo: chrischristiansen-glitch/OSVauco
|
- Repo: chrischristiansen-glitch/OSVauco
|
||||||
|
|
||||||
## LLM-rutingsstrategi
|
## LLM-rutingsstrategi (standard: gemini-2.0-flash; heavy mode for OPAX: gemini-2.5-pro + gemini-3.5-flash + multi-agent)
|
||||||
- ORCHESTRATOR_MODEL: gemini-2.0-flash (lett front)
|
- ORCHESTRATOR_MODEL: gemini-2.0-flash (lett front)
|
||||||
- SUBAGENT_MODEL: gemini-2.0-flash
|
- SUBAGENT_MODEL: gemini-2.0-flash
|
||||||
- REASONING_MODEL: gemini-3.5-flash (tung bakkant ved behov)
|
- REASONING_MODEL: gemini-3.5-flash (tung bakkant ved behov)
|
||||||
|
|
@ -58,7 +58,7 @@ Chris Christiansen er første kunde. Når det virker → selg til andre.
|
||||||
|
|
||||||
## Agentidentitet
|
## Agentidentitet
|
||||||
- Eier: chris.christiansen@vauco.no
|
- Eier: chris.christiansen@vauco.no
|
||||||
- Agent (OPAX): jason.vauger@vauco.no (billing.viewer)
|
- Agent (OPAX): jason.vauger@vauco.no (billing.viewer) | Har tilgang til heavy mode (mode: heavy) for komplekse prosjekter og multi-agent pipelines
|
||||||
|
|
||||||
## Kostnader
|
## Kostnader
|
||||||
- Dev daglig (teardown): ~$25–75/mnd
|
- Dev daglig (teardown): ~$25–75/mnd
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
date: 2026-05-24T16:00:00+02:00
|
||||||
|
thread_topic: OPAX heavy mode + LLM-rutingsstrategi + RAG re-indeksering
|
||||||
|
trigger: session-close
|
||||||
|
context_snapshot: >
|
||||||
|
Verifiserte at osvauco-agent svarer korrekt via /run-endepunktet med RAG-henting fra MASTERPLAN.
|
||||||
|
Designet og implementerte OPAX heavy mode (mode: heavy) som gir OPAX tilgang til tyngre modeller
|
||||||
|
(gemini-2.5-pro, gemini-3.5-flash) og multi-agent pipeline ved behov per prosjekt.
|
||||||
|
Oppdaterte MASTERPLAN.md og masterplan-summary.md med ny LLM-rutingsstrategi inkl. heavy mode.
|
||||||
|
Forsoekte RAG re-indeksering men stotet paa Spanner-kapasitetsbegrensning og SDK-versjonsproblem.
|
||||||
|
|
||||||
|
completed_tasks:
|
||||||
|
- Verifisert /run-endepunkt med curl-test mot osvauco-agent (session test-002)
|
||||||
|
- Designet OPAX heavy mode: mode-parameter, modellfordeling, budsjettgrenser, whitelist
|
||||||
|
- Oppdatert MASTERPLAN.md: ny LLM-RUTINGSSTRATEGI-seksjon med OPAX Heavy Mode (linje 309-384)
|
||||||
|
- Oppdatert masterplan-summary.md: LLM-rutingsstrategi-tittel + OPAX heavy mode-notat
|
||||||
|
- Fikset setup_corpus.py: byttet fra Spanner/RagVectorDbConfig til Serverless (ingen backend_config)
|
||||||
|
|
||||||
|
open_tasks:
|
||||||
|
- Kjoere setup_corpus.py paa nytt etter backend_config-fjerning og verifisere RAG-indeksering
|
||||||
|
- Verifisere at agent svarer korrekt paa 'OPAX heavy mode'-sporsmal etter re-indeksering
|
||||||
|
- Implementere mode-parameteret i agent.py / models.py (RunRequest + get_models_for_mode)
|
||||||
|
- Legge til HEAVY_MODE_ALLOWED_USERS-guard i agent.py
|
||||||
|
- Oppdatere .env med HEAVY_*-variabler
|
||||||
|
- Phase 4: Docs hardening (LEARNINGS.md, SECRETS-SETUP.md, IAP-SETUP.md)
|
||||||
|
- Phase 5: IAP paa opax.vauco.no
|
||||||
|
|
||||||
|
decisions:
|
||||||
|
- OPAX faar eksplisitt mode-parameter (standard/heavy) per request - ikke global toggle
|
||||||
|
- Heavy mode autorisert kun for user_id: opax, admin
|
||||||
|
- Budsjettgrense heavy mode: $10/dag (vs $3/dag standard), hard stopp $3 per oppgave
|
||||||
|
- RAG Engine: Serverless mode (ingen backend_config) erstatter Spanner - unngaar allowlist-krav
|
||||||
|
- Primaeregion forblir us-central1 for aa dekke alle modeller inkl. gemini-3.5-flash
|
||||||
|
- us-east1 droppes som region for RAG (Spanner-kapasitetsproblem)
|
||||||
|
|
||||||
|
skills_used:
|
||||||
|
- Python linje-for-linje filoppdatering via Cloud Shell
|
||||||
|
- Vertex AI RAG Engine API (RagVectorDbConfig, Serverless mode)
|
||||||
|
- Cloud Run /run endpoint curl-testing
|
||||||
|
- MASTERPLAN.md-arkitektur og dokumentasjon
|
||||||
|
|
||||||
|
next_action: >
|
||||||
|
Kjore python3 agents/rag/setup_corpus.py (etter backend_config-fjerning) og verifisere
|
||||||
|
at RAG returnerer korrekt svar paa 'Hva er OPAX heavy mode?'.
|
||||||
|
Deretter implementere mode-parameter i agent.py.
|
||||||
|
|
@ -4,3 +4,4 @@
|
||||||
|------|------|-----|
|
|------|------|-----|
|
||||||
| 2026-05-21 | OSVauco/OPAX platform bootstrap — naming, domenekonvensjon, Nemotron TODO | [2026-05-21_osvauco-opax-platform-naming-domains.md](./2026-05-21_osvauco-opax-platform-naming-domains.md) |
|
| 2026-05-21 | OSVauco/OPAX platform bootstrap — naming, domenekonvensjon, Nemotron TODO | [2026-05-21_osvauco-opax-platform-naming-domains.md](./2026-05-21_osvauco-opax-platform-naming-domains.md) |
|
||||||
| 2026-05-22 | osv-startup.ps1 — banner design, farger, prompt og gcloud-fix | [2026-05-22_osv-startup-banner-styling.md](./2026-05-22_osv-startup-banner-styling.md) |
|
| 2026-05-22 | osv-startup.ps1 — banner design, farger, prompt og gcloud-fix | [2026-05-22_osv-startup-banner-styling.md](./2026-05-22_osv-startup-banner-styling.md) |
|
||||||
|
| 2026-05-24 | OPAX heavy mode + LLM-ruting + RAG re-indeksering | [2026-05-24_opax-heavy-mode-llm-ruting-rag.md](2026-05-24_opax-heavy-mode-llm-ruting-rag.md) |
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user