보험 약관 PDF를 분석해 사전에 청구 가능 여부를 판단하고 가입자 편에서 약관을 해석해주는 서비스
- 보험 약관 PDF 업로드 및 분석
- 치료 전/후 보험 청구 가능 여부 사전 확인
- 약관 원문 근거 조항 제시
- 대화형 챗봇으로 자유로운 질문
- 비로그인으로도 사용 가능 / 로그인 시 분석 이력 저장
| 구분 | 기술 |
|---|---|
| Backend | Java 21, Spring Boot |
| Frontend | React |
| AI (생성) | Claude API (Anthropic) |
| AI (검색) | OpenAI Embedding |
| Database | PostgreSQL 16, pgVector |
사전 요구사항: JDK 21, Docker Desktop, OpenAI/Anthropic API Key
docker compose up -d기본 실행은 앱 인프라(PostgreSQL, LocalStack)만 띄운다. AI 요청 관측(Langfuse)까지 필요하면
observability 프로파일을 함께 기동한다 — 트레이스를 볼 때만 필요하며, 컨테이너 6개가 추가된다.
docker compose --profile observability up -dIntelliJ: Run Configuration → Environment Variables
| 변수명 | 값 |
|---|---|
SPRING_AI_OPENAI_API_KEY |
OpenAI API Key |
SPRING_AI_ANTHROPIC_API_KEY |
Anthropic API Key |
CLI:
export SPRING_AI_OPENAI_API_KEY=sk-...
export SPRING_AI_ANTHROPIC_API_KEY=sk-ant-...DB 접속 정보는 application.yml 기본값이 docker-compose 설정과 일치하므로 별도 설정 불필요.
./gradlew bootRun각 AI 요청의 프롬프트·검색된 근거·응답과 토큰·비용·지연을 Langfuse 대시보드에서 요청 단위로 조회한다.
- 관측 스택 기동 — 위
observability프로파일로 6개 컨테이너를 띄운다. .env설정 — Langfuse 초기화 값과 앱→Langfuse 전송용 OTLP 인증 헤더를 추가한다.LANGFUSE_SALT/LANGFUSE_ENCRYPTION_KEY(64자리 hex) /LANGFUSE_NEXTAUTH_SECRET/LANGFUSE_REDIS_AUTHLANGFUSE_INIT_*— 부팅 시 조직/프로젝트/로그인 계정/API 키를 자동 생성OTEL_EXPORTER_OTLP_HEADERS=Authorization=Basic <base64(publicKey:secretKey)>—LANGFUSE_INIT_PROJECT_PUBLIC_KEY와LANGFUSE_INIT_PROJECT_SECRET_KEY를:로 이어 base64 인코딩한 값
- 대시보드 접속 — http://localhost:3000 에서
LANGFUSE_INIT_USER_EMAIL/LANGFUSE_INIT_USER_PASSWORD로 로그인. - 앱에 채팅 요청을 보내면 프로젝트의 Tracing 에 트레이스가 쌓이고, 각 generation 노드의 Input/Output 에서 프롬프트·근거·응답을, 상단에서 토큰·비용·지연을 확인한다.
S3 통합 테스트(S3FileStorageTest)는 Testcontainers 가 LocalStack 컨테이너를 직접 기동/종료한다.
별도로 인프라를 띄울 필요 없이 Docker 데몬만 실행 중이면 어디서든(CI 포함) 통과한다.
./gradlew test