경제 초보자들을 위한 LLM 기반 경제 학습 플랫폼
Google Gemini LLM을 활용해 경제 기사를 난이도별로 요약하고, 핵심 경제 용어 해설·퀴즈·학습 영상 추천을 제공합니다.
| 기능 |
설명 |
| 📰 난이도별 3단계 요약 |
기사를 Easy(초등학생) / Medium(일반인) / Advanced(전문가) 수준으로 요약 |
| 🔑 경제 용어 추출 · 설명 |
기사 속 핵심 경제 용어를 추출하고, 선택한 용어를 쉽게 풀어 설명 |
| 📈 관련 종목 매칭 |
기사에 등장하는 상장 종목을 찾아 종목코드·시장·업종 정보 제공 |
| 📝 퀴즈 생성 |
키워드 또는 기사 기반 객관식 퀴즈 생성 (생성 결과 저장 후 재사용) |
| 🎬 YouTube 영상 추천 |
키워드 관련 교육 영상을 검색하고, 댓글을 AI로 분석해 신뢰도 높은 영상 추천 |
| 분류 |
기술 |
| Language |
Python 3.12 |
| Framework |
FastAPI, Uvicorn, Pydantic |
| AI / LLM |
Google Gemini 2.5 Flash, LangChain |
| Database |
MongoDB 7 (Motor 비동기 드라이버) |
| Message Queue |
Redis 7 (Redis Streams) |
| External API |
YouTube Data API v3 |
| Infra |
Docker, Docker Compose |
┌──────────────────────────┐
│ Client / Backend 서버 │
└────┬───────────────┬─────┘
HTTP 요청 │ │ 작업 발행 (XADD)
▼ ▼
┌──────────────────┐ ┌──────────────────────────────┐
│ FastAPI 서버 │ │ Redis Streams │
│ /summarize │ │ article-stream │
│ /keyword │ │ youtube-recommend-stream │
│ /quiz │ │ *-result-stream (결과 반환) │
│ /recommend │ └──────┬──────────────▲────────┘
└────────┬─────────┘ │ XREADGROUP │ XADD
│ ▼ │
│ ┌──────────────────────────────────┐
│ │ 백그라운드 워커 (3개) │
│ │ Article Worker : 기사 요약 │
│ │ Keyword Worker : 용어 추출 │
│ │ Recommend Worker : 영상 추천 │
│ └────────┬─────────────────┬───────┘
▼ ▼ ▼
┌─────────────────────────────┐ ┌──────────────────────┐
│ MongoDB │ │ Google Gemini API │
│ articles / summarized_ │ │ YouTube Data API v3 │
│ articles / quizzes │ └──────────────────────┘
└─────────────────────────────┘
- 동기 처리: 용어 설명·퀴즈 등 즉시 응답이 필요한 요청은 FastAPI가 직접 처리
- 비동기 처리: 기사 요약·키워드 추출·영상 추천처럼 오래 걸리는 작업은 Redis Streams 큐를 통해 워커가 처리 후 결과 저장/발행
- 워커를 기능별 독립 컨테이너로 분리해 장애 격리 및 개별 확장 가능
- 기사 발행 시 Redis Streams로 전달받아 워커가 비동기 처리
- Gemini로 Easy / Medium / Advanced 요약을 한 번에 생성 (JSON 응답 파싱)
- 결과와 처리 상태를 MongoDB에 저장
- 요약과 같은
article-stream을 별도 Consumer Group으로 구독해 동시 처리
- Gemini로 핵심 용어와 설명 추출 → 결과 스트림으로 발행
- LLM 응답 파싱 실패 시 fallback 응답 반환
- 상장 종목 목록(
stock_list.json)과 기사 본문 문자열 매칭 (LLM 미사용)
- 다른 종목명에 포함된 이름은 제외해 오탐 감소 (예: 삼성 ⊂ 삼성전자)
- 키워드 / 기사 기반 객관식 퀴즈를 Gemini로 생성
- MongoDB에 저장 후 동일 요청 시 재사용해 LLM 호출 최소화
- 키워드 +
강의 / 해설 / 튜토리얼 조건으로 교육용 한국어 영상 검색
- 조회수 1,000회 미만·키워드 불일치 영상 제외,
조회수 0.7 + 좋아요 0.3으로 1차 정렬
- 댓글 15개를 Gemini로 분석 →
품질 0.4 + 관련성 0.3 + 교육적 가치 0.2 + 정확도 0.1로 최종 순위 산정
| GitHub |
담당 |
| @mirupio |
기사 3단계 요약, 퀴즈 생성, YouTube 영상 추천, FastAPI 서버 구성, Docker 배포 |
| @Walla-B |
경제 용어 추출·설명, 관련 종목 매칭 |