13. raw 데이터 전체 dump
개요
총 21건 raw JSON 응답 + 47라인 docker logs trace 임베드. 모든 항목은 ▶ 클릭으로 펼침/접힘. 상단 "모두 펼치기" 버튼으로 일괄.
KPI 1 — 재무 F1
iter 1 · request_id bc77e2720b464804… · elapsed 27,428.48 ms · HTTP 200
{
"input": "저는 매달 50만원을 저축하고 싶습니다. 1년 후에 여행을 가기 위해 얼마나 저축해야 할까요?",
"expected": "savings_strategy",
"actual": "budget_planning",
"is_correct": false,
"assertion": "exact_match",
"details": {}
}iter 2 · request_id 3304170b93e34054… · elapsed 26,564.46 ms · HTTP 200
{
"input": "저는 매달 50만원을 저축하고 싶습니다. 1년 후에 여행을 가기 위해 얼마나 저축해야 할까요?",
"expected": "savings_strategy",
"actual": "budget_planning",
"is_correct": false,
"assertion": "exact_match",
"details": {}
}iter 3 · request_id 40c61ca9b1174e7a… · elapsed 27,132.32 ms · HTTP 200
{
"input": "저는 매달 50만원을 저축하고 싶습니다. 1년 후에 여행을 가기 위해 얼마나 저축해야 할까요?",
"expected": "savings_strategy",
"actual": "budget_planning",
"is_correct": false,
"assertion": "exact_match",
"details": {}
}KPI 2 — 텍스트 분류
iter 1 · request_id 8116cbd9875646c9… · elapsed 140.71 ms · HTTP 200
{
"input": "내 잔고가 얼마나 되는지 확인해 주세요.",
"expected": "check_balance",
"actual": "check_balance",
"is_correct": true,
"assertion": "exact_match",
"details": {}
}iter 2 · request_id 48e961c96b484b4c… · elapsed 117.28 ms · HTTP 200
{
"input": "내 잔고가 얼마나 되는지 확인해 주세요.",
"expected": "check_balance",
"actual": "check_balance",
"is_correct": true,
"assertion": "exact_match",
"details": {}
}iter 3 · request_id 1a17deb48df94ee3… · elapsed 116.61 ms · HTTP 200
{
"input": "내 잔고가 얼마나 되는지 확인해 주세요.",
"expected": "check_balance",
"actual": "check_balance",
"is_correct": true,
"assertion": "exact_match",
"details": {}
}KPI 3 — BLEU
iter 1 · request_id 2f6dc29a11fe4d8e… · elapsed 871.11 ms · HTTP 200
{"input":"한국에서 주식 투자할 때 세금은 어떻게 되나요?","expected":"한국에서 주식 투자로 얻은 양도소득에 대해서는 2023년 기준으로 20%의 세율이 적용됩니다. 단, 연간 250만 원까지는 비과세 혜택이 주어집니다.","actual":"한국에서 주식 투자로 얻은 양도소득은 기본적으로 22%의 세율이 적용됩니다. 단, 2023년 기준으로 연 5천만 원 이하의 양도소득에 대해서는 특정 세금 면제 조건이 있을 수 있습니다.","is_correct":true,"assertion":"bleu_4","details":{"bleu":0.5803602808713563}}
HTTP 200 · 1.436334siter 2 · request_id d1f8603a38834b6e… · elapsed 853.39 ms · HTTP 200
{"input":"한국에서 주식 투자할 때 세금은 어떻게 되나요?","expected":"한국에서 주식 투자로 얻은 양도소득에 대해서는 2023년 기준으로 20%의 세율이 적용됩니다. 단, 연간 250만 원까지는 비과세 혜택이 주어집니다.","actual":"한국에서 주식 투자로 얻은 양도소득은 기본적으로 22%의 세율이 적용됩니다. 단, 2023년 기준으로 연 5천만 원 이하의 양도소득에 대해서는 특정 세금 면제 조건이 있을 수 있습니다.","is_correct":true,"assertion":"bleu_4","details":{"bleu":0.5803602808713563}}
HTTP 200 · 1.425431siter 3 · request_id e07c59814fb940d4… · elapsed 857.84 ms · HTTP 200
{"input":"한국에서 주식 투자할 때 세금은 어떻게 되나요?","expected":"한국에서 주식 투자로 얻은 양도소득에 대해서는 2023년 기준으로 20%의 세율이 적용됩니다. 단, 연간 250만 원까지는 비과세 혜택이 주어집니다.","actual":"한국에서 주식 투자로 얻은 양도소득은 기본적으로 22%의 세율이 적용됩니다. 단, 2023년 기준으로 연 5천만 원 이하의 양도소득에 대해서는 특정 세금 면제 조건이 있을 수 있습니다.","is_correct":true,"assertion":"bleu_4","details":{"bleu":0.5803602808713563}}
HTTP 200 · 1.460736sKPI 5 — 개인화
iter 1 · request_id 5706ae71d6464582… · elapsed 1.38 ms · HTTP 200
{
"input": {
"age": 25,
"income_band": "mid",
"goals": [
"investment_growth",
"travel"
],
"risk_tolerance": "high"
},
"expected": {},
"actual": {
"score": 0.27888146818833726,
"strategy_scores": {
"basic": 0.19967208455254679,
"rec_driven": 0.2642731304397953,
"engagement_guided": 0.30130615583945874,
"rec_engagement": 0.357522587979313
}
},
"is_correct": false,
"assertion": "llm_rec_match",
"details": {
"score": 0.27888146818833726,
"strategy_scores": {
"basic": 0.19967208455254679,
"rec_driven": 0.2642731304397953,
"engagement_guided": 0.30130615583945874,
"rec_engagement": 0.357522587979313
}
}
}iter 2 · request_id 38afbf02e9a544e1… · elapsed 1.58 ms · HTTP 200
{
"input": {
"age": 25,
"income_band": "mid",
"goals": [
"investment_growth",
"travel"
],
"risk_tolerance": "high"
},
"expected": {},
"actual": {
"score": 0.27888146818833726,
"strategy_scores": {
"basic": 0.19967208455254679,
"rec_driven": 0.2642731304397953,
"engagement_guided": 0.30130615583945874,
"rec_engagement": 0.357522587979313
}
},
"is_correct": false,
"assertion": "llm_rec_match",
"details": {
"score": 0.27888146818833726,
"strategy_scores": {
"basic": 0.19967208455254679,
"rec_driven": 0.2642731304397953,
"engagement_guided": 0.30130615583945874,
"rec_engagement": 0.357522587979313
}
}
}iter 3 · request_id 8b2efd5281e84058… · elapsed 1.47 ms · HTTP 200
{
"input": {
"age": 25,
"income_band": "mid",
"goals": [
"investment_growth",
"travel"
],
"risk_tolerance": "high"
},
"expected": {},
"actual": {
"score": 0.27888146818833726,
"strategy_scores": {
"basic": 0.19967208455254679,
"rec_driven": 0.2642731304397953,
"engagement_guided": 0.30130615583945874,
"rec_engagement": 0.357522587979313
}
},
"is_correct": false,
"assertion": "llm_rec_match",
"details": {
"score": 0.27888146818833726,
"strategy_scores": {
"basic": 0.19967208455254679,
"rec_driven": 0.2642731304397953,
"engagement_guided": 0.30130615583945874,
"rec_engagement": 0.357522587979313
}
}
}KPI 6 — NQ 검색
iter 1 · request_id b4efcc2057d24c87… · elapsed 2.11 ms · HTTP 200
{
"input": "신용카드 발급 기준은 무엇인가요?",
"expected": [
"소득증명",
"신용평가",
"만 20세 이상"
],
"actual": [
"신용도",
"5월 말",
"결제일 맞추기",
"10%~50%",
"50000만원"
],
"is_correct": false,
"assertion": "substring_intersect",
"details": {
"recall_at_5": 0.0,
"matched": 0
}
}iter 2 · request_id a5f7b52840a54d18… · elapsed 1.70 ms · HTTP 200
{
"input": "신용카드 발급 기준은 무엇인가요?",
"expected": [
"소득증명",
"신용평가",
"만 20세 이상"
],
"actual": [
"신용도",
"5월 말",
"결제일 맞추기",
"10%~50%",
"50000만원"
],
"is_correct": false,
"assertion": "substring_intersect",
"details": {
"recall_at_5": 0.0,
"matched": 0
}
}iter 3 · request_id e87a0fc1646242e1… · elapsed 1.70 ms · HTTP 200
{
"input": "신용카드 발급 기준은 무엇인가요?",
"expected": [
"소득증명",
"신용평가",
"만 20세 이상"
],
"actual": [
"신용도",
"5월 말",
"결제일 맞추기",
"10%~50%",
"50000만원"
],
"is_correct": false,
"assertion": "substring_intersect",
"details": {
"recall_at_5": 0.0,
"matched": 0
}
}KPI 7 — 상품 추천 F1@10
iter 1 · request_id 4190d412054948a5… · elapsed 1.40 ms · HTTP 200
{
"input": {
"user_id": "user_0000"
},
"expected": [
"credit_card_dining",
"insurance_auto",
"crypto_staking_basic",
"fund_balanced",
"checking_business",
"fund_tech",
"fund_dividend",
"stock_account_basic",
"crypto_wallet"
],
"actual": [
"crypto_staking_basic",
"savings_high_yield",
"fund_dividend",
"checking_business",
"fund_tech",
"stock_account_basic",
"fund_balanced",
"insurance_auto",
"credit_card_dining",
"crypto_wallet"
],
"is_correct": true,
"assertion": "topk_f1",
"details": {
"f1": 0.9473684210526316,
"precision": 0.9,
"recall": 1.0,
"tp": 9
}
}iter 2 · request_id 03ff38558a4243a6… · elapsed 1.55 ms · HTTP 200
{
"input": {
"user_id": "user_0000"
},
"expected": [
"credit_card_dining",
"insurance_auto",
"crypto_staking_basic",
"fund_balanced",
"checking_business",
"fund_tech",
"fund_dividend",
"stock_account_basic",
"crypto_wallet"
],
"actual": [
"crypto_staking_basic",
"savings_high_yield",
"fund_dividend",
"checking_business",
"fund_tech",
"stock_account_basic",
"fund_balanced",
"insurance_auto",
"credit_card_dining",
"crypto_wallet"
],
"is_correct": true,
"assertion": "topk_f1",
"details": {
"f1": 0.9473684210526316,
"precision": 0.9,
"recall": 1.0,
"tp": 9
}
}iter 3 · request_id ad35532a4ac24f5b… · elapsed 1.56 ms · HTTP 200
{
"input": {
"user_id": "user_0000"
},
"expected": [
"credit_card_dining",
"insurance_auto",
"crypto_staking_basic",
"fund_balanced",
"checking_business",
"fund_tech",
"fund_dividend",
"stock_account_basic",
"crypto_wallet"
],
"actual": [
"crypto_staking_basic",
"savings_high_yield",
"fund_dividend",
"checking_business",
"fund_tech",
"stock_account_basic",
"fund_balanced",
"insurance_auto",
"credit_card_dining",
"crypto_wallet"
],
"is_correct": true,
"assertion": "topk_f1",
"details": {
"f1": 0.9473684210526316,
"precision": 0.9,
"recall": 1.0,
"tp": 9
}
}docker logs trace 전체 (47 라인)
전체 펼치기 (47 라인)
{"ts": "2026-05-19T06:43:11.822Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "e412254a495444f185cc74a29be71acf", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 0.74}
{"ts": "2026-05-19T06:43:41.921Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "d574159365004fef968f49ae884d8cdb", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 0.79}
{"ts": "2026-05-19T06:44:12.051Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "072ee80f86b64cba80b840f82b1fc3a1", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 9.82}
{"ts": "2026-05-19T06:44:16.921Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "bc77e2720b464804b15d80f486f0988c", "source": "sample", "kpi": 1, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:44:16.921Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "bc77e2720b464804b15d80f486f0988c", "method": "POST", "path": "/api/kpi/1/sample", "status": 200, "elapsed_ms": 27428.48}
{"ts": "2026-05-19T06:44:18.306Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "8116cbd9875646c9b609538226c68f99", "source": "sample", "kpi": 2, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "None"}
{"ts": "2026-05-19T06:44:18.307Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "8116cbd9875646c9b609538226c68f99", "method": "POST", "path": "/api/kpi/2/sample", "status": 200, "elapsed_ms": 140.71}
{"ts": "2026-05-19T06:44:19.593Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "d58a9fbe49a9464ea9725e7137504d99", "method": "POST", "path": "/api/kpi/3/sample", "status": 422, "elapsed_ms": 0.82}
{"ts": "2026-05-19T06:44:20.829Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "5706ae71d646458289130b8a5e912983", "source": "sample", "kpi": 5, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:44:20.829Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "5706ae71d646458289130b8a5e912983", "method": "POST", "path": "/api/kpi/5/sample", "status": 200, "elapsed_ms": 1.38}
{"ts": "2026-05-19T06:44:22.063Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "b4efcc2057d24c87bb0100dde5fe8505", "source": "sample", "kpi": 6, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:44:22.064Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "b4efcc2057d24c87bb0100dde5fe8505", "method": "POST", "path": "/api/kpi/6/sample", "status": 200, "elapsed_ms": 2.11}
{"ts": "2026-05-19T06:44:22.973Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "4190d412054948a580809936f72e8707", "source": "sample", "kpi": 7, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "user_0000"}
{"ts": "2026-05-19T06:44:22.974Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "4190d412054948a580809936f72e8707", "method": "POST", "path": "/api/kpi/7/sample", "status": 200, "elapsed_ms": 1.4}
{"ts": "2026-05-19T06:44:42.191Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "08431b483cea40479d48a71bd29207b8", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 16.01}
{"ts": "2026-05-19T06:44:50.499Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "3304170b93e340549aaf56eba225b7c1", "source": "sample", "kpi": 1, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:44:50.499Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "3304170b93e340549aaf56eba225b7c1", "method": "POST", "path": "/api/kpi/1/sample", "status": 200, "elapsed_ms": 26564.46}
{"ts": "2026-05-19T06:44:51.586Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "48e961c96b484b4ca09315f01a6bbc17", "source": "sample", "kpi": 2, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "None"}
{"ts": "2026-05-19T06:44:51.586Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "48e961c96b484b4ca09315f01a6bbc17", "method": "POST", "path": "/api/kpi/2/sample", "status": 200, "elapsed_ms": 117.28}
{"ts": "2026-05-19T06:44:52.523Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "3987581d7a4d40b69c3474a754a336a1", "method": "POST", "path": "/api/kpi/3/sample", "status": 422, "elapsed_ms": 0.67}
{"ts": "2026-05-19T06:44:53.445Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "38afbf02e9a544e183ed85873df520c4", "source": "sample", "kpi": 5, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:44:53.445Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "38afbf02e9a544e183ed85873df520c4", "method": "POST", "path": "/api/kpi/5/sample", "status": 200, "elapsed_ms": 1.58}
{"ts": "2026-05-19T06:44:54.399Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "a5f7b52840a54d1883f635fe0e5f073f", "source": "sample", "kpi": 6, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:44:54.400Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "a5f7b52840a54d1883f635fe0e5f073f", "method": "POST", "path": "/api/kpi/6/sample", "status": 200, "elapsed_ms": 1.7}
{"ts": "2026-05-19T06:44:55.311Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "03ff38558a4243a6ba25eb74abbbfaae", "source": "sample", "kpi": 7, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "user_0000"}
{"ts": "2026-05-19T06:44:55.312Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "03ff38558a4243a6ba25eb74abbbfaae", "method": "POST", "path": "/api/kpi/7/sample", "status": 200, "elapsed_ms": 1.55}
{"ts": "2026-05-19T06:45:12.334Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "e89b872d150941299d8ebe24aabc0d98", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 6.08}
{"ts": "2026-05-19T06:45:23.379Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "40c61ca9b1174e7a9acd216956020aab", "source": "sample", "kpi": 1, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:45:23.380Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "40c61ca9b1174e7a9acd216956020aab", "method": "POST", "path": "/api/kpi/1/sample", "status": 200, "elapsed_ms": 27132.32}
{"ts": "2026-05-19T06:45:24.461Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "1a17deb48df94ee38b0f2f3d9dca3d10", "source": "sample", "kpi": 2, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "None"}
{"ts": "2026-05-19T06:45:24.462Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "1a17deb48df94ee38b0f2f3d9dca3d10", "method": "POST", "path": "/api/kpi/2/sample", "status": 200, "elapsed_ms": 116.61}
{"ts": "2026-05-19T06:45:25.410Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "0874acc04b144905957e0fc8bf956028", "method": "POST", "path": "/api/kpi/3/sample", "status": 422, "elapsed_ms": 0.68}
{"ts": "2026-05-19T06:45:26.340Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "8b2efd5281e840588d3732cd25876cf7", "source": "sample", "kpi": 5, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:45:26.341Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "8b2efd5281e840588d3732cd25876cf7", "method": "POST", "path": "/api/kpi/5/sample", "status": 200, "elapsed_ms": 1.47}
{"ts": "2026-05-19T06:45:27.670Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "e87a0fc1646242e1b5e098527781e59c", "source": "sample", "kpi": 6, "score": 0.0, "verdict": "no_label", "is_correct": false, "sample_id": "None"}
{"ts": "2026-05-19T06:45:27.671Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "e87a0fc1646242e1b5e098527781e59c", "method": "POST", "path": "/api/kpi/6/sample", "status": 200, "elapsed_ms": 1.7}
{"ts": "2026-05-19T06:45:28.669Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "ad35532a4ac24f5bba035877cd246120", "source": "sample", "kpi": 7, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "user_0000"}
{"ts": "2026-05-19T06:45:28.669Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "ad35532a4ac24f5bba035877cd246120", "method": "POST", "path": "/api/kpi/7/sample", "status": 200, "elapsed_ms": 1.56}
{"ts": "2026-05-19T06:45:42.431Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "a4f342ca347d40e2b2a268d592e078c1", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 0.78}
{"ts": "2026-05-19T06:45:55.265Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "2f6dc29a11fe4d8ebcf6d2b3ebbd1a81", "source": "sample", "kpi": 3, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "None"}
{"ts": "2026-05-19T06:45:55.265Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "2f6dc29a11fe4d8ebcf6d2b3ebbd1a81", "method": "POST", "path": "/api/kpi/3/sample", "status": 200, "elapsed_ms": 871.11}
{"ts": "2026-05-19T06:45:57.728Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "d1f8603a38834b6e858255aa27ecb614", "source": "sample", "kpi": 3, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "None"}
{"ts": "2026-05-19T06:45:57.729Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "d1f8603a38834b6e858255aa27ecb614", "method": "POST", "path": "/api/kpi/3/sample", "status": 200, "elapsed_ms": 853.39}
{"ts": "2026-05-19T06:46:00.206Z", "level": "INFO", "logger": "src.api", "event": "kpi.single.measured", "request_id": "e07c59814fb940d4a99c00fbf6cc60f2", "source": "sample", "kpi": 3, "score": 0.0, "verdict": "no_label", "is_correct": true, "sample_id": "None"}
{"ts": "2026-05-19T06:46:00.207Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "e07c59814fb940d4a99c00fbf6cc60f2", "method": "POST", "path": "/api/kpi/3/sample", "status": 200, "elapsed_ms": 857.84}
{"ts": "2026-05-19T06:46:12.513Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "8b00758b736f48508c43bf1c40849372", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 1.18}
{"ts": "2026-05-19T06:46:42.581Z", "level": "INFO", "logger": "src.api", "event": "api.request.done", "request_id": "364b92e367fe4536acd0ddcd978e8bb5", "method": "GET", "path": "/api/health", "status": 200, "elapsed_ms": 0.79}
측정 환경 메타 (호출 시점)
환경 메타 펼치기
{
"client": "curl 8.x · macOS",
"endpoint": "https://fingu.grinda.ai (Cloudflare proxy → EC2 t4g.xlarge AL2023)",
"tls": "nginx Cloudflare Origin Certificate",
"container": "fingu-tips-api (Python 3.12.13 · FastAPI 0.136.1 · Uvicorn 0.46)",
"env": {
"ENABLE_REAL_PIPELINE": "true",
"ENABLE_FINETUNED_PIPELINE": "true",
"ENABLE_API_PIPELINE": "(unset → false)",
"SEED": "(unset → default 20260514)",
"KPI4_STUB_LATENCY_MS": "3",
"KPI_NDJSON_DUMP": "(unset → OFF)"
},
"deploy_id": "97f6660cf170751ded9a42f435bbe02333ae4960 (PR #61 머지된 alpha HEAD)",
"agent_model": "claude-sonnet-4-5",
"finetuned_vllm": {
"kpi2_url": "http://210.91.154.131:20443/deployment2/ccd06756046a5b20/v1",
"kpi3_url": "http://210.91.154.131:20443/deployment2/09097b7f9d1e85c5/v1",
"served_model": "unsloth/Qwen3-8B-unsloth-bnb-4bit (alias: kpi2 / kpi3)"
}
}요청 body 전체 (참고용)
요청 body 6건 펼치기
KPI 1: {"input":"저는 매달 50만원을 저축하고 싶습니다. 1년 후에 여행을 가기 위해 얼마나 저축해야 할까요?","expected":"savings_strategy","persona_id":"jiyu"}
KPI 2: {"input":"내 잔고가 얼마나 되는지 확인해 주세요.","expected":"check_balance","persona_id":"jiyu"}
KPI 3: {"input":"한국에서 주식 투자할 때 세금은 어떻게 되나요?","expected":"한국에서 주식 투자로 얻은 양도소득에 대해서는 2023년 기준으로 20%의 세율이 적용됩니다. 단, 연간 250만 원까지는 비과세 혜택이 주어집니다.","persona_id":"jiyu"}
KPI 5: {"input":{"age":25,"income_band":"mid","goals":["investment_growth","travel"],"risk_tolerance":"high"},"persona_id":"jiyu"}
KPI 6: {"input":"신용카드 발급 기준은 무엇인가요?","expected":["소득증명","신용평가","만 20세 이상"],"persona_id":"jiyu"}
KPI 7: {"meta":{"id":"user_0000"},"persona_id":"jiyu"}