Skip to content

quangkmhd/edulight

Repository files navigation

🌟 EduLight: Nền tảng Học tập Đa phương thức Thông minh (AI-Powered Learning Platform)

EduLight Banner Python FastAPI Celery PostgreSQL Redis

EduLight là một hệ sinh thái microservices hiện đại, được thiết kế để chuyển đổi nội dung video và âm thanh thành các tài nguyên học tập có cấu trúc. Sử dụng sức mạnh của các mô hình ngôn ngữ lớn (LLM) hàng đầu như Gemini 2.0, GPT-4 và Qwen, EduLight tự động hóa quy trình trích xuất kiến thức, tóm tắt nội dung và tạo phụ đề thông minh.


🚀 Tính Năng Cốt Lõi

1. Xử Lý Video Thông Minh (AI Video Processing)

  • Trích xuất phác thảo (Outline Extraction): Tự động nhận diện cấu trúc bài giảng/video.
  • Phân đoạn chủ đề (Topic Clustering): Chia nhỏ video dài thành các clip ngắn theo chủ đề logic.
  • Đánh giá nội dung (Content Scoring): Chấm điểm mức độ quan trọng của các đoạn hội thoại.
  • Tạo Timeline: Định vị chính xác các mốc thời gian quan trọng trong video.

2. Tóm Tắt Âm Thanh Chuyên Sâu (Audio Summarization)

  • Chuyển đổi Giọng nói thành Văn bản (ASR): Sử dụng AssemblyAI, OpenAI Whisper.
  • Tóm tắt đa cấp độ: Cung cấp các bản tóm tắt Ngắn - Trung bình - Dài tùy theo nhu cầu.
  • Phát hiện ngôn ngữ: Tự động nhận diện và xử lý đa ngôn ngữ (Tiếng Việt, Tiếng Anh, Tiếng Trung...).

3. Hệ Thống 3-Key Fallback Độc Đáo (Smart API Failover)

  • Tự động chuyển đổi: Hệ thống tự động chuyển đổi giữa 3 tài khoản API Gemini khác nhau khi gặp lỗi Quota Exceeded (429) hoặc Rate Limit.
  • Tối ưu hóa chi phí & hiệu năng: Đảm bảo hệ thống hoạt động 24/7 mà không bị gián đoạn do giới hạn của nhà cung cấp API.

4. Kiến Trúc Microservices Linh Hoạt

  • API Gateway: FastAPI trung tâm điều phối tất cả các yêu cầu.
  • Task Orchestrator: Sử dụng Celery và Redis để xử lý các tác vụ nặng dưới nền.
  • Real-time Notifications: WebSocket cung cấp cập nhật tiến độ xử lý theo thời gian thực cho người dùng.

🏗️ Kiến Trúc Hệ Thống (Architecture)

Hệ thống được chia thành các dịch vụ chuyên biệt:

edulight/
├── backend/
│   ├── api_gateway_fastapi/       # Cổng giao tiếp chính, quản lý Router & Middleware
│   ├── audio_summarizer_service/  # Logic xử lý & tóm tắt âm thanh
│   ├── video_processor_service/   # Logic xử lý video & cắt ghép
│   ├── user_auth_service/         # Quản lý định danh & phân quyền (Supabase)
│   ├── notification_service/      # WebSocket & Thông báo thời gian thực
│   ├── task_orchestrator_celery/  # Quản lý hàng đợi tác vụ
│   └── shared_libs/              # Thư viện dùng chung (Models, Utils, Schemas)
├── ai_models/                     # Các mô hình NLP, Speech & LLM Orchestrator
├── infrastructure/                # Cấu hình Docker, Database migrations (Alembic)
├── scripts/                       # Scripts quản trị & giám sát hệ thống
└── config/                        # Quản lý cấu hình tập trung (YAML/Env)

🛠️ Công Nghệ Sử Dụng (Tech Stack)

Backend & Infrastructure

  • Ngôn ngữ: Python 3.10+
  • Web Framework: FastAPI (Asynchronous)
  • Task Queue: Celery + Redis
  • Cơ sở dữ liệu: PostgreSQL (Lưu trữ quan hệ), Redis (Caching & Pub/Sub)
  • Migration: Alembic
  • Object Storage: Cloudflare R2 / MinIO (S3-compatible)
  • Authentication: Supabase Auth

AI & Machine Learning

  • LLMs: Google Gemini (Primary), OpenAI GPT-4, Aliyun Qwen.
  • Speech-to-Text: AssemblyAI, OpenAI Whisper.
  • Video Processing: FFmpeg.

📦 Hướng Dẫn Cài Đặt (Setup)

1. Yêu cầu hệ thống

  • Python 3.10 trở lên.
  • PostgreSQL & Redis đã được cài đặt và đang chạy.
  • Node.js (nếu sử dụng Frontend - optional).

2. Clone dự án & Cài đặt thư viện

git clone https://github.com/quangkmhd/edulight.git
cd edulight
pip install -r requirements.txt

3. Cấu hình Môi trường

Sao chép file .env.example thành .env và điền đầy đủ các thông tin:

cp .env.example .env

Các khóa API quan trọng:

  • DATABASE_URL: Đường dẫn kết nối PostgreSQL.
  • REDIS_URL: Đường dẫn kết nối Redis.
  • GEMINI_API_KEY_VIDEO: Tài khoản A cho xử lý Video.
  • GEMINI_API_KEY_AUDIO: Tài khoản B cho xử lý Audio.
  • GEMINI_API_KEY_FALLBACK: Tài khoản C dự phòng.

🚀 Khởi Chạy Ứng Dụng

Dự án cung cấp bộ công cụ script mạnh mẽ để quản lý toàn bộ dịch vụ:

1. Khởi chạy toàn bộ (Recommended)

chmod +x start_all.sh
./start_all.sh

Script này sẽ tự động:

  1. Kiểm tra & khởi động PostgreSQL/Redis.
  2. Khởi chạy API Gateway (Uvicorn).
  3. Khởi chạy Celery Workers.
  4. Kiểm tra trạng thái sức khỏe của các dịch vụ.

2. Kiểm tra trạng thái

./status_all.sh

3. Dừng tất cả dịch vụ

./stop_all.sh

⚙️ Hệ Thống Fallback Thông Minh (Smart 3-Key System)

EduLight giải quyết vấn đề giới hạn API bằng một giải pháp sáng tạo được cấu hình trong config/global.yaml:

api:
  enable_quota_fallback: true
  gemini_api_keys:
    - "GEMINI_API_KEY_VIDEO"     # Primary for Video
    - "GEMINI_API_KEY_AUDIO"     # Primary for Audio
    - "GEMINI_API_KEY_FALLBACK"  # Universal Backup

Cơ chế hoạt động:

  1. Khi một worker xử lý video, nó sử dụng Key Video.
  2. Nếu gặp lỗi Resource Exhausted (429), hệ thống sẽ ghi log ⚠️ Primary API key hit quota.
  3. Tự động chuyển nốt phần công việc đang dang dở sang Key Fallback.
  4. Sau một khoảng thời gian cooldown, hệ thống sẽ tự động thử lại với Key chính.

📝 Giám Sát & Logs

Logs được chia thành các file riêng biệt để dễ dàng theo dõi:

  • logs/backend.log: Logs của API Gateway.
  • logs/celery.log: Logs của quá trình xử lý ngầm.
  • logs/api_requests.log: Lịch sử các yêu cầu HTTP.

Bạn có thể sử dụng script giám sát API theo thời gian thực:

python scripts/monitor_api_logs.py --follow

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages