Legal AI Chatbot

누구나 쉽게 쓰는 내 손안의 AI 변호사

1. 프로젝트 개요

Vision

"Legal AI for Everyone"
법률 지식이 없는 일반인도 쉽고 정확하게 법률 정보를 찾을 수 있도록 돕는 대국민 법률 상담 챗봇

핵심 가치

  • 🔒 Local Environment: 데이터 유출 걱정 없는 로컬 환경 (Ollama, Chroma)
  • 🎯 High-Precision: Dense Retrieval + Reranking으로 정확도 향상
  • ⚖️ Verifiable: 엄격한 출처(법령/조문) 인용 강제

2. 핵심 목표

  1. 쉬운 접근성 (Accessibility)

    • 어려운 법률 용어 대신 쉬운 자연어로 질문 가능
    • 누구나 무료로 평등하게 법률 정보 획득
  2. 신뢰성 (Reliability)

    • AI의 답변이 실제 법령/판례에 근거하는지 확인
    • 출처(URL) 제공으로 교차 검증 가능
  3. 정확성 (Accuracy)

    • 사용자의 모호한 질문도 찰떡같이 알아듣는 검색 성능

3. 기술 스택 (Local Stack)

구분 기술 설명
Lang Python 3.10+ 주 개발 언어
V-DB Chroma 경량 벡터 저장소
LLM Ollama Llama 3, Qwen 2.5 (Local)
UI Streamlit 빠른 프로토타이핑

4. 시스템 아키텍처

API 수집 → 정규화 → 청킹/벡터 적재(Chroma) → 벡터 검색(+Rerank) → LLM 생성

5. 데이터 파이프라인

  1. Ingestion: 법제처 API 수집 (JSON)
  2. Normalization: Law / Article 정규화
  3. Indexing:
    • Chunking: 조문/판례 단위 텍스트 분할
    • Embedding: Chroma Vector DB 적재
    • Metadata: 법령명/날짜 필터링 메타데이터

6. 검색 전략 (Vector RAG)

"고정밀 벡터 검색과 Reranking의 조화"

  1. Step A: Vector Retrieval

    • 사용자 질문 임베딩 생성
    • Top-K 유사 문서 검색 (with Metadata Filtering)
  2. Step B: Reranking

    • 검색된 후보군 + 활용자 질문 → 정밀 재채점
    • 최상위 연관성 조문 선별

7. 데이터 모델 (Schema)

  • Document Chunk
    • content: 법령 조문 본문, 판례 요지
    • metadata:
      • type: 'article' | 'case'
      • law_name: 법령명
      • article_no: 조문 번호
      • date: 시행일/선고일

8. 성공 지표 (Metrics)

  • 검색 성능

    • 🎯 Hit@K: 정답 조문이 Top-5 안에 있는가?
    • 🥇 MRR: 정답이 얼마나 상위에 랭크되는가?
  • 답변 품질

    • 📢 Citation Rate: 인용이 포함된 문장 비율
    • ✅ Groundedness: 답변의 근거가 검색 결과에 있는가?

9. 로드맵

  1. Phase 1 (MVP) - Current

    • ETL & Vector Indexing 파이프라인
    • 검색(Retrieval) + 재순위화(Rerank) 구현
    • Streamlit 데모 완성
  2. Phase 2 (Extension)

    • 키워드 검색 (BM25) 하이브리드 확장
    • 심화 평가 (Ragas) 및 UI 고도화

감사합니다

질문 있으신가요?

GitHub: https://github.com/hyeonz673/legal-chatbot