Skip to content

senba1000m3/Soluna

Repository files navigation

Soluna: Anilist 動漫數據分析與推薦平台

Soluna 是一個結合機器學習與 AniList 數據的雲端動漫分析平台。本專案旨在解決「棄番風險」與「選擇困難」問題,透過分析用戶的觀看歷史與動漫特徵,提供棄番機率預測、季節性新番推薦以及用戶契合度分析。

📂 專案結構

本專案採用前後端分離架構,並容器化以便於雲端部署:

  • Solaris (前端): 基於 React + Vite 建置,負責資料視覺化與使用者介面。生產環境使用 Nginx 進行託管。
  • Lunaris (後端): 基於 Python FastAPI 建置,負責與 AniList API 串接、資料處理以及機器學習模型推論。
.
├── docker-compose.yml    # 容器編排設定
├── Solaris/              # 前端原始碼 (React)
│   ├── Dockerfile        # Multi-stage build (Node -> Nginx)
│   └── ...
└── Lunaris/              # 後端原始碼 (FastAPI)
    ├── Dockerfile        # Python 3.12 環境
    ├── main.py           # API 入口點
    └── ...

🛠️ 技術棧

  • 前端: React, Vite, Recharts (圖表繪製), Axios
  • 後端: FastAPI, Uvicorn, Pandas, Scikit-learn, XGBoost
  • 資料來源: AniList GraphQL API
  • 基礎設施: Docker, Docker Compose

🚀 快速開始

前置需求

確保您的電腦已安裝以下軟體:

啟動專案

  1. 複製專案

    git clone https://github.com/senba1000m3/Soluna.git
    cd Soluna
  2. 使用 Docker 啟動 在專案根目錄執行以下指令,這將會自動建置前後端映像檔並啟動服務:

    docker-compose up --build
  3. 訪問服務

💻 本地開發 (非 Docker 模式)

如果您希望在本地分別執行前後端進行開發:

後端 (Lunaris)

cd Lunaris
pip install -r requirements.txt
uvicorn main:app --reload
# 服務運行於: http://localhost:8000

前端 (Solaris)

cd Solaris
npm install
npm run dev
# 服務運行於: http://localhost:5173 (Vite 預設埠)
# 注意:需確保 .env 或程式碼中的 API URL 指向 localhost:8000

📝 功能目標

  1. 棄番預測 (Drop Prediction): 預測用戶放棄某部動漫的機率。
  2. 季節性預測 (Seasonal Forecast): 針對新番進行潛力評估與推薦。
  3. 用戶契合度 (Synergy): 分析兩位用戶的觀影品味重疊度。
  4. 動漫編年史 (Timeline): 根據用戶生日生成專屬的動漫世代時間軸。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors