뒤로가기
AI · RAG2026.02 ~ 진행 중진행 중

AI 기반 뉴스 큐레이션 서비스

AI 기반 뉴스 큐레이션 서비스

Dify + Milvus 기반 RAG 파이프라인으로 최신 뉴스 검색, 요약, 중요도 생성 등의 기능을 포함하는 AI 서비스

담당 역할

RAG 파이프라인 설계 및 Dify 워크플로우 개발 담당

// 아키텍처

AI 기반 뉴스 큐레이션 서비스 아키텍처

설계 근거

뉴스 기사 크롤링 → 지식베이스 적재 → RAG 구조 LLM 응답

// 기술 스택

Dify v1.13.3LLM 워크플로우 플랫폼

선택 이유: 노코드 워크플로우로 빠른 프로토타이핑, LLM·코드·지식검색 노드 통합

Milvus v2.4.15벡터 데이터베이스

선택 이유: 대규모 벡터 검색 최적화, etcd·MinIO와 Docker Compose로 자체 호스팅

Gemini 2.5 FlashLLM (챗봇)

선택 이유: 실시간 대화 응답에 필요한 낮은 지연시간, 비용 대비 성능 우수

text-embedding-3-small임베딩 모델

선택 이유: Knowledge Base 청크 임베딩, score_threshold 0.5 기준 적합

RAG검색 증강 생성

선택 이유: 최신 뉴스 실시간 검색으로 학습 데이터 한계 극복 및 환각 감소

// 문제 해결 경험

이슈

rag_chat 워크플로우에서 지식검색 노드가 ... 상태로 응답 없이 무한 대기. Dify 컨테이너는 전부 Up 상태이고 별다른 에러 메시지도 없어 원인 파악 어려움

분석

Milvus가 Dify와 별도 docker-compose.yml로 구성되어 있고 restart: always 옵션이 없었던 탓에, 서버 재부팅이나 Docker 재시작 시 Milvus만 자동으로 올라오지 않은 것이 원인. Dify 지식검색 노드는 Milvus에 벡터 검색 요청을 보내는데, Milvus가 내려가 있으면 응답을 받지 못하고 무한 대기 상태가 됨

해결

즉시 해결은 docker compose up -d 로 Milvus 수동 재시작. 재발 방지를 위해 docker-compose.yml의 etcd·minio·standalone 세 서비스 모두에 restart: always 추가

결과

이후 서버 재부팅 시에도 Milvus가 자동으로 기동되어 동일 장애 재발 없음

// 회고

성장한 점

RAG 파이프라인 전체 설계 및 벡터 DB 연동 경험

아쉬운 점

검색 정확도 튜닝 및 Prompt Engineering에 많은 시간 소요

향후 방향

사용자 관심사 기반 개인화 뉴스 추천 기능 및 Agent 구조 확장 예정