Skip to content

About

LLM 기반 경제 학습 추천·요약 플랫폼, 이코노이지(Econoeasy)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

EconoEasy

EconoEasy 이미지1

경제 초보자들을 위한 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 큐를 통해 워커가 처리 후 결과 저장/발행
  • 워커를 기능별 독립 컨테이너로 분리해 장애 격리 및 개별 확장 가능

⚙️ 주요 기술 구현

📰 난이도별 3단계 요약

  • 기사 발행 시 Redis Streams로 전달받아 워커가 비동기 처리
  • Gemini로 Easy / Medium / Advanced 요약을 한 번에 생성 (JSON 응답 파싱)
  • 결과와 처리 상태를 MongoDB에 저장

🔑 경제 용어 추출 · 설명

  • 요약과 같은 article-stream을 별도 Consumer Group으로 구독해 동시 처리
  • Gemini로 핵심 용어와 설명 추출 → 결과 스트림으로 발행
  • LLM 응답 파싱 실패 시 fallback 응답 반환

📈 관련 종목 매칭

  • 상장 종목 목록(stock_list.json)과 기사 본문 문자열 매칭 (LLM 미사용)
  • 다른 종목명에 포함된 이름은 제외해 오탐 감소 (예: 삼성 ⊂ 삼성전자)

📝 퀴즈 생성

  • 키워드 / 기사 기반 객관식 퀴즈를 Gemini로 생성
  • MongoDB에 저장 후 동일 요청 시 재사용해 LLM 호출 최소화

🎬 YouTube 영상 추천

  • 키워드 + 강의 / 해설 / 튜토리얼 조건으로 교육용 한국어 영상 검색
  • 조회수 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 경제 용어 추출·설명, 관련 종목 매칭

About

LLM 기반 경제 학습 추천·요약 플랫폼, 이코노이지(Econoeasy)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages