fabagent / data /demo.py
hee_!J
polish: ๋กœ๋”ฉ ์นด๋“œ + UI ํ…์ŠคํŠธ em๋Œ€์‹œ ์ผ๊ด„ ์ •๋ฆฌ
533030b
Raw
History Blame Contribute Delete
3.99 kB
"""๋ฐ๋ชจ ๋ฐ์ดํ„ฐ - ์•Œ๋žŒ ์ธ๋ฐ•์Šค + ํ•˜๋“œ์ฝ”๋”ฉ Tier ๋ฐ์ดํ„ฐ
A1(Photo)์€ M3์—์„œ agents/ ์‹ค์ œ ์—์ด์ „ํŠธ๋กœ ๊ต์ฒด๋จ, A2ยทA3๋Š” ์‹œ์—ฐ์šฉ ํ•˜๋“œ์ฝ”๋”ฉ
TIER_DATA์— ์—†๋Š” ์•Œ๋žŒ์„ ํด๋ฆญํ•˜๋ฉด pipeline์ด None์„ ๋ฐ˜ํ™˜ํ•˜๊ณ 
ํ”„๋ก ํŠธ๊ฐ€ "๋ฐ์ดํ„ฐ ์—†์Œ"์„ ์•ˆ๋‚ดํ•จ
"""
from core.schema import TierData
DEFAULT_ALARMS = [
{
"id": "A1",
"status": "critical",
"title": "Photo Step ์ด์ƒ",
"lot_id": "L20240511-N-03",
"feature": "CD-X ์‚ฐํฌ",
"feature_arrow": "โ†‘",
"time": "3๋ถ„ ์ „",
},
{
"id": "A2",
"status": "warn",
"title": "Etch Step ์ด์ƒ",
"lot_id": "L20240511-N-02",
"feature": "Trench Depth",
"feature_arrow": "โ†“",
"time": "15๋ถ„ ์ „",
},
{
"id": "A3",
"status": "warn",
"title": "CMP Step ์ด์ƒ",
"lot_id": "L20240510-N-08",
"feature": "์žฌ๋ฃŒ ์ œ๊ฑฐ์œจ(MRR)",
"feature_arrow": "โ†‘",
"time": "1์‹œ๊ฐ„ ์ „",
},
]
STATUS_LABELS = {"critical": "๊ธด๊ธ‰", "warn": "์ฃผ์˜", "done": "์™„๋ฃŒ"}
# alarm_id -> TierData
# A1์€ ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ 11์žฅ ๋ฐ์ดํ„ฐ, A2ยทA3์€ M1์—์„œ ์ฑ„์›€
TIER_DATA: dict[str, TierData] = {
"A1": {
"tier1": {
"score": 0.87,
"features": [
{"name": "CD-X ์‚ฐํฌ", "value": 0.42},
{"name": "๋…ธ๊ด‘ ์—๋„ˆ์ง€", "value": 0.31},
{"name": "Focus ํŽธ์ฐจ", "value": 0.14},
],
"lot": {"id": "L20240511-N-03", "wafers": 25},
},
"tier2": {
"causes": [
{
"name": "๋ Œ์ฆˆ ์˜ค์—ผ",
"pct": 62,
"evidence": "์ง์ „ PM ํ›„ 14์ผ ๊ฒฝ๊ณผ ยท ์œ ์‚ฌ ์‚ฌ๋ก€ 4๊ฑด ยท ํ—ค์ด์ฆˆ ์„ผ์„œ +18%",
"citations": ["INC-2024-0312", "FMEA-PH-007"],
},
{
"name": "์Šคํ…Œ์ด์ง€ ์ง„๋™",
"pct": 23,
"evidence": "๋™์ผ ์‹œ๊ฐ„๋Œ€ ์ง„๋™ ์„ผ์„œ ์ด์ƒ์น˜ ๊ฒ€์ถœ",
"citations": ["INC-2024-0289"],
},
{
"name": "์›จ์ดํผ ํ‘œ๋ฉด ๊ฒฐํ•จ",
"pct": 15,
"evidence": "์ง์ „ ๊ณต์ • ์ž…๊ณ  ๊ฒ€์‚ฌ ํŒจ์Šค",
"citations": [],
},
],
},
"tier3": {
"yield_loss": 2.3,
"dependencies": [
{"stage": "Photo", "delta": "+0.87", "tag": "ํ˜„์žฌ", "kind": "current"},
{"stage": "Etch", "delta": "+18%", "tag": "์˜ํ–ฅ", "kind": "impacted"},
{"stage": "CMP", "delta": "+5%", "tag": "๊ฒฝ๋ฏธ", "kind": "minor"},
],
"impact_lots": [
{"label": "๊ฐ€๊ณต ์ค‘", "lots": 3, "wafers": 75},
{"label": "๋Œ€๊ธฐ ์ค‘", "lots": 5, "wafers": 125},
],
},
"tier4": {
"immediate": [
{"text": "๋ Œ์ฆˆ PM ๊ธด๊ธ‰ ํˆฌ์ž…", "meta": "์˜ˆ์ƒ 2์‹œ๊ฐ„"},
{"text": "ํ›„๊ณต์ • ์ง„์ž… ๋ณด๋ฅ˜ - ์˜ํ–ฅ lot 3๊ฑด (75์žฅ)", "meta": "Etch hold"},
{"text": "์–‘์‚ฐ ์ผ์ • ์žฌ์กฐ์ • - ์˜ํ–ฅ ๋ฒ”์œ„ ๊ฒฉ๋ฆฌ", "meta": "PPC ํ˜‘์กฐ"},
],
"longterm": [
{"text": "PM ์ฃผ๊ธฐ ๋‹จ์ถ• ๊ถŒ๊ณ : 30์ผ โ†’ 21์ผ", "meta": None},
{"text": "๋™์ผ ํŒจํ„ด ๋ฐœ์ƒ lot ์ถ”์  ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ•ํ™”", "meta": None},
],
"refs": [
{"id": "SOP-PH-LENS-002", "desc": "๋ Œ์ฆˆ PM ํ‘œ์ค€ ์ ˆ์ฐจ"},
{"id": "INC-2024-0312", "desc": "๊ณผ๊ฑฐ ์œ ์‚ฌ ์‚ฌ๋ก€ (๋ฉ”๋ชจ๋ฆฌ 1๋™)"},
{"id": "FMEA-PH-007", "desc": "Photo ๊ณต์ • ์‹คํŒจ ๋ชจ๋“œ ๋ถ„์„"},
],
},
},
# TODO(M1) A2(Etch) ์‹œ์—ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
# TODO(M1) A3(CMP) ์‹œ์—ฐ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ๋น„์›Œ๋‘๋ฉด "๋ฐ์ดํ„ฐ ์—†์Œ" ๊ฒฝ๋กœ๊ฐ€ ์‹œ์—ฐ๋จ
}