YouTube μμμ μ’ ν©μ μΌλ‘ λΆμνμ¬ ν¬λ¦¬μμ΄ν°λ€μκ² μ μ©ν μΈμ¬μ΄νΈλ₯Ό μ 곡νλ AI κΈ°λ° λΆμ μμ€ν μ λλ€.
- μμ νκ° μμΉ: μ‘°νμ, μ’μμ, λκΈ μ λ± YouTube Analytics κΈ°λ° μ±κ³Ό μ§ν λΆμ
- λκΈ λΆμ: λκΈμ κ°μ λ³(κΈμ /λΆμ /μ€λ¦½/μ‘°μΈ)λ‘ λΆλ₯νκ³ μμ½ (μ΅μ νλ μνλ§ μ μ©)
- μμ μμ½: YouTube μλ§μ λΆμνμ¬ κ΅¬κ°λ³ κ°μ μμ±
- μμ²μ μ΄ν λΆμ: YouTube Analytics λ°μ΄ν°λ‘ μμ²μ μ΄ν μ§μ νμ λ° μμΈ λΆμ
- μκ³ λ¦¬μ¦ μ΅μ ν: μ λͺ©, μ€λͺ , νκ·Έ λ± YouTube μκ³ λ¦¬μ¦ μ΅μ ν λ°©μ μ μ
- νΈλ λ ν€μλ: μ€μκ° νΈλ λ + μ±λ μ½μ νΈ λ§μΆ€ν ν€μλ μΆμ²
- μ½ν μΈ μμ΄λμ΄: λΆμ κ²°κ³Όλ₯Ό λ°νμΌλ‘ ν μλ‘μ΄ μ½ν μΈ μμ΄λμ΄ μ μ
- Backend: Python FastAPI + SQLModel
- Database: PostgreSQL (λΉμ¦λμ€ λ°μ΄ν° + λ²‘ν° μλ² λ©)
- Message Queue: Apache Kafka
- AI/LLM: OpenAI GPT-4o-mini
- External APIs: YouTube Data API v3, YouTube Analytics API
LLM/
βββ domain/ # λλ©μΈ λ‘μ§
β βββ comment/ # λκΈ λΆμ
β βββ report/ # λ³΄κ³ μ μμ±
β βββ video/ # μμ μ 보
β βββ trend_keyword/ # νΈλ λ ν€μλ
βββ external/ # μΈλΆ μλΉμ€ μ°λ
β βββ rag/ # LLM μλΉμ€
β βββ youtube/ # YouTube API
βββ core/ # κ³΅ν΅ μ€μ
β βββ config/ # λ°μ΄ν°λ² μ΄μ€ μ€μ
β βββ llm/ # ν둬ννΈ ν
νλ¦Ώ
βββ kafka_consumer/ # Kafka λ©μμ§ μ²λ¦¬
- λΉλκΈ° μ²λ¦¬: Kafkaλ₯Ό ν΅ν λμ©λ λ°μ΄ν° λΉλκΈ° μ²λ¦¬
- μ±λ₯ μ΅μ ν: λκΈ λΆμ μ μνλ§ κΈ°λ²μΌλ‘ 80% μ±λ₯ ν₯μ
- νμ₯ κ°λ₯μ±: λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ² κΈ°λ° λͺ¨λν μ€κ³
- μ νμ±: λ€μν YouTube APIμ LLMμ μ‘°ν©ν μ’ ν©μ λΆμ