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
|
||||
|
||||
**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 |
|
||||
|---|---|---|---|
|
||||
| `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-3.5-flash` | $1.50 / $9.00 | Nei (kun US/global) | Tung orkestrering, Fase C |
|
||||
| `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, OPAX heavy |
|
||||
| `gemini-3.5-flash` | $1.50 / $9.00 | Nei (kun US/global) | Tung orkestrering, Fase C, OPAX heavy reasoning |
|
||||
|
||||
**Rutetabell per modul:**
|
||||
|
||||
| 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 |
|
||||
| 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 |
|
||||
| vauco-os (kundeflate) | `gemini-2.0-flash` | `gemini-2.5-pro` | Compliance/kliniske sporsmal |
|
||||
| **Dialogflow CX Playbooks** | **Gemini (managed)** | — | **Native i plattformen** |
|
||||
| Fase C: Terraform-gen | `gemini-3.5-flash` | — | Standard for denne modulen |
|
||||
| **Dialogflow CX Playbooks** | **Gemini (managed)** | - | **Native i plattformen** |
|
||||
| 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 |
|
||||
|
||||
**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
|
||||
ORCHESTRATOR_MODEL=gemini-2.0-flash
|
||||
SUBAGENT_MODEL=gemini-2.0-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}...")
|
||||
corpus = rag.create_corpus(
|
||||
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}")
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Chris Christiansen er første kunde. Når det virker → selg til andre.
|
|||
- RAG-region: europe-west4 (Serverless, ingen allowlist)
|
||||
- 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)
|
||||
- SUBAGENT_MODEL: gemini-2.0-flash
|
||||
- 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
|
||||
- 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
|
||||
- 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-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