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
- EBygg en eval-harnesskrävs
- EBygga ett API med FastAPIkrävs
Intuition
Notebooken fungerar. Nu ska den köras 10 000 gånger om dagen av folk som inte är du. Skillnaden:
| Prototyp | Produkt |
|---|---|
| celler i ordning | moduler: data.py, model.py, service.py med funktioner utan sidoeffekter |
| hårdkodade sökvägar och nycklar | konfiguration 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 |
| strukturerad loggning med request-id, utan personuppgifter | |
| ett anrop | API med validering, timeout, felkoder, kvoter |
| bästa fallet | degraderade 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
- Google — Rules of Machine Learning — CC BY 4.0
- The Twelve-Factor App — fri läsning