소개
시도하고자 했던 것과 그 이유를 알려주세요.
AI 기반 자체평가 보고서 생성 시스템에서 평가기준 및 작성양식을 반영한 구조화된 보고서를 자동 생성하는 시스템을 구축하고자 했습니다.
진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?
Tip: 사용한 프롬프트 전문을 꼭 포함하고, 내용을 짧게 소개해 주 세요.
Tip: 활용 이미지나 캡처 화면을 꼭 남겨주세요.
Tip: 코드 전문은 코드블록에 감싸서 작성해주세요. ( / 을 눌러 '코드 블록'을 선택)
주요 도구:
- Google Gemini AI: 보고서 생성 및 평가기준 분석용
- Pinecone: DB 저장
- Claude Code: 개발 과정에서 코드 작성 및 디버깅 지원
- 정규식(Regex): 평가기준에서 패턴 자동 추출
1. 아키텍처 설계
4단계 파이프라인 구조로 설계했습니다:
[평가기준 PDF] → CriteriaParser → [체크리스트 항목]
↓
[자료 청크] → StructuredMatcher → [항목별 매칭]
↓
PromptBuilder → [특화 프롬프트]
↓
Gemini API → [보고서 생성]
↓
ReportValidator → [품질 검증]
2. 핵심 모듈 구현
[1단계: 평가기준 자동 분석 시스템 (CriteriaParser)]
평가기준 PDF에서 체크리스트 항목을 자동으로 뽑아내는 시스템을 만들었습니다.
- 1차 시도 (규칙 기반): 정규식과 키워드로 패턴 찾기
- 2차 시도 (AI 보완): 1차에서 실패하면 Gemini AI가 분석
- 결과물: "예산 집행률 준수", "사용내역 보고 적절성" 같은 항목 리 스트
섹션별로 다른 패턴을 적용할 수 있도록 설정 파일(section_patterns.json)을 따로
관리했습니다.
[2단계: 자료 매칭 시스템 (StructuredMatcher)]
추출된 각 항목에 관련 자료를 자동으로 연결하는 시스템입니다.
- 핵심 전략: 기존에 만들어둔 임베딩(문서 벡터)을 재활용해서 추가 비용 제로!
- 매칭 점수 계산:
- 의미 유사도 60%
- 키워드 일치도 30%
- 설명문 일치도 10%
- 결과: 각 항목마다 가장 관련성 높은 자료 3개씩 자동 배정
한국사이트 스크린샷
[3단계: 맞춤형 프롬프트 생성 (PromptBuilder)]
AI에게 보고서 작성을 요청할 때, 각 섹션에 특화된 상세 지시문을 자동으로
만들어줍니다.
프롬프트 예시 내용:
필수 작성 구조는 다음과 같습니다:
평가근거 및 자료 섹션:
□ 예산 집행률 준수
ㅇ 아래 자료를 활용하여 작성하세요
→ 연구계획서.pdf 15페이지 (관련도 92%)
→ 예산집행내역.pdf 3페이지 (관련도 87%)
□ 사용내역 보고 적절성
ㅇ 아래 자료를 활용하여 작성하세요
→ 집행보고서.pdf 8페이지 (관련도 89%)
필수로 포함해야 할 표:
- 평가기간 내 집행률 현황 표
- 평가기간 내 실집행률 현황 표[4단계: 품질 검증 시스템 (ReportValidator)]
생성된 보고서가 제대로 작성되었는지 자동으로 검사합니다.
검증 항목:
- 필수 섹션 3개가 모두 있는지 (평가결과 종합, 평가근거 및 자료, 근거/자료 목록)
- □, ㅇ 기호를 제대로 사용했는지
- 요구된 표가 포함되어 있는지
- 자료 출처를 인용했는지
- 내용 분량이 적절한지
결과: 0~100점 점수와 함께 개선 제안 제공
기존 시스템과의 통합
핵심 전략: 점진적 도입
기존 코드를 전혀 수정하지 않고도 새 기능을 사용할 수 있도록 설계했습니다.
- 평가기준 파일만 추가로 넣어주면 자동으로 새 시스템 작동
- 파일이 없거나 분석 실패 시 자동으로 기존 방식으로 동작
- 검증에서 문제가 발견되어도 일단 결과는 반환 (작업 중단 없음)
결과와 배운 점
배운 점과 나만의 꿀팁을 알려주세요.
과정 중에 어떤 시행착오를 겪었나요?
도움이 필요한 부분이 있나요?
앞으로의 계획이 있다면 들려주세요.
1. 비용 최적화의 핵심은 "규칙 우선, AI는 보조"
- 단순 패턴 찾기는 정규식으로 해결
- 복잡한 경우만 AI 사용
- 결과적으로 AI 사용을 줄이면서도 품질은 동일
2. 기존 자산 재활 용이 중요
- 이미 만들어둔 문서 임베딩을 재사용
- 새로 API 호출할 필요 없어서 추가 비용 제로
- 처리 속도도 3배 이상 빨라짐
3. AI에게 지시할 때는 강하게, 구체적으로
- "해주세요" → "반드시 해야 합니다"로 표현 변경
- 이모지(⚠️, 📐) 활용해서 시각적으로 강조
- 추상적 설명보다 구체적 예시 제공
4. 안전장치(Fallback)를 여러 겹으로
- 1차 실패 → 2차 방법 시도 → 그래도 실패 → 기본값 사용
- 어떤 상황에서도 시스템이 멈추지 않도록 설계
- 기존 사용자에게 영향 제로
5. 윈도우 한글 처리 주의
- 윈도우 콘솔은 기본적으로 CP949 인코딩 사용
- UTF-8로 명시적 변환 필요
- 테스트 스크립트 작성 시 첫 줄에 인코딩 설정
도움 받은 글 (옵션)
참고한 지피터스 글이나 외부 사례를 알려주세요.
(내용 입력)