CiP-DMD의 완제품·구성품·공정·품질 관계를 Neo4j로 구조화하고, 자연어 질문을 읽기 전용 Cypher로 변환해 RCA 후보와 근거 경로를 보여주는 MVP다.
Before building the Ontology Dashboard, I needed to prove one thing first: can a natural-language question actually trace root causes through a manufacturing knowledge graph and return real evidence — not just unsupported LLM prose? This MVP answered that question and shaped the grounded-report design of the main dashboard.
Ontology Dashboard를 본격적으로 만들기 전에 먼저 확인해야 할 게 있었습니다. 자연어 질문이 제조 지식그래프를 따라 실제 근거까지 추적할 수 있는지, LLM이 근거 없이 답변을 지어내는 게 아닌지. 이 선행 MVP로 그 가정을 검증했고, 결과가 본 대시보드의 grounded report 설계로 이어졌습니다.
This project is a manufacturing knowledge-graph and Text-to-Cypher root-cause-analysis platform. It models finished products, components, processes, equipment, and quality relationships in Neo4j, then turns natural-language questions into guarded read-only Cypher and returns explainable RCA candidates with evidence paths.
- Industrial knowledge graph: project-scoped schemas, repeatable ETL, integrity checks, and reusable domain intake.
- Agentic query workflow: natural-language routing, Text-to-Cypher generation,
EXPLAINvalidation, correction/retry, and read-only execution. - Explainable RCA: answers are paired with tables, Cypher, evidence paths, and partial graph views rather than opaque LLM prose.
- Product architecture: FastAPI backend, Neo4j, LangGraph/LlamaIndex integration, React/Next.js product UI, Streamlit operations console, Docker Compose, and automated release gates.
- Evaluation: gold questions, regression tests, blind evaluation, lineage, audit logs, and human-in-the-loop review contracts.
The repository intentionally keeps the implementation history and validation documents because the main portfolio value is not only the final UI: it is the progression from a manufacturing MVP into a governed, testable AI/knowledge-graph product.
Portfolio status: implemented end-to-end product and evaluation stack with a public sanitized interactive demo backed by the same Next.js, FastAPI, Neo4j, and evidence contracts used by the local product stack.
Public demo: https://text2cypher.oosu.dev — sanitized CiP-DMD graph with Vertex Gemini Text-to-Cypher and guarded Gold fallback.
Public internal-console demo: https://text2cypher-console.oosu.dev — sanitized demo mode only; graph loading remains disabled by default.
이 프로젝트의 UI·아키텍처 실험과 이후 동적 대시보드 작업은 여러 공개 화면으로 이어졌다. 아래 링크는 모두 같은 코드라고 묶지 않고, 어느 저장소/브랜치에서 나온 작업인지 provenance를 구분해 정리한다.
| Stage | What it tested | Live | Source |
|---|---|---|---|
| Text-to-Cypher visualization experiment | 동일 Dashboard snapshot을 Plotly Express, Plotly Graph Objects, React + ECharts로 비교하고 최종 사용자 UI와 내부 분석 UI의 경계를 검증 | Plotly / Streamlit comparison | experiment/streamlit-plotly-dashboard |
| Agentic Dashboard Week 1 framework experiment | 같은 제조 기능을 FastAPI와 Flask에 구현해 API 계약·검증·구조를 비교 | FastAPI vs Flask | agentic-ontology-dashboard experiment branch |
| KOSA / Bistel adaptive dashboard story | 엔지니어·매니저·임원 역할에 따라 같은 제조 근거를 다른 화면과 결론으로 전달하는 동적 대시보드 방향을 팀 제품으로 확장 | Adaptive story | Biz-CollabCraft/ontology_dashboard |
| Blueprint UI comparison lab | 기존 Dashboard, Blueprint 1차, Blueprint 2차를 동일 시나리오·동일 viewport에서 나란히 비교해 정보 밀도와 탐색 구조의 차이를 검증 | Blueprint compare | Biz-CollabCraft/ontology_dashboard |
| Commercial Blueprint v4 | MVP 기본 경로와 분리된 별도 상용화 후보 화면에서 Project·Dataset·권한·배포·운영·Artifact·MLOps surface를 하나의 제품형 shell로 검증 | Blueprint v4 | Biz-CollabCraft/ontology_dashboard |
현재 text2cypher.oosu.dev는 sanitized CiP-DMD 데이터로 동작하는 실제 React/Next.js 제품 UI와 FastAPI 질의 API를 공개한다. 공개 API는 Vertex Gemini로 자유 질문을 읽기 전용 Cypher로 생성·검증·실행하고, 모델 연결이나 생성 검증이 실패하면 등록된 질문에 한해 Gold fallback으로 안전하게 전환한다. Query Studio의 Evidence Graph, Projects/History 흐름을 직접 실행할 수 있으며 Neo4j credential과 쓰기 포트는 공개하지 않는다. 운영·평가 화면은 text2cypher-console.oosu.dev의 Streamlit demo mode로 분리하고, 그래프 적재 API는 기본 비활성화한다. 위의 별도 공개 실험 화면들은 실제 제품을 만들면서 어떤 UI·framework·dashboard 방향을 비교했는지 확인하기 위한 보조 자료다.
구현 순서와 완료 조건은 MVP_단계별_구현_계획.md를 따른다. PPT 대조 후 수정 근거는 방향 수정 기록에 정리했다.
- P3 엔터프라이즈 플랫폼 통합 기능명세
- P3 엔터프라이즈 플랫폼 단계별 작업계획서
- P3 요구사항 Baseline·Gap Matrix
- 엔터프라이즈 트랙 1-1~1-3 구현·검증
- 엔터프라이즈 트랙 1-4~1-5 구현·검증
- 엔터프라이즈 트랙 1-6 구현·검증
- 엔터프라이즈 트랙 1-7 구현·검증
- 엔터프라이즈 트랙 1-8 Release Gate·문서화
- 엔터프라이즈 트랙 2-1 정보구조·디자인 시스템
- 엔터프라이즈 트랙 2-2 Home·Projects Workspace
- 엔터프라이즈 트랙 2-3 Data Sources·Pipeline UX
- 엔터프라이즈 트랙 2-4 Query Studio
- 엔터프라이즈 트랙 2-5 Interactive Graph Explorer
- 엔터프라이즈 트랙 2-6 Dashboard·Evaluations
- 엔터프라이즈 트랙 2-7 History·Audit·운영 상태
- 엔터프라이즈 트랙 2-8 UI 품질 Gate
- 엔터프라이즈 2단계 기능 기준선 검증·릴리스 기록
- 2.9 제품화 단계 기능명세·작업계획
- 2.9-1 단일 제품 UI·Surface 경계 검증
- 2.9-2 Streamlit 단일 내비게이션·이전 URL 호환 검증
- 2.9-3 개발·평가 UI 격리 검증
- 2.9-4 핵심 RCA 사용자 여정 검증
- 2.9-5 실제 사용자 기준 Product Release Gate
- 3-1 LangGraph State·Checkpoint 재설계
- 3-2 자연어 Project Router
- 3-3 Tool Registry
- 3-4 LlamaIndex 문서 RAG Tool
- Architecture 문서 인덱스
- 바이브 코딩 MVP에서 팀 엔지니어링으로
- 현재 시스템 아키텍처·다이어그램
- Architecture Decision Records
- UX 내비게이션 재검증·수정
- Streamlit 리팩토링 1단계 · 공통 기반 분리
- Streamlit 리팩토링 2단계 · 페이지 모듈 분리
- 리팩토링 3단계 · React 구조·UX
- 리팩토링 4단계 · 화면별 품질 개선
- 리팩토링 5단계 · 최종 Release Gate
- 최종 리팩토링 감사 · 3단계 준비도
- 플랫폼 공통 API·Registry·스키마·ETL·다중 도메인:
platform-stage1~11 - 제품 리팩터링·Data Intake·Graph Explorer·HITL·배포:
refactor-stage1~8
통합 기능명세는 발표자료의 P3 필수 범위, 다중 프로젝트 사내 플랫폼 UI,
P4에서 차용할 LangGraph Router·Tool Registry·RAG·권고·HITL·알림·감사로그를
구분해 정의한다. 단계별 작업계획서는 이를 1-x / 2-x / 3-x 릴리스로 나눈다.
새 프로젝트를 만들고 CSV/JSON을 업로드한 뒤 컬럼 프로파일 → 그래프 매핑 검토 → schema 승인 → 프로젝트 격리 적재 → schema 기반 Text-to-Cypher 질의까지 같은 파이프라인으로 실행할 수 있다. 설비 정비 이력 예제가 두 번째 도메인 재적용 기준으로 포함되어 있다.
| 서비스 | 이 컴퓨터에서 접속 | 같은 네트워크의 팀원이 접속 |
|---|---|---|
| 최종 사용자 제품 UI · React | http://localhost:3000 |
http://<HOST_LAN_IP>:3000 |
| 내부 운영 콘솔 · Streamlit | http://localhost:8501 |
http://<HOST_LAN_IP>:8501 |
| API 개발 문서 · FastAPI/OpenAPI | http://localhost:8000/docs |
http://<HOST_LAN_IP>:8000/docs |
| DB 개발 도구 · Neo4j Browser | http://localhost:7474 |
기본은 로컬 전용이며 공유를 권장하지 않음 |
<HOST_LAN_IP>는 서버를 실행하는 컴퓨터의 사설 IPv4 주소다. 예를 들어
호스트 IP가 192.168.5.57이면 제품 주소는 http://192.168.5.57:3000이다.
네트워크를 바꾸면 IP도 달라질 수 있으므로 아래 run_lan.sh가 실행 시점의
주소를 자동 감지해 출력한다.
| 단계 | 상태 | 산출물 |
|---|---|---|
| 1단계 — MVP 질문과 성공 조건 고정 | 재검증 완료 | docs/mvp-scope.md, docs/scope-validation.md, evaluation/gold_questions.yml |
| 2단계 — 원본 데이터와 연결 키 점검 | 완료 | docs/data-dictionary.md, docs/data-profile.md, docs/data-gap.md, data/processed/cip_dmd_profile.json |
| 3단계 — 최소 그래프 스키마 설계 | v1.1 수정 완료 | 장비·이상 분류·QualityFailure 포함 |
| 4단계 — Neo4j 실행 환경과 권한 | 완료 | 실제 Neo4j 스키마 적용·read-only 차단 검증 |
| 5단계 — 재실행 가능한 ETL | v1.1 재검증 완료 | 실제 데이터 적재·재적재 멱등성 PASS |
| 6단계 — 그래프 무결성과 수동 Cypher | 완료 | Gold 결과 스냅샷 15/15 일치, 무결성·전체 테스트 38/38 PASS |
| 8~11단계 — Text-to-Cypher Agent | 구현 완료 | 생성·차단·EXPLAIN·교정·재검증·실행 PASS |
| 12단계 — 결과 해석·근거 구성 | 완료 | 답변·표·Cypher·부분 그래프 출력 계약 15/15 PASS |
| 13단계 — Streamlit UI | 제품형 UX 보강 완료 | 인라인 근거·세션 대화 기록·Graph Explorer·데이터 사전검증 |
| 14단계 — 실제 Agent·UI 연결 | 완료 | OpenAI 키가 없으면 Vertex Gemini 자동 연결, 실제 자유 질문 PASS |
| 15단계 — 대시보드·그래프 시각화 | 완료 | 무결성·런타임·토큰·비용 지표와 Evidence 필터 구현 |
| 16단계 — Blind 평가·회귀 테스트 | 완료 | Gemini 26문항 의미값 정확도 50.0%→50.0%→61.5%, 엄격 계약 정확도 38.5%, 자기수정 스트레스 8건 |
| 17단계 — 데모 고정·실행 패키징 | 완료 | 원커맨드 프리플라이트·Gold 고정 시나리오 4/4·장애 시 안전 폴백·인라인 Evidence |
| 제품 리팩터링 5단계 — Data Intake | 구현 완료 | ZIP staging·dry-run·승인 적재·reader 복귀·감사로그 |
| 제품 리팩터링 6단계 — 검색형 Graph Explorer | 구현 완료 | 부분 문자열 노드 검색·선택·1~3-hop 읽기 전용 탐색 |
| 제품 리팩터링 7단계 — 전문가 검증(HITL) | 구현 완료 | 3단계 판정·의견·질의 지문·append-only 감사기록 |
| 제품 리팩터링 8단계 — 배포·E2E | 구현 완료 | 5-service Compose·health gate·보안 헤더·black-box smoke |
| 엔터프라이즈 1-7 — Project Registry·Readiness | 구현 완료 | 정식 상태 머신·파일/외부 Neo4j 연결·schema/prompt/Gold/evaluation lineage·준비 전 질의 차단 |
| 엔터프라이즈 1-8 — 백엔드 Release Gate | 구현 완료 | 구조화 오류 계약·tracked secret 0건·P3 추적률 100%·fresh Compose E2E·lineage/runbook |
| 엔터프라이즈 2-1 — 정보구조·디자인 시스템 | 구현 완료 | 11개 workspace·5개 역할 최소권한 메뉴·4개 화면 상태·공통 토큰·Streamlit/React 경계 |
| 엔터프라이즈 2-2 — Home·Projects Workspace | 구현 완료 | Registry 기반 최근 프로젝트·검색·즐겨찾기·readiness·생성 Wizard·프로젝트별 UI 컨텍스트 격리 |
| 엔터프라이즈 2-3 — Data Sources·Pipeline UX | 구현 완료 | 멀티포맷 업로드·Neo4j 연결 검증·프로파일·mapping dry-run/승인·영속 Job·무결성/readiness |
| 엔터프라이즈 2-4 — Query Studio | 구현 완료 | version context·질의 progress·답변/표/Cypher/경로/trace 인라인·영속 대화·검색/재실행 |
| 엔터프라이즈 2-5 — Interactive Graph Explorer | 구현 완료 | NVL 양방향 선택·검색·1~3 hop 누적 확장·필터·경로 강조·상세 패널·프로젝트 격리·1천/1만 노드 경계 |
| 엔터프라이즈 2-6 — Dashboard·Evaluations | 구현 완료 | 프로젝트 공통 필터·그래프/ETL/Agent KPI·모델/프롬프트 비교·F1/혼동행렬·latency/token/cost/error·평가 증적 |
| 엔터프라이즈 2-7 — History·Audit·운영 상태 | 구현 완료 | 프로젝트 대화 검색/재열기/재실행·질의/ETL/평가 Timeline·run_id 증적·CSV/JSON 다운로드·서비스 진단·민감정보 차단 |
| 엔터프라이즈 2-8 — UI 기능 기준선 | 기능 기준선 완료·제품화 Gate 재개방 | 반응형·접근성·역할별 메뉴/행동·상태/복구·두 도메인 기능 계약 |
| 제품화 2.9-1 — 단일 제품 UI·Surface 경계 | 구현·검증 완료 | React 제품 진입점·Streamlit Internal Console·운영 경로 리디렉션·프로젝트 컨텍스트 전달 |
| 제품화 2.9-2 — Streamlit 자동 페이지 충돌 제거 | 구현·검증 완료 | 숨김 공식 라우터·자동 메뉴 0개·작업공간 메뉴 1개·이전 URL 10개 비어 있지 않은 안내 화면 |
| 제품화 2.9-3 — 개발·평가 기능 격리 | 구현·검증 완료 | P3_UI_MODE 프로필·demo 기본값·provider/role 제어 격리·foundation 메뉴 숨김·배포 금지 문구 검사 |
| 제품화 2.9-4 — 핵심 RCA 사용자 여정 | 구현·자동 검증 완료 | 프로젝트 전환·추천 질문·단일 전송·Evidence·Graph·History·쓰기 차단·오류 복구 |
| 제품화 2.9-5 — 실제 사용자 기준 Release Gate | 자동 Gate PASS · 수동 사용자 검토 PENDING | 기존 사용자 동선 자동 검증 유지 · 최종 READY HOLD |
| Agentic AI 3-1 — LangGraph State·Checkpoint | 구현·자동 검증 완료 | 시작 전 원격 tag 고정·공통 state v1·SQLite checkpoint·재시작 후 resume·migration 계약 |
| Agentic AI 3-2 — 자연어 Project Router | 구현·자동 평가 완료 | 명시 선택 bypass·schema summary 검색·hashed semantic routing·confidence/margin gate·Top-1/Top-k 100% |
| Agentic AI 3-3 — Tool Registry | 구현·자동 Gate 완료 | Pydantic I/O·권한·timeout·retry·오류 taxonomy·Tool audit·내장 Tool 6개 |
| Agentic AI 3-4 — LlamaIndex 문서 RAG | 구현·자동 RAG Gate 완료 | 문서 ingestion·persisted vector index·citation·버전·역할 격리·React/Streamlit 근거 UI |
- 데이터셋: CiP-DMD
- MVP 입력: 메타데이터 JSON, 품질 CSV, 생산 로그 XLSX
- 1차 MVP 제외: 대용량 HDF5 센서 원본
- 유효 완제품: 802개
- 구성품까지 완전히 연결된 완제품: 767개(95.6%)
- 검증 가능한 사례: 압력 불합격 19건, 표면거칠기 불합격 190건, 밀링 anomaly class 2 39건
Cylinder ──ASSEMBLED_FROM──> CylinderBottom ──UNDERWENT──> ProcessRun
│ │ ├──RUN_ON──> Equipment
│ │ └──CLASSIFIED_AS──> AnomalyClass
│ └──HAS_QUALITY_RESULT───────┘
├──ASSEMBLED_FROM──> PistonRod ──UNDERWENT──> Turning
└──HAS_QUALITY_RESULT──> Assembly QC
- 재실행 가능하고 중복 적재를 막는 ETL
- 사람이 검증한 Gold 질문·수동 Cypher
- 장비 모델·이상 유형·품질 불합격을 명시한 검증 가능한 경로
- 자연어 → Cypher 생성·검증·수정·실행
- 쓰기 쿼리 차단과 Neo4j 읽기 전용 계정
- 답변·Cypher·결과표·관계 경로를 함께 표시하는 UI
- 실행 성공률·결과 정확도·읽기 전용 준수율 평가
실행 방법은 Text-to-Cypher 가이드, 검증 근거는 8~11단계 검증 결과를 참고한다. UI 출력 구조는 질의 서비스 계약, 12단계 검증은 결과 해석·근거 검증에 정리했다. Streamlit 실행은 UI 실행 가이드, 검증 근거는 13단계 검증을 참고한다. 대시보드·그래프 고도화 결과는 15단계 검증에 정리했다. Gold 결과와 그래프 무결성 검증은 6단계 검증에 정리했다. 실제 Agent·UI 상태별 검증은 14단계 검증에 정리했다. Blind 실제 평가와 남은 생성 품질 한계는 16단계 검증에 정리했다. 발표 실행 패키지와 장애 대응은 17단계 검증에 정리했다. 발표에서 함께 밝혀야 할 데이터·모델 한계는 발표용 제한사항에 요약했다.
검증된 Streamlit MVP는 발표·운영 콘솔로 유지하고, 외부 제품 UI가 같은 Text-to-Cypher 엔진을 사용할 수 있도록 FastAPI 경계를 추가했다.
./scripts/run_api.sh- OpenAPI 문서: 로컬
http://127.0.0.1:8000/docs· LANhttp://<HOST_LAN_IP>:8000/docs - 준비 상태: 로컬
http://127.0.0.1:8000/api/v1/health· LANhttp://<HOST_LAN_IP>:8000/api/v1/health - 자연어 질의:
POST /api/v1/query - 전문가 판정:
POST /api/v1/feedback - 전문가 판정 요약:
GET /api/v1/feedback/summary - 그래프 스키마:
GET /api/v1/graph/schema - 노드 검색:
GET /api/v1/graph/search - 부분 그래프:
GET /api/v1/graph/subgraph
API 경로는 로컬에서는 http://127.0.0.1:8000, 같은 네트워크에서는
http://<HOST_LAN_IP>:8000 뒤에 붙인다.
구조 변경과 완료 조건은 제품 리팩터링 1~2단계 검증에 정리했다.
React는 최종 사용자와 발표 평가자의 단일 제품 진입점이다. 프로젝트 선택, RCA 질문, 답변·결과표·관계 근거, History와 전문가 검토 흐름을 React에서 완결한다.
./scripts/run_product.sh| 화면 | 로컬 주소 | 같은 네트워크 주소 |
|---|---|---|
| 제품 홈 | http://127.0.0.1:3000 |
http://<HOST_LAN_IP>:3000 |
| Projects | http://127.0.0.1:3000/projects |
http://<HOST_LAN_IP>:3000/projects |
| Query Studio | http://127.0.0.1:3000/query |
http://<HOST_LAN_IP>:3000/query |
| Evidence / Graph | http://127.0.0.1:3000/graph |
http://<HOST_LAN_IP>:3000/graph |
| History | http://127.0.0.1:3000/history |
http://<HOST_LAN_IP>:3000/history |
Data·Schema·Operations는 최종 사용자 기본 내비게이션에서 제외한다. 데이터 온보딩, 적재, 평가, 감사와 모델 진단은 Streamlit Internal Console이 소유한다. React는 필요한 운영 상태를 읽기 전용으로 요약하거나 내부 콘솔로 연결하며 같은 기능을 별도 UX로 중복 구현하지 않는다.
Query Studio는 한 화면에서 자연어 답변, 결과표, 인터랙티브 근거 그래프, 생성 Cypher와 검증 이력을 확인한다. 최근 대화는 프로젝트별로 저장한다. CiP-DMD와 별개인 설비 정비 이력 예제가 같은 질의 계약의 재사용 기준이다.
구현 범위와 기존 검증 결과는 제품 리팩터링 3~4단계 검증에 정리했다.
./scripts/run_streamlit.shStreamlit은 개발자, Data Steward, 평가 담당자와 Admin을 위한 내부 콘솔이다. 최종 사용자용 제품 랜딩이나 발표 RCA 여정을 별도로 소유하지 않는다.
- 프로젝트 Registry와 readiness 진단
- 파일·Neo4j 데이터 소스와 업로드 프로파일
- 그래프 매핑, dry-run, 적재와 무결성 확인
- Gold·Blind 평가와 실패 유형 분석
- 질의·ETL·평가 감사로그와 운영 진단
- 개발 환경의 모델·provider·권한 시뮬레이션
제품 질의·Evidence·History는 React에서 수행한다. Streamlit의 기존 Query와 Graph 화면은 내부 진단 기능으로만 취급하며, 배포 프로필별 격리는 2.9-3에서 완결한다.
기존 구현 경계와 검증 결과는 Streamlit 제품형 UX 이전에 기록되어 있으며, 2.9 제품화 단계가 현재 역할 경계를 다시 정의한다.
서버를 실행하는 컴퓨터와 팀원 컴퓨터가 같은 Wi-Fi 또는 LAN에 연결된 상태에서 다음 명령을 실행한다.
bash scripts/run_lan.sh이 스크립트는 호스트의 LAN IP를 자동 감지하고 다음 항목을 함께 설정한다. 첫 실행에서는 LAN 주소가 React 번들에 정확히 반영되도록 production build를 수행하므로 제품 UI가 열리기까지 몇 초 더 걸릴 수 있다.
- React를 production build/start로 실행하고 FastAPI, Streamlit과 함께
0.0.0.0에 바인딩 - 외부 모델 인증 실패로 데모가 중단되지 않도록 기본 API provider를 검증된
gold모드로 실행 - LlamaIndex 문서 RAG fixture를 프로젝트별 persisted index로 초기화
- React가 팀원 브라우저에서도 호스트 FastAPI를 호출하도록 API 주소 설정
- React의 Internal Console 링크를 호스트 Streamlit 주소로 설정
- FastAPI CORS에
http://<HOST_LAN_IP>:3000추가
실행 후 터미널에 아래 형식의 실제 주소가 출력된다.
Product UI: http://192.168.x.x:3000
Internal Console: http://192.168.x.x:8501
API docs: http://192.168.x.x:8000/docs
자동 감지된 IP가 잘못된 경우 직접 지정할 수 있다.
P3_LAN_IP=192.168.5.57 bash scripts/run_lan.sh유효한 OpenAI 또는 Vertex AI 인증으로 자유 질문 모델을 사용하려면 provider를 명시적으로 덮어쓴다.
P3_API_PROVIDER=auto bash scripts/run_lan.sh팀원은 출력된 IP 주소를 사용해야 하며 localhost나 127.0.0.1을 사용하면
각 팀원 자신의 컴퓨터를 가리킨다. macOS 방화벽에서 Python, Node.js와
Streamlit의 수신 연결 허용이 필요할 수 있다. 공용 Wi-Fi에서는 실행하지
말고 신뢰할 수 있는 사설 네트워크에서만 사용한다. Neo4j Browser와 Bolt
포트는 이 스크립트에서 LAN에 노출하지 않는다.
제품 리팩터링 5단계 Data Intake의 안전 경계는 Data Intake 검증에 정리했다. 검색형 Graph Explorer의 계약과 안전 경계는 6단계 Graph Discovery에 정리했다. 도메인 전문가 검증과 감사기록의 신뢰 경계는 7단계 HITL 검증에 정리했다.
Docker Desktop 또는 Docker Engine이 있는 환경에서는 Neo4j부터 두 UI까지 한 번에 재현할 수 있다.
cp .env.example .env
# .env의 NEO4J_PASSWORD를 실제 비밀값으로 변경
./scripts/run_product_stack.sh- React 최종 사용자 제품 UI:
http://127.0.0.1:3000 - Streamlit 내부 운영 콘솔:
http://127.0.0.1:8501 - FastAPI 개발 문서:
http://127.0.0.1:8000/docs - Neo4j DB 개발 도구:
http://127.0.0.1:7474
Docker Compose 제품 스택은 보안을 위해 기본적으로 loopback에만 공개한다.
또한 문서 fixture bootstrap은 기본 비활성화되며 Data Steward/Admin이 승인된
문서를 등록해야 한다. 팀원 공유가 목적이면 위의 bash scripts/run_lan.sh를
사용한다.
공개 서버에서 Vertex Gemini를 사용할 때는 service-account JSON을 이미지나 Git 저장소에 포함하지 않고 public override에 read-only secret 파일로만 주입한다.
P3_VERTEX_CREDENTIALS_FILE="$HOME/.config/p3-cip-dmd/vertex-service-account.json" \
docker compose \
--env-file .env.public \
-f infra/docker-compose.product.yml \
-f infra/docker-compose.public.yml \
up -dinfra/docker-compose.product.yml 단독 실행은 계속 gold를 안전 기본값으로
사용한다. 공개 override의 기본 provider만 gemini이며 credential 파일은
호스트에서 컨테이너의 /run/secrets/vertex-service-account.json으로 read-only
mount된다. 공개 질의는 기본적으로 IP당 분당 5회, 전체 시간당 60회로 제한해
포트폴리오 데모의 모델 비용과 abuse를 제어한다. 필요하면
P3_PUBLIC_QUERY_RATE_LIMIT_PER_MINUTE와
P3_PUBLIC_QUERY_GLOBAL_LIMIT_PER_HOUR로 조정할 수 있다.
제품 사용자 자동 Gate는 다음 명령으로 확인한다.
.venv/bin/python scripts/product_user_release_gate.py --json전체 회귀·Gate·lint·build·React/Streamlit Playwright·패키지 계약은
./scripts/release_check.sh로 확인한다. 자동 Gate가 통과해도 실제 사용자
1인 이상의 무설명 수행 검토 전에는 최종 READY로 판정하지 않는다.
상세 기준과 수동 기록 양식은
2.9-5 Product Release Gate에
정리했다.
컨테이너 구성과 E2E 범위, Neo4j Community 권한 한계는
8단계 배포·E2E 검증에
정리했다.
- HDF5 센서 시계열 전체 적재
- cloud vector DB·production multilingual embedding·semantic reranker
- 범용 GraphRAG와 다중 Agent
- 인증된 다단계 승인, 외부 알림, PostgreSQL·pgvector·n8n 통합
- 사용자 계정·서버 동기화 대화 기록
- 대용량 데이터셋의 비동기 ETL 작업 큐와 재개·취소
발표 사용자 여정은 React 하나로 진행한다. Neo4j가 준비된 상태에서 별도 터미널 두 개로 API와 제품 UI를 실행한다.
# Terminal 1
./scripts/run_api.sh
# Terminal 2
./scripts/run_product.sh발표자가 같은 컴퓨터를 사용하면 시작 주소는 http://localhost:3000이다.
같은 네트워크의 다른 컴퓨터에서 발표하면
http://<HOST_LAN_IP>:3000을 사용한다. 기본 동선은
Home → Projects → Query Studio → Evidence / Graph → History이며,
Streamlit은 데이터·평가·운영 증적을 추가로 설명할 때만 연다.
Architecture / 아키텍처
knowledge-graph-rag · graph-query-generation · retrieval-augmented-generation · agentic-workflow · evidence-grounding · semantic-layer · query-validation · human-in-the-loop
Core technologies / 핵심 기술
neo4j · langgraph
Project context / 프로젝트 맥락
cypher · graph-database · industrial-ai · knowledge-graph · llm · manufacturing · natural-language-processing · rag · root-cause-analysis · streamlit · text-to-cypher