Hoppa till innehållet
AI-grafen
E· Universitetai-produktutveckling· ca 60 min· utvecklande· verifierad 2026-09-20

Från prototyp till produkt

Kunna ta en notebook till en tjänst med tester, loggning och evals.

Förkunskaper

Intuition

Notebooken fungerar. Nu ska den köras 10 000 gånger om dagen av folk som inte är du. Skillnaden:

PrototypProdukt
celler i ordningmoduler: data.py, model.py, service.py med funktioner utan sidoeffekter
hårdkodade sökvägar och nycklarkonfiguration via miljö/fil, hemligheter utanför koden
«det funkade när jag körde»tester + eval-harness som körs i CI vid varje ändring
printstrukturerad loggning med request-id, utan personuppgifter
ett anropAPI med validering, timeout, felkoder, kvoter
bästa falletdegraderade lägen när modellen/leverantören är nere
«modellen»versionerad artefakt med data-hash och eval-resultat

Gör det i den ordningen. Tester och evals först — de betalar sig vid första ändringen.

Kod

projekt/
├── src/svc/
│   ├── config.py      # pydantic-settings: MODEL_PATH, LLM_URL, LOG_LEVEL …
│   ├── data.py        # load/clean — rena funktioner
│   ├── model.py       # predict(text) -> Out ; laddas en gång
│   ├── service.py     # FastAPI: /healthz, /v1/predict, felhantering
│   └── log.py         # json-loggning med request_id
├── tests/             # pytest: data, model, API (httpx.AsyncClient(app=app))
├── evals/cases.jsonl  # harness; tröskel i CI
├── Dockerfile
├── requirements.txt   # låsta versioner
└── .github/workflows/ci.yml   # lint → test → eval → build
# config.py
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
    model_path: str = "artifacts/model-v3.pkl"
    llm_url: str
    llm_timeout_s: float = 20
    daily_budget_sek: float = 100
settings = Settings()   # läser miljövariabler; saknas llm_url → tydligt fel vid start, inte vid första anropet

Behärskning innebär

  • Bryter ut en notebook till moduler med tester
  • Lägger till loggning, konfiguration och evals i CI
  • Identifierar vad som skiljer en demo från något som kan drivas

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser