대한민국 현행 법령을 자연스럽고 빠르게 검색할 수 있는 방법은 없을까?

소개

법률 관련 질의응답을 위한 AI 챗봇을 만들면서 가장 고민이 많았던 부분은, 사용자의 질문이 지나치게 모호하거나 비구조적일 경우 모델이 엉뚱한 조항을 검색하거나 엉뚱한 답을 준다는 점이었어요.

그래서 단순한 검색이나 요약이 아니라, 질문을 먼저 "정제"해서 모델이 이해하기 쉽게 바꿔주는 과정이 필요하다고 느꼈고, 이걸 위해 프롬프트 엔지니어링 기반의 질문 정제 체계를 실험해봤습니다.

진행 방법

사용한 도구

  • OpenAI GPT-3.5-turbo / GPT-4: 질문 정제 및 요약용

  • LangChain: 체인 구성 (질문 정제 → 검색 → 응답)

  • FAISS + BGE-Ko 임베딩: 법령 문서 검색용 벡터 인덱싱

  • FastAPI: API 서버 구현

핵심 프롬프트(예시)

너는 대한민국 법률 질의응답 도우미야.
사용자가 입력한 질문에서 핵심 쟁점, 키워드, 관련 법령 항목을 유추해서 구체적인 질의 형태로 다시 작성해줘.

질문: "{{사용자 질문}}"

조건:
- 질문의 목적을 최대한 명확하게 해석해서 정제할 것
- 불필요한 표현(예: "이럴 경우 어떻게 되나요?")은 제거
- "누가, 무엇을, 왜"가 포함된 구조로 바꿀 것

예시 입력

남편이 생활비를 안 줘요. 이혼 사유 될 수 있나요?

정제 결과

배우자가 생활비를 고의로 지급하지 않는 경우, 민법상 이혼 사유로 인정받을 수 있는지 궁금합니다.

결과와 배운 점

  • 사용자의 감정적·모호한 질문을 구조화하니까 모델 응답이 훨씬 명확해졌어요.

  • 특히 질문 정제만 GPT-4로, 이후 검색과 응답은 GPT-3.5로 분리하니 비용 효율도 잡고 품질도 확보할 수 있었고요.

  • "정제 → 검색 → 응답" 순서로 구성한 LangChain 체인은 질문-응답 품질을 안정적으로 컨트롤할 수 있다는 점이 인상 깊었습니다.

시행착오

  • 질문을 지나치게 요약하면 핵심 맥락이 날아가고,

  • 반대로 그대로 두면 검색이 안 되는 문제가 있었어요.

  • 결국 ‘핵심 표현만 살리되, 원문 뉘앙스를 반영하는 스타일’이 최적이더군요.

앞으로의 계획

  • 현재는 법령에 한정된 질문만 지원하지만,

  • 판례나 행정해석까지 확장된 질의 정제 체계를 시도해볼 예정이에요.

  • 질문 정제 체계도 몇 가지 패턴을 분류해서 템플릿화한 후, 미리 캐싱하는 구조도 실험 중입니다.

도움 받은 글

  • LangChain 공식 문서 – RetrievalQA 체인

  • Promptingguide.ai - Prompt Engineering Guide

  • 제가 직접 개발한 법률 질의응답 챗봇 Ross AI도 참고해보세요.

    대한민국 현행 법령 기반 질의응답 시스템을 누구나 체험할 수 있는 데모 버전입니다.

3

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요