# AI 성능 평가용 고난이도 프롬프트 ## 개요 이 프롬프트는 AI 모델의 다양한 능력을 종합적으로 평가하기 위해 설계되었습니다. 단일 프롬프트 내에서 다음과 같은 능력을 동시에 평가합니다: | 평가 차원 | 설명 | |-----------|------| | 추론 능력 | 불완전한 정보에서 논리적 결론 도출 | | 패턴 인식 | 복잡한 데이터 패턴 식별 및 일반화 | | 도메인 지식 통합 | 여러 분야의 지식을 결합한 문제 해결 | | 수학적 사고 | 정량적 분석 및 계산 | | 코드 이해 | 복잡한 코드 로직 추적 및 버그 탐지 | | 모호성 처리 | 모호한 조건에서 합리적 가정 설정 | | 자기 검증 | 자신의 답변에 대한 일관성 검증 | --- ## 프롬프트: "화학 플랜트 이상 탐지 종합 분석" ``` 다음은 화학 플랜트의 P&ID 도면 데이터, 실시간 센서 데이터, 그리고 제어 로직 코드가 혼합된 복잡한 시나리오입니다. 모든 질문에 단계별로 답변하고, 각 단계에서 가정을 명시하세요. === 제공 데이터 === ### 1. P&ID 설비 연결 정보 (그래프 형태) 노드 목록: - P-101A: 원료 펌프 (Main) - P-101B: 원료 펌프 (Standby) - E-101: 프리히터 - R-101: 반응기 - C-101: 분리탑 - V-101: 원료 탱크 - V-102: 제품 탱크 - XV-101: 펌프 전환 밸브 (2-way) - FCV-101: 유량 제어 밸브 - PCV-101: 압력 제어 밸브 - TC-101: 온도 제어 밸브 - FIC-101: 유량 지시 제어기 - TIC-101: 온도 지시 제어기 - PIC-101: 압력 지시 제어기 연결 관계 (방향성): V-101 → P-101A → FCV-101 → E-101 → R-101 → C-101 → V-102 V-101 → P-101B → FCV-101 (XV-101로 전환) R-101 → PCV-101 → 대기 (방출) E-101 ← TC-101 (히터 제어) FIC-101 → FCV-101 (제어 신호) TIC-101 → TC-101 (제어 신호) PIC-101 → PCV-101 (제어 신호) ### 2. 실시간 센서 데이터 (1시간 기준, 10분 간격) | 시간 | FIC-101.PV | FIC-101.SP | TIC-101.PV | TIC-101.SP | PIC-101.PV | PIC-101.SP | P-101A.Status | |------|-----------|-----------|-----------|-----------|-----------|-----------|---------------| | 00:00 | 100.2 | 100.0 | 250.1 | 250.0 | 5.01 | 5.0 | Running | | 00:10 | 100.5 | 100.0 | 251.3 | 250.0 | 5.05 | 5.0 | Running | | 00:20 | 98.1 | 100.0 | 248.7 | 250.0 | 4.98 | 5.0 | Running | | 00:30 | 85.3 | 100.0 | 245.2 | 250.0 | 4.85 | 5.0 | Running | | 00:40 | 45.2 | 100.0 | 230.5 | 250.0 | 4.20 | 5.0 | Running | | 00:50 | 12.1 | 100.0 | 210.8 | 250.0 | 3.50 | 5.0 | Running | | 01:00 | 0.0 | 100.0 | 180.0 | 250.0 | 2.10 | 5.0 | Fault | ### 3. 제어 로직 코드 (pseudo-code) ```python def control_loop(): """메인 제어 루프 - 1초 주기""" flow_pv = read("FIC-101.PV") flow_sp = read("FIC-101.SP") temp_pv = read("TIC-101.PV") temp_sp = read("TIC-101.SP") press_pv = read("PIC-101.PV") # 유량 제어 flow_error = flow_sp - flow_pv fcv_position = pid_calculate("FC-101", flow_error) write("FCV-101.Position", fcv_position) # 온도 제어 temp_error = temp_sp - temp_pv tc_position = pid_calculate("TC-101", temp_error) write("TC-101.Position", tc_position) # 안전 인터록 if flow_pv < 20.0: # 최소 유량 알람 trigger_alarm("LOW_FLOW", "FIC-101") if flow_pv < 10.0: # 최소 유량 트립 trip_pump("P-101A") switch_to_standby("P-101A", "P-101B") # 압력 안전 if press_pv > 6.0: open_emergency_valve("PCV-101") def switch_to_standby(main_pump, standby_pump): """스탠바이 펌프 전환""" close_valve("XV-101") # 전환 밸브 닫기 start_pump(standby_pump) open_valve("XV-101") # 전환 밸브 열기 ``` ### 4. 알람 로그 | 시간 | 알람 코드 | 메시지 | 심각도 | |------|----------|--------|--------| | 00:25 | ALM-001 | FIC-101 유량 저하 감지 | Warning | | 00:35 | ALM-002 | TIC-101 온도 편차 초과 | Warning | | 00:45 | ALM-003 | PIC-101 압력 저하 | Warning | | 00:50 | ALM-004 | 최소 유량 알람 발동 | Alarm | | 00:52 | ALM-005 | P-101A 고장 감지 | Critical | | 00:55 | ALM-006 | 스탠바이 전환 실패 | Critical | --- === 질문 === **Q1. 근본 원인 분석 (Root Cause Analysis)** 위 데이터를 바탕으로 P-101A 고장의 근본 원인을 분석하세요. 단순히 "펌프가 고장났다"가 아닌, 왜 고장났는지에 대한 인과 연쇄를 설명하세요. 여러 가능한 시나리오가 있다면 각각의 가능성을 평가하고 가장 그럴듯한 시나리오를 선택하세요. **Q2. 제어 로직 버그 탐지** 제어 로직 코드에 잠재적 버그 또는 설계 결함이 있는지 분석하세요. 각 버그에 대해 다음을 명시하세요: - 버그의 위치 (라인 또는 함수) - 버그의 유형 (경쟁 조건, 레이스 컨디션, 논리 오류 등) - 발생 시나리오 - 수정 제안 **Q3. 영향도 분석 (Impact Analysis)** P-101A 고장 시 영향받는 설비를 위상 정렬 순서로 나열하세요. 각 설비에 미치는 영향의 심각도를 HIGH/MED/LOW로 분류하고 이유를 설명하세요. **Q4. 예측 분석** 현재 추세가 계속된다면, 고장 발생 후 30분, 1시간, 2시간 후에 발생할 수 있는 2차 고장을 예측하세요. 각 예측에 대한 확신도를 0~100%로 표시하고 근거를 설명하세요. **Q5. 최적 복구 시나리오** 가장 빠른 복구를 위한 단계별 액션 플랜을 작성하세요. 각 단계에 예상 소요 시간과 의존 관계를 명시하세요. **Q6. 자기 검증** Q1~Q5의 답변을 다시 검토하고, 다음 질문에 답하세요: - 답변 사이에 모순이 있는가? - 데이터로 뒷받침되지 않은 추정이 있는가? - 놓친 중요한 정보가 있는가? - 더 나은 분석 방법이 있는가? --- ## 평가 기준 각 질문에 대해 다음 기준으로 점수화합니다: ### Q1. 근본 원인 분석 (20점) | 기준 | 만점 | 평가 항목 | |------|------|----------| | 인과 연쇄의 완전성 | 6 | 데이터 포인트를 모두 활용했는가 | | 대안 시나리오 고려 | 4 | 여러 가능성을 제시하고 평가했는가 | | 데이터 기반 추론 | 5 | 숫자 데이터를 정량적으로 분석했는가 | | 논리적 일관성 | 5 | 결론이 전제와 일치하는가 | ### Q2. 버그 탐지 (20점) | 기준 | 만점 | 평가 항목 | |------|------|----------| | 버그 발견 수 | 6 | 실제 버그를 모두 찾았는가 | | 버그 분류 정확도 | 4 | 버그 유형을 올바르게 분류했는가 | | 발생 시나리오 구체성 | 5 | 재현 가능한 시나리오를 제시했는가 | | 수정 제안의 실현 가능성 | 5 | 수정 코드가 동작하는가 | ### Q3. 영향도 분석 (20점) | 기준 | 만점 | 평가 항목 | |------|------|----------| | 위상 정렬 정확도 | 6 | 연결 관계를 올바르게 해석했는가 | | 심각도 분류 합리성 | 6 | 분류 기준이 명확한가 | | 간접 영향 고려 | 4 | 2차·3차 영향을 고려했는가 | | 설명의 명확성 | 4 | 각 판단의 근거가 명시된가 | ### Q4. 예측 분석 (20점) | 기준 | 만점 | 평가 항목 | |------|------|----------| | 예측의 논리적 근거 | 6 | 추세가 예측과 연결되는가 | | 확신도의 합리성 | 5 | 확신도가 근거와 일치하는가 | | 시나리오 다양성 | 5 | 여러 시나리오를 고려했는가 | | 시간적 정확성 | 4 | 시간 추정이 합리적인가 | ### Q5. 복구 시나리오 (10점) | 기준 | 만점 | 평가 항목 | |------|------|----------| | 단계의 완전성 | 4 | 누락된 단계가 없는가 | | 의존 관계 정확성 | 3 | 순서가 올바른가 | | 현실성 | 3 | 실행 가능한 계획인가 | ### Q6. 자기 검증 (10점) | 기준 | 만점 | 평가 항목 | |------|------|----------| | 모순 발견 | 3 | 내부 모순을 찾았는가 | | 한계 인식 | 3 | 데이터의 한계를 인정했는가 | | 개선 제안 | 2 | 더 나은 방법을 제시했는가 | | 성실성 | 2 | 진지하게 재검토했는가 | --- ## 총점 해석 | 총점 | 평가 | |------|------| | 90~100 | 우수 — 복잡한 산업 문제 해결 가능 | | 75~89 | 좋음 — 일부 영역에서 보완 필요 | | 60~74 | 보통 — 기본 추론 가능, 심화 분석 어려움 | | 45~59 | 부족 — 구조적 분석 능력 부족 | | 0~44 | 미흡 — 기본 데이터 해석 어려움 | --- ## 참고: 정답 가이드 (평가자용) ### Q1. 근본 원인 분석 — 핵심 포인트 1. **데이터에서 읽을 수 있는 사실**: - 00:00~00:20: 정상 범위 내 변동 (유량 ±2%, 온도 ±1.3%) - 00:30부터 유량 급감 시작 (85.3 → 45.2 → 12.1 → 0.0) - 온도·압력도 함께 감소 (연동 현상) - 00:50에 유량이 10 미만으로 떨어짐 → 트립 조건 충족 - 00:52에 P-101A Fault 상태 - 00:55에 스탠바이 전환 실패 2. **가능한 시나리오**: - **시나리오 A (펌프 기계적 고장)**: 베어링 마모 또는 임펠러 손상으로 유량 점진적 감소 → 고장. 가장 가능성 높음. 유량 감소 패턴이 점진적임. - **시나리오 B (흡입 측 막힘)**: 필터 또는 파이프 막힘으로 흡입 압력 감소. 가능하지만 일반적으로 더 급격한 감소 패턴. - **시나리오 C (V-101 원료 부족)**: 탱크 레벨 저하. 하지만 다른 증후가 없음. - **시나리오 D (전기적 문제)**: 모터 과열 또는 전압 불안정. 가능하지만 일반적으로 갑작스러운 정지. 3. **가장 그럴듯한 시나리오**: 시나리오 A (펌프 기계적 고장) - 점진적 유량 감소 패턴이 기계적 마모와 일치 - 온도·압력 연동 감소는 유량 감소의 자연스러운 결과 - 스탠바이 전환 실패는 별도 문제 (XV-101 밸브 문제 또는 P-101B 시작 실패) ### Q2. 버그 탐지 — 핵심 포인트 1. **버그 1: switch_to_standby() 에서의 레이스 컨디션** - `close_valve("XV-101")` 후 `start_pump()` 전에 다른 프로세스가 밸브를 열 수 있음 - 수정: 잠금(Lock) 메커니즘 추가 2. **버그 2: 트립 후 스탠바이 전환이 동기 호출** - `trip_pump()`와 `switch_to_standby()`가 동기적으로 실행되어 전환 실패 시 전체 시스템 정지 - 수정: 비동기 처리 + 타임아웃 + 재시도 로직 3. **버그 3: 최소 유량 체크의 히스테리시스 부재** - `flow_pv < 20.0`과 `flow_pv < 10.0`이 매 루프 체크되어 알람이 플러터링 - 수정: 히스테리시스 밴드 추가 (예: 20.0 알람, 18.0 해제) 4. **버그 4: 압력 안전 체크가 최대만 확인** - `press_pv > 6.0`만 체크하고 최소 압력 체크 없음 - 수정: 최소 압력 알람 추가 ### Q3. 영향도 분석 — 핵심 포인트 위상 정렬 순서: 1. **FCV-101** (HIGH) — 유량 0으로 인해 제어 불가 2. **E-101** (HIGH) — 유량 없음으로 프리히터 기능 정지 3. **R-101** (HIGH) — 원료 공급 중단으로 반응 정지 4. **C-101** (MED) — 반응 정지로 분리 작업 중단 5. **V-102** (LOW) — 제품 생산 중단이지만 기존 제품 저장 가능 6. **PCV-101** (MED) — 압력 저하로 방출 필요 감소 ### Q4. 예측 분석 — 핵심 포인트 - **30분 후**: R-101 반응기 내 잔여 반응물로 과열 가능성 (확신도 60%) - **1시간 후**: C-101 분리탑 내 압력 불균형 (확신도 70%) - **2시간 후**: V-101 원료 탱크 오버플로우 위험 (유입은 계속되지만 배출 정지) (확신도 80%) ### Q5. 복구 시나리오 — 핵심 포인트 1. P-101B 스탠바이 펌프 수동 시작 (5분) 2. XV-101 밸브 수동 확인 및 전환 (3분) 3. FCV-101 유량 서서히 증가 (5분) 4. E-101, R-101 상태 확인 (5분) 5. 정상 운전 확인 (2분) 총 예상 시간: 20분 ### Q6. 자기 검증 — 평가 기준 - Q1의 시나리오와 Q2의 버그 분석이 일관되는가 - Q3의 영향도 분석이 Q1의 근본 원인과 연결되는가 - Q4의 예측이 Q3의 영향도 분석을 기반으로 하는가 - Q5의 복구 계획이 Q2에서 발견한 버그를 고려하는가 --- ## 사용 방법 1. 위 프롬프트를 AI 모델에 그대로 입력 2. 각 질문에 대한 답변을 평가 기준에 따라 점수화 3. 총점을 계산하여 모델의综合能力 평가 4. 여러 모델 간 비교 시 동일한 프롬프트 사용 --- ## 변형 버전 필요에 따라 다음 변형이 가능합니다: - **시간 제한 버전**: 각 질문에 시간 제한 설정 (예: Q1 5분, Q2 5분) - **부분 정보 버전**: 일부 데이터를 숨겨 추론 능력 평가 - **실시간 버전**: 데이터가 점진적으로 제공되는 시나리오 - **다국어 버전**: 다른 언어로 동일한 시나리오 제공