1. 작업 요약 — alpha 머지 PR 9건
| PR | 제목 |
| #172 | 표에 기술/품질인증 컬럼 + cert dedup + 파싱 누락 안내 |
| #171 | 우측 상단 글로벌 검색창 (헤더로 이동) |
| #170 | 기술/품질인증 분리 + 첫 화면 밀도 (table top 877→653) |
| #169 | 상세 drawer 이미지 갤러리 (hwpx CORS 직호출) |
| #168 | drawer DB 전 필드 + race 안정성 (mark_error guard) |
| #167 | UploadBar destructure spec_id → proposal_id (404 hotfix) |
| #166 | 조달청 PPS Blue (#0F4C81) + 상세 drawer (1 round-trip) |
| #165 | proposal_certifications 정규화 + 호환성 개선 (alembic 0003) |
| #162→#197 | (revert #162 후 alpha 35 PR 누적 squash merge 로 h100 브랜치 동기화) |
2. 레포 경로
| 구분 | 경로 |
| GitHub 메인 | jodal-eval-ai/pps-mono-repo (private) |
| 로컬 워크트리 (alpha) | /Users/icheolhui/Mirror/Github/1_Projects/pps-mono-repo-pr162-fix |
| 앱 | apps/eval-system-premium/{backend,frontend} |
| hwpx-intelligence (private) | /Users/icheolhui/Mirror/Github/1_Projects/hwpx-intelligence |
| ai_engine (OpenRouter) | services/ai_engine/core/engines/openrouter_engine.py |
| 데모 자료 | ~/Downloads/김기열_주무관님_요청사항/2. 배전반 규격서/ |
| 온프렘 번들 (S3) | https://chlee-s3.s3.amazonaws.com/eval-system-premium-onprem/2026-05-22/onprem-bundle.zip |
| 외장 하드 풀린 위치 | /Volumes/DRIVE1/jodal-snapshot/onprem-bundle-extracted/onprem-bundle/ |
3. 온프렘 번들 구성 (1.9 GB 풀린 상태)
onprem-bundle/
├── pps-mono-repo/ # 소스 + docker-compose + start.sh + .env.onprem
│ ├── apps/eval-system-premium/
│ ├── apps/eval-system/
│ ├── apps/rfp-gen/
│ ├── infra/scripts/load-and-run.sh
│ ├── start.sh
│ └── .env.onprem
├── hwpx-intelligence/ # HWP/HWPX 파싱 + LLM/VLM (별도 repo)
└── docker-images/ # 도커 이미지 8 tar (linux/amd64)
도커 이미지 8종 (1.7 GB 합계)
| 이미지 | 크기 |
| dpage-pgadmin4-latest.tar | 502 MB |
| postgres-16-alpine.tar | 266 MB |
| pps-eval-system-premium-bff-amd64.tar | 245 MB |
| pps-eval-system-premium-frontend-amd64.tar | 199 MB |
| qdrant-qdrant-v1.12.6.tar | 181 MB |
| minio-minio-latest.tar | 168 MB |
| minio-mc-latest.tar | 82 MB |
| redis-7-alpine.tar | 38 MB |
4. 환경변수 매핑
채워진 핵심 secrets
| 키 | 위치 | 상태 |
| OPENROUTER_API_KEY | hwpx-intelligence/.env + pps/.env.onprem | ✓ sk-or-...58b8 |
| HWPX_API_KEY | hwpx-intelligence/.env | ✓ |
| UPSTAGE_API_KEY | pps/.env.onprem | ✓ (len 31) |
| POSTGRES_PASSWORD | pps/.env.onprem | ✓ pps_password |
| MINIO_ROOT_PASSWORD | pps/.env.onprem | ✓ 11111111 |
| PGADMIN_PASSWORD | pps/.env.onprem | ✓ admin |
| GEMINI_API_KEY | pps/.env.onprem | ⚠ EMPTY (선택) |
fallback 변수 19개는 모두 yml 안에 ${VAR:-default} 패턴으로 default 보유 → 부팅 가능. 운영 환경 따라 LLM 모델 URL 등만 override.
5. 로드 스크립트 ✅ 준비 완료
| 스크립트 | 역할 |
pps-mono-repo/start.sh | 부트스트랩 entry (load-and-run.sh 호출) |
infra/scripts/load-and-run.sh | 3 step: ① docker load · ② .env 자동 복사 · ③ docker compose up |
check-env.sh | 부팅 전 env 검증 |
infra/scripts/pack-for-onprem.sh | 새 번들 재제작 |
infra/compose/postgres/init-databases.sh | DB 초기화 (RFP_DB + EVAL_DB) |
infra/compose/minio/init-buckets.sh | MinIO 버킷 자동 생성 |
apps/eval-system-premium/backend/entrypoint.sh | BFF entry (alembic upgrade head + uvicorn) |
5분 셋업 (Ubuntu 호스트)
# 1. 압축 해제 + cd
unzip onprem-bundle.zip
cd onprem-bundle/pps-mono-repo
# 2. 부트스트랩 (start.sh 가 load-and-run.sh 호출)
bash start.sh
# → ① docker load (8 tar) · ② .env.onprem → .env 자동 복사 · ③ docker compose up -d
# 3. 접속 (이 서버의 IP 또는 localhost)
# - 메인 포털 : http://localhost:80
# - 평가 시스템: http://localhost/app/eval
# - pgAdmin : http://localhost:5050
# - MinIO : http://localhost:9001
6. GPU 모델 서빙 (호스트 별도 부팅)
# Qwen3-32B vLLM (LLM)
vllm serve Qwen/Qwen3-32B --port 8305 --tensor-parallel-size 2
# Qwen3-VL-8B (VLM)
vllm serve Qwen/Qwen3-VL-8B-Instruct --port 8303 --tensor-parallel-size 1
# KURE-v1 임베딩 :8306
# .env 의 MODEL_CONFIG_*_URL 가 localhost 기본 — 분리 호스트면 IP override
7. 실 데이터 검증 결과
| 업체 | 지정 | 품목 | conf | 인증 | 이미지 |
| (주)솔라리치 | 2024154 | 수배전반 | 0.71 | tech 1 · quality 1 | 18 장 |
| 코스모전기 주식회사 | 2021046 | 배전반 | 0.71 | tech 2 · quality 1 | 11 장 |
8. 알려진 한계 (hwpx 측 — 우리 코드 무관)
- feature_summary 빈값 — 우수제품 양식 파일에서도 summary/bullets 가 비어 옴 · UI 에 "⚠ 원문 미추출" 안내 chip
- patent.name / date / issuer 빈값 — number 만 추출 · 표시 가능 정보 한정
- quality_tests.test_type / standard 빈값 — kind 분류는 가능하나 시험항목 미추출
- title_ko 너무 김 — 본문 첫 문장 200자 캐치 · 표에 line-clamp-2 적용
9. ⚠ 보안 메모
OpenRouter 키
sk-or-v1-d4cc...58b8 가 채팅 / 이메일 / 본 핸드오프 페이지에 평문 노출. 데모 종료 후
openrouter.ai/keys 에서 즉시
revoke + 재발급 권고.