AI 처리 전용 마이크로서비스로, Spring Boot 백엔드와 통신하여 AI 관련 처리만 담당합니다.
- DB 서버의 개인정보 컬럼 탐지 및 암호화 여부 판단
- 파일 서버의 개인정보 탐지 (문서, 이미지, 음성, 영상) 및 마스킹
- 대화형 AI 어시스턴트 (법령 검색 및 자연어 질의응답)
참고: 저장, 이슈 관리, 대시보드 등 비즈니스 로직은 Spring Boot에서 처리합니다.
- 개인정보 컬럼 탐지: LLM + LangChain으로 스키마 정보에서 개인정보 컬럼 자동 탐지
- 암호화 여부 확인: 분류 모델로 데이터 샘플의 암호화 여부 판단
- 문서: BERT + NER 기반 개인정보 탐지 및 마스킹
- 이미지: Vision 기반 얼굴 탐지 및 마스킹
- 음성: Whisper + LLM 기반 개인정보 탐지 및 마스킹
- 영상: Vision + LLM 기반 얼굴 및 개인정보 탐지 및 마스킹
- 자연어 질의응답: LLM + LangChain으로 사용자 질의에 응답
- 법령 검색: Vector DB에서 관련 법령 검색 (개인정보보호법, GDPR, CCPA 등)
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activatepip install -r requirements.txt# .env 파일 생성 및 편집
OPENAI_API_KEY=your_openai_api_key_here
DATABASE_URL=postgresql://user:password@localhost:5432/piilot
# (선택) 벡터DB를 별도 DB/스키마로 쓸 경우
PGVECTOR_DATABASE_URL=postgresql://user:password@localhost:5432/piilotpython scripts/setup_vector_db.pyuvicorn app.main:app --reload --host 0.0.0.0 --port 8000- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
자세한 구조는 FINAL_STRUCTURE.md를 참조하세요.
app/api/: API 엔드포인트 (요청/응답만)app/services/: AI 처리 로직 (순수 AI)db/: DB AI 서비스file/: 파일 AI 서비스chat/: AI 어시스턴트
app/models/: 요청/응답 모델
- Framework: FastAPI
- AI/ML:
- LangChain (챗봇, DB 탐색)
- BERT + NER (문서 탐지)
- Vision Models (이미지/영상)
- LLM (음성, 챗봇)
- Vector DB: PostgreSQL + pgvector (법령 데이터)
이 서비스는 Spring Boot 백엔드와 통신합니다:
- Spring Boot에서 요청 전송 → AI 처리 → 결과 반환
- 저장, 이슈 관리, 대시보드 등은 Spring Boot에서 처리