[ HK ]
GitHub ↗ 포트폴리오
Heetae Kim Personal Project · 2026.05
LLM + 환각 방지 파이프라인

Blog Agent

상한가 종목 분석 블로그 글을 도메인 데이터 파이프라인으로 자동 생성.
7단 RAG + 5중 검증 + Gemini 자동 검증으로 수치 환각 0건 달성 (v13)

파이프라인
7단
RAG 포함 · DART → 크롤링 → RAG → Ollama
검증 레이어
5중
형식 · 팩트 · 모순 · 자동교정 · Gemini
반복 개선
v13
v1에서 v13까지 지속 이터레이션
데이터 소스
DART+크롤
공시 + Naver 뉴스 · Naver Finance
01 / 07
[ HK ]
Blog Agent Problem
출발점

상한가 분석 글을
매일 쓰는 게 왜 힘든가

Pain 01
팩트 오류 리스크

수급·재무·공시 데이터를 일일이 확인하지 않으면 LLM 할루시네이션이 틀린 수치를 생성한다

Pain 02
매일 반복되는 리서치

상한가 종목마다 DART 공시 확인 + 뉴스 검색 + 재무 분석을 매번 수동으로 하면 한 글에 2시간 이상 소요

Pain 03
품질 일관성 부재

작성자 컨디션에 따라 글의 구조와 깊이가 달라진다. 독자 신뢰를 위한 형식 표준화가 필요

02 / 07
[ HK ]
Blog Agent Pipeline
7단 자동화 파이프라인 (RAG 포함)

상한가 감지 → 이슈 점수 → RAG + LLM → 다중 배포

01
상한가
감지
Naver Finance
상한가 종목 탐지
02
데이터
수집
DART + Naver
6개 소스 병합
03
이슈
점수
임계 점수 기준
필터링
04
RAG 검색
ChromaDB 섹터필터
유사글 2개 주입
05
LLM
생성
exaone3.5 (로컬)
/ Gemini (클라우드)
06
5중
검증
형식·팩트·모순
품질·Gemini
07
다중 배포
Sheets · Instagram
Obsidian · RAG 인덱싱
RAG 벡터DB
220개 글
Obsidian → ChromaDB · nomic-embed-text
데이터 소스
6개 소스
DART 공시 · Naver Finance · 뉴스
평균 소요
4~6분
수동 작성 2시간 대비
03 / 07
[ HK ]
Blog Agent Validation
품질 보증

5중 검증 시스템으로 팩트 오류 최소화

01
형식 검증
제목·소제목·섹션 구조가 정의된 스키마에 맞는지 확인. JSON 파싱 실패 시 자동 재생성 트리거
02
팩트 검증
생성된 수치(주가·거래량·재무수치)를 수집된 원본 데이터와 대조. 불일치 발견 시 해당 문장 플래그
03
모순 검증
글 내부에서 서로 상충하는 진술 탐지. "실적 개선"과 "매출 감소"가 동시에 언급되면 경고
04
자동 교정
LLM 재시도로도 해결되지 않는 케이스를 결정론적 후처리로 강제 교정. 확률적 모델의 한계를 규칙 기반으로 보완
05
Gemini 검증
Gemini로 종목혼동·수치환각·밸류에이션모순을 다각도 검토. 심각도 판단에 따라 배포 차단 + 알림
5단계

순차적으로 통과하지 못하면 재처리. Gemini 검증 critical → 자동 배포 차단. 최종 통과 글만 다중 배포 → 수치 환각 0건 달성 (v13 기준)

04 / 07
[ HK ]
Blog Agent Iteration
v1 → v13

13번의 이터레이션

v1~3
기본 파이프라인 구축
DART API 연결, 단순 프롬프트 생성. 구조화 없이 자유 형식 출력 → 품질 불일치 심각
v4~6
벡터 검색 시도 + 한계 발견
FAISS 벡터 검색 추가 시도. 일반 텍스트엔 효과적이나 DART 사업보고서 특수 구조엔 정규식이 더 정확. 소스별 최적 추출 방식으로 전환
v7~9
검증 레이어 추가
형식·팩트·모순 검증 구현. Selenium 크롤러 안정화(JS 렌더링 타임아웃 처리)
v10~12
Self-critique + 반자동화 전환
완전 자동화 포기 → 검수 포함 반자동화 채택. Self-critique 레이어로 초안 품질 대폭 향상
v13
RAG + 5중 검증 + 다중 배포
ChromaDB + nomic-embed-text로 220개 글 임베딩. 섹터 필터 유사글 2개 LLM 주입. Gemini 검증 추가 → 5중 완성. Sheets·Instagram·Obsidian 자동 배포. 수치 환각 0건
05 / 07
[ HK ]
Blog Agent Result
실제 결과물

4개 채널 자동 다중 배포
Google Sheets · Instagram · Obsidian · RAG 인덱싱

5중 검증을 통과한 글이 동시에 4곳으로 배포됨. Sheets에는 검증 점수·종목명·버전이 기록되어 검수자가 빠르게 리뷰 가능.

작성 시간
4~6분
수치 환각
0건

자동화 범위

상한가 감지 → 데이터 수집 → 이슈 점수 → RAG + LLM 생성 → 5중 검증 → Google Sheets · Instagram 카드뉴스 · Obsidian · RAG 인덱싱 전 과정 무인 실행

v13 기준: 7단 RAG + 5중 검증 + Gemini 자동 검증으로 수치 환각 0건 · 상한가 종목 자동 선정 → 4개 채널 동시 배포

Google Sheets 자동 저장 결과
06 / 07
[ HK ]
Blog Agent What I Learned
반자동화를 선택한 이유

완전 자동화보다 신뢰할 수 있는 반자동화

01
완전 자동화의 실패
v8에서 완전 자동화 시도. 당시 검증 단계를 모두 통과해도 미묘한 뉘앙스 오류가 발생. "숫자는 맞지만 맥락이 틀린" 유형은 자동 탐지 불가. 검수 단계를 제거할 수 없다고 결론.
02
반복 개선이 실력이다
v1과 v13은 코드 구조가 완전히 다르다. 각 버전에서 실제 출력 결과를 보고 다음 문제를 정의하는 루프. "완성"이 아니라 "개선"이 목표임을 체감. GitHub 30+ 커밋이 이 사이클의 실제 기록.
03
데이터 파이프라인이 LLM보다 중요하다
소스별 최적 추출 방식(API/정규식/크롤링) 설계가 LLM 프롬프트 개선보다 훨씬 큰 효과. DART 사업보고서엔 임베딩보다 정규식이 정확했다. LLM은 파이프라인의 한 컴포넌트일 뿐.

다음 단계

Obsidian RAG DB 지속 축적으로 섹터별 Few-shot 품질 자동 개선. Gemini 검증 쿼터 소진 시 4단계 폴백 모델 큐 운영 중. 다종목 병렬 분석 + 신뢰성과 속도의 트레이드오프를 사용자가 조절할 수 있는 구조가 목표

07 / 07
[ HK ]