PRISM-Pred는 PRISM-AGI 플랫폼의 예측을 담당하는 AI 에이전트로, 멀티모달 데이터를 통합 분석하여 공정 결과를 예측합니다.
- 자연어 질의 처리 가능
- 도출 결과를 다시 자연어로 처리하여 반환 가능
- 정형 데이터를 분석하는 전문가 모델
- 이미지, 텍스트 등 비정형 데이터를 분석하는 전문가 모델
- 다양한 형태의 데이터를 통합하여 종합적으로 분석하는 멀티모달 모델
- 주어진 과업에 가장 적합한 분석 전문가를 자동으로 할당하는 알고리즘
- 테이블(Table) 데이터 처리 전문가 모델
- 이미지(Image) 데이터 분석 전문가 모델
- 텍스트(Text) 데이터 처리 전문가 모델
- 시계열(Time-series) 데이터 분석 전문가 모델
- 각 전문가 모델의 예측 결과를 융합하여 성능을 극대화하는 앙상블 및 협업 메커니즘
- 예측 결과의 신뢰도를 정량적으로 평가하는 시스템
- 모델의 불확실성을 측정하고 진단하는 모듈
- 새로운 데이터에 스스로 적응하며 성능을 개선하는 자가 발전 기능 (도메인 적응)
- 예측 결과에 따르는 잠재적 위험을 평가하는 기능
| 기능 | 지표 | 목표 |
|---|---|---|
| 예측 정확도 | 각 데이터 타입별 예측 오차 | 5% 이내 |
| 신뢰도 관리 | 예측 위험 평가 상관계수 | 0.5 이상 |
시계열 전용 후보 모델 학습 과정 업데이트 후, 아래 예시 코드로 실행할 수 있습니다.
프로젝트 루트에서 아래 명령으로 필요한 패키지를 설치합니다:
pip install -r requirements.txt.env 파일에 필요한 정보를 채워줍니다:
LLM_API_URL=http://*/api/agents
DB_API_URL=http://*/api/db
OPENAI_API_KEY=*FastAPI 서버를 실행합니다:
uvicorn main:app --host 0.0.0.0 --port 8001 --reload서버 실행 후, 아래 주소에서 예측 모듈 기능을 확인할 수 있습니다:
- UI: [http://localhost:8001/ui]
- Swagger 문서: [http://localhost:8001/docs]
또는, 다른 터미널에서 예측 엔드포인트를 호출할 수도 있습니다 (jq가 없다면 마지막 | jq .는 생략 가능):
curl -s -X POST "http:///api/v1/prediction/run-direct" -H "Content-Type: application/json" -d '{"taskId":"1","fromAgent":"orchestration","objective":"prediction","timeRange":"2025-08-20 09:00:00 - 09:10:00","sensor_name":"CMP","target_cols":"MOTOR_CURRENT","constraints":null,"userRole":"engineer"}' | jq .- 현재 DB는
./prism_prediction/Industrial_DB_sample/dataset_v2의 하위 파일인 CMP/CVD/ETCH/ION/PHOTO 공정의 데이터를 사용합니다. - 서버 로그는 uvicorn을 실행한 터미널에서 확인할 수 있습니다.
아래는 예측 API 호출 시의 예시 응답입니다.
모델/버전/데이터에 따라 수치는 달라질 수 있습니다.
{
"mode": "csv",
"csv_path": "prism_prediction/Industrial_DB_sample/SEMI_CMP_SENSORS_predict.csv",
"seq_len": 48,
"label_len": 24,
"pred_len": 11,
"enc_in": 11,
"c_out": 11,
"eval_channel_idx": 8,
"selection_metric": "val_rmse_focus",
"best_model": "TimesNet",
"best_val_rmse_focus": 3.2319672107696533,
"best_val_rmse_all": 235.93780517578125,
"results": {
"Autoformer": { "val_rmse_all": 248.3970184326172, "val_rmse_focus": 108.75589752197266 },
"DLinear": { "val_rmse_all": 255.54910278320312, "val_rmse_focus": 3.3810741901397705 },
"TimesNet": { "val_rmse_all": 235.93780517578125, "val_rmse_focus": 3.2319672107696533 },
"LightTS": { "val_rmse_all": 1152.325439453125, "val_rmse_focus": 19.069955825805664 }
},
"prediction": [18.095299, 16.372711, 18.664963, 14.825407, 16.47625, 16.487608, 17.424318, 16.602634, 17.291752, 15.002139, 18.01297],
"target_col_name": "MOTOR_CURRENT",
"feature_start_col": 5
}