Files
TK-BOM-Project/backend/debug_step_by_step.py
Hyungi Ahn 9e5250a8f9 자재 분류 시스템 개선 및 통합 분류기 구현
- 통합 분류기 구현으로 키워드 우선순위 체계 적용
- HEX.PLUG → FITTING 분류 수정 (기존 VALVE 오분류 해결)
- 플랜지/밸브가 볼트로 오분류되는 문제 해결 (A193, A194 재질 키워드 우선순위 적용)
- 피팅 재질(A234, A403, A420) 기반 분류 추가
- 니플 길이 정보 보존 로직 개선
- 파이프 끝단 가공 정보를 구매 단계에서 제외
- PostgreSQL 사용으로 RULES.md 업데이트
- 상호 배타적 키워드 시스템 구현 (Level 1 키워드 우선)
2025-07-23 14:38:49 +09:00

41 lines
1.5 KiB
Python

from app.services.integrated_classifier import LEVEL1_TYPE_KEYWORDS
test = "NIPPLE, SMLS, SCH 80, ASTM A106 GR B PBE"
print(f"테스트: {test}")
desc_upper = test.upper()
desc_parts = [part.strip() for part in desc_upper.split(',')]
print(f"대문자 변환: {desc_upper}")
print(f"쉼표 분리: {desc_parts}")
# 단계별 디버깅
detected_types = []
for material_type, keywords in LEVEL1_TYPE_KEYWORDS.items():
type_found = False
for keyword in keywords:
# 전체 문자열에서 찾기
if keyword in desc_upper:
print(f"{material_type}: '{keyword}' 전체 문자열에서 발견")
detected_types.append((material_type, keyword))
type_found = True
break
# 각 부분에서도 정확히 매칭되는지 확인
for part in desc_parts:
if keyword == part or keyword in part:
print(f"{material_type}: '{keyword}' 부분 '{part}'에서 발견")
detected_types.append((material_type, keyword))
type_found = True
break
if type_found:
break
print(f"\n감지된 타입들: {detected_types}")
print(f"감지된 타입 개수: {len(detected_types)}")
if len(detected_types) == 1:
print(f"단일 타입 확정: {detected_types[0][0]}")
elif len(detected_types) > 1:
print(f"복수 타입 감지: {detected_types}")
else:
print("Level 1 키워드 없음 - 재질 기반 분류로 이동")