Skip to content

QLZIX/video-qa-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

่ง†้ข‘้—ฎ็ญ”ๅนณๅฐ (Video QA Platform)

ๅŸบไบŽ YouTube ่ง†้ข‘็š„ๆ™บ่ƒฝ้—ฎ็ญ”็ณป็ปŸ๏ผŒ้‡‡็”จ RAG (Retrieval-Augmented Generation) ๆžถๆž„ใ€‚

๐Ÿš€ ็”Ÿไบง็Žฏๅขƒ้ƒจ็ฝฒ: ๆŸฅ็œ‹ ็”Ÿไบง็Žฏๅขƒ้ƒจ็ฝฒๆŒ‡ๅ—

โœจ RapidAPI ้›†ๆˆ: ๅฎŒๅ…จ็ป•่ฟ‡ YouTube bot ๆฃ€ๆต‹ - ๆŸฅ็œ‹ RapidAPI ้›†ๆˆๆˆๅŠŸๆŠฅๅ‘Š

โœจ ๆ ธๅฟƒๅŠŸ่ƒฝ

๐ŸŽฏ ๅทฒๅฎž็ŽฐๅŠŸ่ƒฝ

  • โœ… ่ง†้ข‘ๅบ“็ฎก็†: ๆทปๅŠ  YouTube ่ง†้ข‘ URL๏ผŒ่‡ชๅŠจๆž„ๅปบ็Ÿฅ่ฏ†ๅบ“
  • โœ… ๆ™บ่ƒฝ้—ฎ็ญ”: ๅŸบไบŽ่ง†้ข‘ๅ†…ๅฎน็š„่ฏญไน‰ๆœ็ดขๅ’Œ AI ้—ฎ็ญ”
  • โœ… ่ง†้ข‘ๆบฏๆบ: ๆไพ›็ฒพ็กฎ็š„่ง†้ข‘็‰‡ๆฎตๅผ•็”จๅ’Œๆ—ถ้—ดๆˆณ่ทณ่ฝฌ
  • โœ… ๅคš่ฝฎๅฏน่ฏ: ๆ”ฏๆŒไธŠไธ‹ๆ–‡็†่งฃ็š„่ฟž็ปญๅฏน่ฏ
  • โœ… ้™ๆตไฟๆŠค: Redis ้™ๆต้˜ฒๆญขๆปฅ็”จ (3 ่ง†้ข‘/ๅฐๆ—ถ/IP)
  • โœ… Docker ้ƒจ็ฝฒ: ไธ€้”ฎๅฏๅŠจๆ‰€ๆœ‰ๆœๅŠก
  • โœ… ๅคšๅฑ‚้™็บง็ญ–็•ฅ: ่‡ชๅŠจๅˆ‡ๆขๆœ€ไฝณๆ•ฐๆฎๆบ

๐Ÿš€ ่ง†้ข‘/ๅญ—ๅน•่Žทๅ–็ญ–็•ฅ (ๅคšๅฑ‚้™็บง)

็ณป็ปŸ้‡‡็”จๆ™บ่ƒฝ้™็บง็ญ–็•ฅ๏ผŒ็กฎไฟๆœ€้ซ˜ๆˆๅŠŸ็އ๏ผš

ๆ–นๆกˆ 1: RapidAPI (ไธป่ฆ - ๆŽจ่) โญ

  • โœ… ๆ— ้œ€ Cookies - ่‡ชๅŠจ่ฎค่ฏ
  • โœ… ็ป•่ฟ‡ Bot ๆฃ€ๆต‹ - ๅ•†ไธš API ๅฎŒๅ…จ้ฟๅ…ๅฐ็ฆ
  • โœ… ็จณๅฎšๅฏ้  - SLA ไฟ้šœ
  • โš ๏ธ ๆŒ‰้‡่ฎก่ดน - ้œ€่ฆ RapidAPI ่ฎข้˜…

้…็ฝฎ:

RAPIDAPI_KEY=your-rapidapi-key
RAPIDAPI_HOST=youtube-media-downloader.p.rapidapi.com

ๆ–นๆกˆ 2: YouTube Data API v3 (ๅค‡็”จ)

  • โœ… ๅฎ˜ๆ–น API - ๅฏ้ ็จณๅฎš
  • โœ… ๅ…่ดน้…้ข - 10,000 units/day
  • โŒ ๆ— ๅญ—ๅน•ๅ†…ๅฎน - ไป…ๅ…ƒๆ•ฐๆฎ

ๆ–นๆกˆ 3: yt-dlp + Cookies (ๆฌก็บงๅค‡็”จ)

  • โœ… ๅผ€ๆบๅ…่ดน
  • โš ๏ธ ้œ€่ฆ Cookies - ้œ€ๅฎšๆœŸๆ›ดๆ–ฐ
  • โš ๏ธ Bot ๆฃ€ๆต‹้ฃŽ้™ฉ - ๅฏ่ƒฝๅคฑ่ดฅ

ๆ–นๆกˆ 4: Whisper API (ๆœ€็ปˆๅค‡็”จ)

  • โœ… ๆ€ปๆ˜ฏๅฏ็”จ - ้Ÿณ้ข‘่ฝฌๅฝ•
  • โŒ ๆˆๆœฌ้ซ˜ - OpenAI ่ฝฌๅฝ•่ดน็”จ
  • โŒ ้€Ÿๅบฆๆ…ข - ้œ€ไธ‹่ฝฝ้Ÿณ้ข‘

่‡ชๅŠจ้™็บงๆต็จ‹:

RapidAPI โ†’ YouTube API โ†’ yt-dlp + Cookies โ†’ Whisper
   โญไธป่ฆ      ๅค‡็”จ          ๆฌก็บงๅค‡็”จ        ๆœ€็ปˆๅค‡็”จ

ๆŠ€ๆœฏๆ ˆ

ๅŽ็ซฏ

  • Framework: FastAPI + Python 3.11
  • Database: PostgreSQL 15 + pgvector (ๅ‘้‡ๆ•ฐๆฎๅบ“)
  • Task Queue: Celery + Redis
  • AI: OpenAI API (Embeddings + GPT-4 + Whisper)
  • Video:
    • RapidAPI YouTube Media Downloader (ไธป่ฆ) โญ
    • YouTube Data API v3 (ๅค‡็”จ)
    • yt-dlp (ๆฌก็บงๅค‡็”จ)

ๅ‰็ซฏ

  • Framework: React 18 + TypeScript
  • Build Tool: Vite
  • Styling: Tailwind CSS

ๅŸบ็ก€่ฎพๆ–ฝ

  • Container: Docker + Docker Compose
  • Video Processing: RapidAPI / yt-dlp / youtube-transcript-api
  • Audio Transcription: OpenAI Whisper API

ๅฟซ้€Ÿๅผ€ๅง‹

1. ็Žฏๅขƒๅ‡†ๅค‡

็กฎไฟๅทฒๅฎ‰่ฃ…:

  • Docker & Docker Compose
  • Node.js 20+ (ๅผ€ๅ‘็Žฏๅขƒ)
  • Python 3.11+ (ๅผ€ๅ‘็Žฏๅขƒ)

2. ้…็ฝฎ็Žฏๅขƒๅ˜้‡

cp .env.example .env

็ผ–่พ‘ .env ๆ–‡ไปถ๏ผŒๅกซๅ…ฅๅฟ…่ฆ็š„้…็ฝฎ๏ผš

ๅฟ…้œ€้…็ฝฎ:

# OpenAI (ๅฟ…้œ€)
OPENAI_API_KEY=sk-proj-...

# Database (่‡ชๅŠจ้…็ฝฎ)
DATABASE_URL=postgresql+asyncpg://admin:gw123123@localhost:5432/video_qa
REDIS_URL=redis://localhost:6379/0

ๆŽจ่้…็ฝฎ (้€‰ๆ‹ฉไธ€็ง):

้€‰้กน A: RapidAPI (ๆŽจ่ - ๆœ€ไฝณๆ–นๆกˆ) โญ

# RapidAPI - ็ป•่ฟ‡ๆ‰€ๆœ‰ bot ๆฃ€ๆต‹๏ผŒๆ— ้œ€ cookies
RAPIDAPI_KEY=your-rapidapi-key  # ไปŽ https://rapidapi.com ่Žทๅ–
RAPIDAPI_HOST=youtube-media-downloader.p.rapidapi.com

้€‰้กน B: YouTube Data API (ๅ…่ดนๅค‡็”จ)

# YouTube Data API v3 (ๅ…่ดนไฝ†ๆœ‰้…้ข้™ๅˆถ)
YOUTUBE_API_KEY=your-youtube-api-key  # ไปŽ Google Cloud Console ่Žทๅ–

้€‰้กน C: Cookies (ๆœ€ๅŽๅค‡็”จ)

  • ้œ€่ฆๆ‰‹ๅŠจ้…็ฝฎๆต่งˆๅ™จ cookies (่งไธ‹ๆ–‡)
  • ๅฎนๆ˜“่ขซ bot ๆฃ€ๆต‹
  • ้œ€่ฆๅฎšๆœŸๆ›ดๆ–ฐ

3. ้…็ฝฎ่ง†้ข‘่Žทๅ–ๆ–นๆกˆ

๐ŸŒŸ ๆ–นๆกˆ A: RapidAPI (ๆŽจ่ - ้›ถ็ปดๆŠค)

  1. ่Žทๅ– API Key

  2. ้…็ฝฎ็Žฏๅขƒๅ˜้‡

    RAPIDAPI_KEY=your-api-key-here
    RAPIDAPI_HOST=youtube-media-downloader.p.rapidapi.com
  3. ไผ˜ๅŠฟ

    • โœ… ๆ— ้œ€ Cookies
    • โœ… ้›ถ็ปดๆŠคๆˆๆœฌ
    • โœ… ๅฎŒๅ…จ็ป•่ฟ‡ bot ๆฃ€ๆต‹
    • โœ… ๅ•†ไธš SLA ไฟ้šœ

่ฏฆ็ป†ๆ–‡ๆกฃ: RAPIDAPI_INTEGRATION_SUCCESS.md


ๆ–นๆกˆ B: YouTube Cookies (ๅค‡็”จ - ้œ€็ปดๆŠค)

ๅฆ‚ๆžœๅทฒ้…็ฝฎ RapidAPI ๆˆ– YouTube Data API๏ผŒๅฏ่ทณ่ฟ‡ๆญคๆญฅ้ชค

๐Ÿš€ ๆ–นๆณ• 1: ่‡ชๅŠจไปŽๆต่งˆๅ™จๅฏผๅ‡บ (ๆŽจ่)

Windows:

# ไปŽ Edge ๅฏผๅ‡บ (้ป˜่ฎค)
export_cookies.bat

# ๆˆ–ไปŽ Chrome ๅฏผๅ‡บ
export_cookies.bat chrome

Linux/macOS:

# ไปŽ Chrome ๅฏผๅ‡บ
python export_cookies.py chrome

# ไปŽ Edge ๅฏผๅ‡บ
python export_cookies.py edge

้‡ๅฏๅฎนๅ™จ:

docker-compose restart api celery_worker
ๆ–นๆณ• 2: ๆ‰‹ๅŠจๅฏผๅ‡บ
  1. ๅฎ‰่ฃ…ๆต่งˆๅ™จๆ‰ฉๅฑ• EditThisCookie
  2. ็™ปๅฝ• YouTube๏ผŒ่ฎฟ้—ฎไปปๆ„่ง†้ข‘
  3. ๅฏผๅ‡บ cookies ไธบ JSON ๆ ผๅผ
  4. ไฟๅญ˜ๅˆฐ backend/cookies/youtube.json

่ฏฆ็ป†ๆŒ‡ๅ—:

4. ๅฏๅŠจๆœๅŠก

ไฝฟ็”จ Docker Compose ๅฏๅŠจๆ‰€ๆœ‰ๆœๅŠก๏ผš

docker-compose up -d

ๆŸฅ็œ‹ๆœๅŠก็Šถๆ€:

docker-compose ps

ๆŸฅ็œ‹ๆ—ฅๅฟ—:

# ๆ‰€ๆœ‰ๆœๅŠก
docker-compose logs -f

# ็‰นๅฎšๆœๅŠก
docker-compose logs -f api
docker-compose logs -f celery_worker

ๆœๅŠกๅœฐๅ€:

5. ้ชŒ่ฏ้ƒจ็ฝฒ

่ฎฟ้—ฎ http://localhost:3000๏ผŒไฝ ๅบ”่ฏฅ็œ‹ๅˆฐ๏ผš

  • โœ… ๅ‰็ซฏ็•Œ้ขๅŠ ่ฝฝ
  • โœ… ๅฏไปฅๆทปๅŠ  YouTube ่ง†้ข‘
  • โœ… ่ง†้ข‘ๅค„็†ๆˆๅŠŸ๏ผˆๆŸฅ็œ‹ๆ—ฅๅฟ—็กฎ่ฎคไฝฟ็”จไบ†ๅ“ชไธชๆ–นๆกˆ๏ผ‰
  • โœ… ๅฏไปฅ่ฟ›่กŒ้—ฎ็ญ”

ๆต‹่ฏ•่ง†้ข‘: dQw4w9WgXcQ (Rick Astley - Never Gonna Give You Up)

ๅผ€ๅ‘ๆจกๅผ

ๅŽ็ซฏๅผ€ๅ‘

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

# ๅคๅˆถ็Žฏๅขƒๅ˜้‡
cp .env.example .env

# ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
uvicorn app.main:app --reload

# ๅฏๅŠจ Celery worker
celery -A app.tasks.celery_app worker --loglevel=info

ๅ‰็ซฏๅผ€ๅ‘

cd frontend
npm install
npm run dev

้กน็›ฎ็ป“ๆž„

.
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ”œโ”€โ”€ api/              # API ่ทฏ็”ฑ
โ”‚   โ”‚   โ”œโ”€โ”€ models/           # ๆ•ฐๆฎๆจกๅž‹
โ”‚   โ”‚   โ”œโ”€โ”€ services/         # ไธšๅŠก้€ป่พ‘
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ youtube_service.py          # YouTube Data API
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ rapidapi_youtube_service.py # RapidAPI ้›†ๆˆ โญ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ rate_limiter.py             # ้™ๆตๆœๅŠก
โ”‚   โ”‚   โ”œโ”€โ”€ tasks/            # Celery ไปปๅŠก
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ indexing.py   # ่ง†้ข‘็ดขๅผ•็ฎก้“ (ๅซ้™็บง้€ป่พ‘)
โ”‚   โ”‚   โ”œโ”€โ”€ db/               # ๆ•ฐๆฎๅบ“้…็ฝฎ
โ”‚   โ”‚   โ”œโ”€โ”€ config.py         # ้…็ฝฎ็ฎก็†
โ”‚   โ”‚   โ””โ”€โ”€ main.py           # ๅบ”็”จๅ…ฅๅฃ
โ”‚   โ”œโ”€โ”€ db/
โ”‚   โ”‚   โ””โ”€โ”€ init.sql          # ๆ•ฐๆฎๅบ“ๅˆๅง‹ๅŒ–
โ”‚   โ”œโ”€โ”€ cookies/              # YouTube Cookies (ๅฏ้€‰)
โ”‚   โ”œโ”€โ”€ docs/                 # ๆŠ€ๆœฏๆ–‡ๆกฃ
โ”‚   โ”œโ”€โ”€ tests/                # ๆต‹่ฏ•
โ”‚   โ”œโ”€โ”€ requirements.txt      # Python ไพ่ต–
โ”‚   โ””โ”€โ”€ Dockerfile
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/       # React ็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ pages/            # ้กต้ข็ป„ไปถ
โ”‚   โ”‚   โ”œโ”€โ”€ types/            # TypeScript ็ฑปๅž‹
โ”‚   โ”‚   โ””โ”€โ”€ main.tsx          # ๅบ”็”จๅ…ฅๅฃ
โ”‚   โ”œโ”€โ”€ package.json          # Node ไพ่ต–
โ”‚   โ””โ”€โ”€ Dockerfile.dev
โ”œโ”€โ”€ docker-compose.yml        # Docker ็ผ–ๆŽ’
โ”œโ”€โ”€ .env.example              # ็Žฏๅขƒๅ˜้‡ๆจกๆฟ
โ””โ”€โ”€ README.md                 # ้กน็›ฎๆ–‡ๆกฃ

ๆžถๆž„่ฎพ่ฎก

็ณป็ปŸๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         Frontend (React + TS)           โ”‚
โ”‚         http://localhost:3000           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                  โ”‚
                  โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      FastAPI Backend (Python)           โ”‚
โ”‚       http://localhost:8000             โ”‚
โ”‚                                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚  ่ง†้ข‘/ๅญ—ๅน•่Žทๅ– (ๆ™บ่ƒฝ้™็บง)      โ”‚    โ”‚
โ”‚  โ”‚                                โ”‚    โ”‚
โ”‚  โ”‚  1. RapidAPI โญ (ไธป่ฆ)        โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ๆ— ้œ€ cookies          โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ็ป•่ฟ‡ bot ๆฃ€ๆต‹        โ”‚    โ”‚
โ”‚  โ”‚                                โ”‚    โ”‚
โ”‚  โ”‚  2. YouTube Data API (ๅค‡็”จ)   โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ๅฎ˜ๆ–น API              โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ไป…ๅ…ƒๆ•ฐๆฎ              โ”‚    โ”‚
โ”‚  โ”‚                                โ”‚    โ”‚
โ”‚  โ”‚  3. yt-dlp + cookies (ๆฌก็บง)   โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ้œ€่ฆ cookies          โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ๅฏ่ƒฝ่ขซๆฃ€ๆต‹            โ”‚    โ”‚
โ”‚  โ”‚                                โ”‚    โ”‚
โ”‚  โ”‚  4. Whisper (ๆœ€็ปˆๅค‡็”จ)        โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ้Ÿณ้ข‘่ฝฌๅฝ•              โ”‚    โ”‚
โ”‚  โ”‚     โ””โ”€> ๆˆๆœฌ้ซ˜ไฝ†็จณๅฎš          โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ”‚                                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚  RAG ้—ฎ็ญ”็ณป็ปŸ                  โ”‚    โ”‚
โ”‚  โ”‚  - ๅ‘้‡ๆœ็ดข (pgvector)         โ”‚    โ”‚
โ”‚  โ”‚  - OpenAI GPT-4                โ”‚    โ”‚
โ”‚  โ”‚  - ๆตๅผๅ“ๅบ”                    โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                    โ”‚
         โ†“                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   PostgreSQL    โ”‚  โ”‚  Celery Worker  โ”‚
โ”‚   + pgvector    โ”‚  โ”‚  (Background)   โ”‚
โ”‚   port: 5432    โ”‚  โ”‚                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                    โ”‚
         โ†“                    โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚           Redis (Cache)              โ”‚
โ”‚            port: 6379                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็ดขๅผ•็ฎก้“ (Indexing Pipeline)

็ฆป็บฟๅค„็†ๆต็จ‹๏ผŒๅฐ†่ง†้ข‘่ฝฌๅŒ–ไธบๅฏๆฃ€็ดข็š„ๅ‘้‡ๆ•ฐๆฎ๏ผš

  1. ่ง†้ข‘ๅ…ƒๆ•ฐๆฎ่Žทๅ– (ๆ™บ่ƒฝ้™็บง)

    • RapidAPI โ†’ YouTube API โ†’ yt-dlp
  2. ๅญ—ๅน•/่ฝฌๅฝ•่Žทๅ– (ๆ™บ่ƒฝ้™็บง)

    • RapidAPI โ†’ yt-dlp โ†’ youtube-transcript-api โ†’ Whisper
  3. ๆ–‡ๆœฌๅค„็†

    • ่ฏญไน‰ๅˆ†ๅ— (400 tokens/chunk, 50 overlap)
    • ๅ‘้‡ๅตŒๅ…ฅ (OpenAI text-embedding-3-small)
    • ๅญ˜ๅ‚จๅˆฐ pgvector

ๆŸฅ่ฏข็ฎก้“ (Query Pipeline)

ๅœจ็บฟๅฎžๆ—ถๅค„็†ๆต็จ‹๏ผŒๅ“ๅบ”็”จๆˆทๆ้—ฎ๏ผš

  1. ้—ฎ้ข˜ โ†’ ๅ‘้‡ๅŒ–
  2. ๅ‘้‡ โ†’ ็›ธไผผๆ€งๆœ็ดข (pgvector)
  3. ๆฃ€็ดข็ป“ๆžœ โ†’ ๆž„ๅปบไธŠไธ‹ๆ–‡
  4. ไธŠไธ‹ๆ–‡ + ้—ฎ้ข˜ โ†’ LLM ็”Ÿๆˆ็ญ”ๆกˆ
  5. ็ญ”ๆกˆ + ่ง†้ข‘ๅผ•็”จ โ†’ ๆตๅผ่ฟ”ๅ›ž

API ๆ–‡ๆกฃ

ๅฏๅŠจๆœๅŠกๅŽ่ฎฟ้—ฎ: http://localhost:8000/docs

ไธป่ฆๆŽฅๅฃ๏ผš

  • POST /api/videos - ๆทปๅŠ ่ง†้ข‘
  • GET /api/videos - ่Žทๅ–่ง†้ข‘ๅˆ—่กจ
  • POST /api/chat - ้—ฎ็ญ” (SSE ๆตๅผ)
  • GET /api/conversations/{id} - ่Žทๅ–ๅฏน่ฏๅކๅฒ

๐Ÿ“š ๆ–‡ๆกฃๅฏผ่ˆช

๐Ÿš€ ้ƒจ็ฝฒๆ–‡ๆกฃ

โœจ RapidAPI ้›†ๆˆ

๐Ÿช Cookies ้…็ฝฎ (ๅค‡็”จๆ–นๆกˆ)

๐ŸŽต Whisper ้›†ๆˆ

๐Ÿ“‹ ๅ…ถไป–ๆ–‡ๆกฃ

ๅผ€ๅ‘่ฟ›ๅบฆ

  • Phase 1: ๅŸบ็ก€่ฎพๆ–ฝๆญๅปบ

    • ้กน็›ฎ็ป“ๆž„ๅˆ›ๅปบ
    • FastAPI ๅŽ็ซฏ้…็ฝฎ
    • React ๅ‰็ซฏ้…็ฝฎ
    • Docker Compose ็Žฏๅขƒ
    • PostgreSQL + pgvector ่ฎพ็ฝฎ
    • Redis + Celery ้…็ฝฎ
  • Phase 2: ๆ ธๅฟƒๅŠŸ่ƒฝๅฎž็Žฐ

    • SQLAlchemy ORM ๆจกๅž‹
    • ่ง†้ข‘ๅค„็† Celery ไปปๅŠก
    • API ็ซฏ็‚นๅฎž็Žฐ
    • ๅ‰็ซฏ้กต้ขๅผ€ๅ‘
    • RAG ๆŸฅ่ฏข็ฎก้“
    • ๅ‘้‡ๆœ็ดขๅฎž็Žฐ
    • RapidAPI ้›†ๆˆ โญ (ไธป่ฆๆ–นๆกˆ๏ผŒ็ป•่ฟ‡ bot ๆฃ€ๆต‹)
    • YouTube Data API ้›†ๆˆ (ๅค‡็”จๆ–นๆกˆ)
    • Whisper API ้›†ๆˆ (ๆœ€็ปˆๅค‡็”จ๏ผŒ้Ÿณ้ข‘่ฝฌๅฝ•)
    • YouTube Cookies ๆ”ฏๆŒ (ๆฌก็บงๅค‡็”จ)
    • JSON Cookies ่‡ชๅŠจ่ฝฌๆข (็”จๆˆทๅ‹ๅฅฝ)
    • ๅคšๅฑ‚้™็บง็ญ–็•ฅ (ไฟ่ฏๆœ€้ซ˜ๆˆๅŠŸ็އ)
  • Phase 3: ้ƒจ็ฝฒๅ’Œๆต‹่ฏ•

    • Docker ๅฎนๅ™จๅŒ–้ƒจ็ฝฒ
    • ็Žฏๅขƒๅ˜้‡้…็ฝฎ
    • ๆœๅŠกๅฅๅบทๆฃ€ๆŸฅ
    • ้›†ๆˆๆต‹่ฏ•้€š่ฟ‡
    • ๆ–‡ๆกฃๅฎŒๅ–„
  • Phase 4: ๅฏ้€‰ๅŠŸ่ƒฝ (ๆœชๆฅ)

    • ่ง†้ข‘่‡ชๅŠจ้‡‡้›†
    • ๆ‰น้‡ๅค„็†ไผ˜ๅŒ–
    • ๆ€ง่ƒฝ็›‘ๆŽง
    • ็”จๆˆท่ฎค่ฏ

๐ŸŽฏ ๆˆๆœฌไผ˜ๅŒ–ๅปบ่ฎฎ

ๆŽจ่้…็ฝฎ (ๆˆๆœฌๆœ€ไผ˜)

  1. RapidAPI (ไธป่ฆ) - ๆŒ‰้‡่ฎก่ดน

    • ็”จไบŽ็ป•่ฟ‡ bot ๆฃ€ๆต‹
    • ไป…ๅœจๅ…ถไป–ๆ–นๆณ•ๅคฑ่ดฅๆ—ถไฝฟ็”จ
  2. YouTube Data API (ๅค‡็”จ) - ๅ…่ดน้…้ข 10,000 units/day

    • ไผ˜ๅ…ˆไฝฟ็”จๅ…่ดน้…้ข
    • ไป…่Žทๅ–ๅ…ƒๆ•ฐๆฎ
  3. yt-dlp + Cookies (ๆฌก็บง) - ๅฎŒๅ…จๅ…่ดน

    • ่Žทๅ–ๅญ—ๅน•ๅ†…ๅฎน
    • ้œ€่ฆๅฎšๆœŸๆ›ดๆ–ฐ cookies
  4. Whisper (ๆœ€็ปˆ) - ๆŒ‰ๅˆ†้’Ÿ่ฎก่ดน

    • ไป…ๅœจๆ‰€ๆœ‰ๆ–นๆณ•ๅคฑ่ดฅๆ—ถไฝฟ็”จ
    • ่€ƒ่™‘ๆˆๆœฌ

ๆˆๆœฌๅฏนๆฏ”

ๆ–นๆกˆ ๆˆๆœฌ ๆˆๅŠŸ็އ ็ปดๆŠคๆˆๆœฌ
RapidAPI ๐Ÿ’ฐ ๆŒ‰้‡ โญโญโญโญโญ โœ… ้›ถ
YouTube API โœ… ๅ…่ดน* โญโญโญโญ โœ… ้›ถ
yt-dlp โœ… ๅ…่ดน โญโญโญ โš ๏ธ ้ซ˜
Whisper ๐Ÿ’ฐ๐Ÿ’ฐ ้ซ˜ โญโญโญโญโญ โœ… ้›ถ

*ๅ…่ดน้…้ขๆœ‰้™

ๅธธ่ง้—ฎ้ข˜

Q: RapidAPI ๆ˜ฏๅฟ…้œ€็š„ๅ—๏ผŸ

A: ไธๆ˜ฏๅฟ…้œ€็š„ใ€‚็ณป็ปŸๆœ‰ๅคšๅฑ‚้™็บง็ญ–็•ฅ๏ผŒไผš่‡ชๅŠจๅฐ่ฏ• YouTube APIใ€yt-dlp ็ญ‰ๅ…่ดนๆ–นๆกˆใ€‚ไฝ† RapidAPI ๆไพ›ๆœ€้ซ˜ๆˆๅŠŸ็އไธ”ๆ— ้œ€็ปดๆŠคใ€‚

Q: ๅฆ‚ไฝ•้€‰ๆ‹ฉ้…็ฝฎๆ–นๆกˆ๏ผŸ

A:

  • ๆŽจ่: RapidAPI (้›ถ็ปดๆŠค๏ผŒๆœ€้ซ˜ๆˆๅŠŸ็އ)
  • ๅ…่ดน: YouTube API + yt-dlp + cookies (้œ€่ฆ็ปดๆŠค)
  • ็จณๅฎš: ๅŒๆ—ถ้…็ฝฎๅคšไธชๆ–นๆกˆ๏ผŒ่‡ชๅŠจ้™็บง

Q: Cookies ้œ€่ฆๅคšไน…ๆ›ดๆ–ฐไธ€ๆฌก๏ผŸ

A: ้€šๅธธ 1-2 ๅ‘จใ€‚ๅฆ‚ๆžœ้…็ฝฎไบ† RapidAPI๏ผŒๅˆ™ไธ้œ€่ฆ cookiesใ€‚

Q: ่ง†้ข‘ๅค„็†ๅคฑ่ดฅๆ€ŽไนˆๅŠž๏ผŸ

A:

  1. ๆฃ€ๆŸฅๆ—ฅๅฟ—ๆŸฅ็œ‹ไฝฟ็”จไบ†ๅ“ชไธชๆ–นๆกˆ
  2. ๅฆ‚ๆžœๆ‰€ๆœ‰ๆ–นๆกˆๅคฑ่ดฅ๏ผŒ่€ƒ่™‘้…็ฝฎ RapidAPI
  3. ๆŸฅ็œ‹ DOCKER_DEPLOYMENT_SUCCESS.md ็š„ๆ•…้šœๆŽ’้™ค้ƒจๅˆ†

่ดก็ŒฎๆŒ‡ๅ—

  1. Fork ้กน็›ฎ
  2. ๅˆ›ๅปบ็‰นๆ€งๅˆ†ๆ”ฏ (git checkout -b feature/amazing-feature)
  3. ๆไบคๆ›ดๆ”น (git commit -m 'Add some amazing feature')
  4. ๆŽจ้€ๅˆฐๅˆ†ๆ”ฏ (git push origin feature/amazing-feature)
  5. ๅผ€ๅฏ Pull Request

่ฎธๅฏ่ฏ

MIT License

่”็ณปๆ–นๅผ

้กน็›ฎ้“พๆŽฅ: https://github.com/yourusername/video-qa-platform


ๆœ€ๅŽๆ›ดๆ–ฐ: 2025-10-05 Docker ็Šถๆ€: โœ… ่ฟ่กŒไธญ RapidAPI ็Šถๆ€: โœ… ๅทฒ้›†ๆˆ ๆต‹่ฏ•็Šถๆ€: โœ… ้€š่ฟ‡

About

RAG-based Video Question Answering Platform with RapidAPI Integration

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published