← Projects ↗05 / 2026.09

MLOPS / PERSONAL PROJECT

MED-RAG Serving Lab

Hyunae ParkPython · HTTP / SSE · GitHub Actions2026.09.10 — 09.14

I implemented version locking, quality gates, request controls and release checks. Select a module for its implementation and code, or an event below for its recorded result.

RECORDED RUNcpu-91fe7e3fc879Windows · Python 3.12.14 · 2026.09.14

01 / System

5 IMPLEMENTED MODULES
MY IMPLEMENTATION / 01

Pin the complete execution context

Model and tokenizer revisions, image digests, and prompt, data and runtime hashes share one manifest. Changed inputs cannot pass as the same candidate.

VERIFIED BEHAVIOR

Prompt/runtime tampering and environment mismatch rejected

manifest.py ↗
14 / 14Rehearsal contracts verified
31Python tests passed
0Inflight requests at end

Real loopback HTTP + fixed synthetic replies.
No model calls or GPU performance measurements.

02 / QUALITY & RELEASE

Candidate comparison

Twelve synthetic questions and fixed answers exercise the checks. Select a cell to inspect its question, answer and failure reasons.

PASS12 / 12

Fixed replies passing the contract

Mechanical contract checks, not model accuracy.

s01PASS

가상 라온센터 자료실 운영 시간은?

RESPONSE UNDER TEST
자료실은 평일 09:00부터 17:00까지 운영합니다. [library.md]
View source context

library.md: 가상 라온센터 자료실은 평일 09:00부터 17:00까지 운영한다.

QUALITY GATEPASS
RAW EVIDENCERecomputed
ARTIFACTPrepared · not deployed

Separate tampering check: an edited summary was blocked before artifact creation.

03 / HTTP REHEARSAL

Requests and injected faults

/metrics ↗

Ten requests went through the real gateway. Four occupied slots triggered a capacity rejection; upstream errors, a truncated stream and a deadline were injected before checking recovery.

Completed 6429 · 1Injected upstream faults 3
RECORDED EVENTVERIFIED

Normal request

Received a complete SSE response and verified its end marker and manifest identity.

ClientGatewayCPU fixture
{
  "id": "normal",
  "stage": "gateway",
  "at_ms": 13.46,
  "http_status": 200,
  "ok": true,
  "error": null,
  "identity_matches": true,
  "expected": {
    "http_status": 200,
    "ok": true,
    "identity_matches": true
  },
  "passed": true
}

T+ marks event order in the run, not model latency or recovery performance.

04 / REPRODUCE

Code and evidence

GitHub Actions ↗

Python 3.11+ · no extra packages

cd med-rag-serving
python -m unittest discover -s tests -v
python -m serving_lab rehearsal --out artifacts/my-run

Choose a new output folder. The local servers stop after verification.

Verified source versions SHA-256
rehearsal.py ↗0a9e0f7397d0932e…
gateway.py ↗0fc8212e735cdf69…
quality.py ↗e60bc77db12fb913…
release.py ↗73fbbec8d902e8c3…
manifest.py ↗56d798da1a9e73f5…
client.py ↗38c083130bf88080…

Normalized source hashes · full values in the raw JSON

Verified in this run

HTTP/SSE controls, admission limits, normal responses after fault removal, quality/tamper gates and /metrics counters.

Still requires measurement

GPU inference and model quality, throughput/latency improvements, Prometheus alert firing and live rollout/rollback.

Contact

hyunaeee@gmail.com ↗

South Korea · Korean / English

Portfolio PDF

A casebook with roles, engineering decisions, evidence, and source links.

Choose “Save as PDF” in the print dialog.