μκ°μ₯μ μΈμ μν AI κΈ°λ° μ€μκ° λ³΄ν 보쑰 μμ€ν
Vision Contactλ μ»΄ν¨ν° λΉμ κ³Ό AI κΈ°μ μ νμ©νμ¬ μκ°μ₯μ μΈμ μμ ν 보νμ λλ μΉ κΈ°λ° μ루μ μ λλ€.
- YOLO + GPT-4o-mini Vision: κ΅ν΅ νμ§ν, μ₯μ λ¬Ό μ€μκ° κ°μ§
- RAG κΈ°λ° μ€λͺ : κ°μ§λ κ°μ²΄μ λν μν©λ³ λ§μΆ€ μλ΄
- μμ± νΌλλ°±: OpenAI TTSλ‘ μ¦κ°μ μΈ μμ± μλ΄
- STT: OpenAI Whisper-1μΌλ‘ μμ± μΈμ
- κ²½λ‘ μλ΄: TMAP API κΈ°λ° μ€μκ° λ€λΉκ²μ΄μ
- λ μ¨/λ΄μ€ μ‘°ν: μμΉ κΈ°λ° μ 보 μ 곡
- TTS: μμ°μ€λ¬μ΄ νκ΅μ΄ μμ± μλ΅
- μμ± λ²μ: Whisper STT + GPT-4o λ²μ
- 4κ° μΈμ΄ μ§μ: νκ΅μ΄, μμ΄, μΌλ³Έμ΄, μ€κ΅μ΄
- Hallucination λ°©μ§: 3λ¨κ³ κ²μ¦ λ‘μ§
- μλ λ‘κΉ : λͺ¨λ νλ λ΄μ DB μ μ₯
- 리ν¬νΈ μμ±: μΌλ³/μ£Όλ³/μλ³ ν΅κ³
- μ€λμ€ μ¬μ: μ μ₯λ μμ± μλ΄ μ¬μ²μ·¨
- Vue 3 (Composition API, TypeScript)
- Vite (λΉλ λꡬ)
- Pinia (μν κ΄λ¦¬)
- Axios (HTTP ν΄λΌμ΄μΈνΈ)
- FastAPI (Python μΉ νλ μμν¬)
- SQLAlchemy (ORM) + SQLite (DB)
- OpenAI API:
- GPT-4o: λ²μ μμ§
- GPT-4o-mini: Vision λΆμ
- Whisper-1: STT (Speech-to-Text)
- TTS-1: Text-to-Speech
- YOLOv8: μ€μκ° κ°μ²΄ νμ§
- OpenCV: μ΄λ―Έμ§ μ²λ¦¬
- TMAP (SK Open API): κ²½λ‘ μλ΄
- Naver News: λ΄μ€ μ‘°ν
- OpenWeather: λ μ¨ μ 보
- Kakao: μμΉ μλΉμ€
- Python 3.11 μ΄μ
- Node.js 20.19.0 μ΄μ λλ 22.12.0 μ΄μ
- OpenAI API ν€ (νμ)
μμΈν μ€μΉ κ°μ΄λλ SETUP_GUIDE.mdλ₯Ό μ°Έκ³ νμΈμ.
# .env.example 볡μ¬
cp backend/.env.example backend/.env
# .env νμΌ νΈμ§ (API ν€ μ
λ ₯)cd backend
# κ°μνκ²½ μμ± λ° νμ±ν
python3 -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\Activate.ps1
# μμ‘΄μ± μ€μΉ
pip install -r requirements.txt
# μλ² μ€ν
python run.pycd frontend/vision-contact-app
# μμ‘΄μ± μ€μΉ
npm install
# κ°λ° μλ² μ€ν
npm run devhttp://localhost:5173
version_2/
βββ backend/
β βββ app/
β β βββ api/ # API μλν¬μΈνΈ
β β βββ models/ # DB λͺ¨λΈ
β β βββ services/ # λΉμ¦λμ€ λ‘μ§
β β βββ database/ # DB μ°κ²°
β βββ requirements.txt
β βββ run.py
β βββ .env.example
βββ frontend/
β βββ vision-contact-app/
β βββ src/
β β βββ components/ # Vue μ»΄ν¬λνΈ
β β βββ views/ # νμ΄μ§
β β βββ stores/ # Pinia μ€ν μ΄
β β βββ router/ # λΌμ°ν
β βββ package.json
βββ instructions/
β βββ YOLO_model/ # YOLO λͺ¨λΈ νμΌ
βββ SETUP_GUIDE.md # μ€μΉ κ°μ΄λ
βββ README.md
μλ² μ€ν ν Swagger UIμμ νμΈ κ°λ₯:
http://localhost:8000/docs
POST /api/voice/command: μμ± λͺ λ Ή μ²λ¦¬POST /api/translation/translate: μμ± λ²μPOST /api/detection/analyze: κ°μ²΄ νμ§ λ° λΆμGET /api/reports/summary: μ¬μ© ν΅κ³GET /api/logs: νλ λ‘κ·Έ μ‘°ν
Whisper STTμ μ€μΈμμ λ°©μ§νκΈ° μν 3λ¨κ³ κ²μ¦:
- 80κ° μ΄μμ λΉμ§μ μΈμ΄ λΈλ리μ€νΈ
- μλΉμ€ μ§μ μΈμ΄(ν/μ/μΌ/μ€) μΈ κ°μ§ μ μ°¨λ¨
- "ꡬλ κ³Ό μ’μμ", "Thanks for watching" λ± 10κ° ν¨ν΄
- νμ΅ λ°μ΄ν° νΈν₯μΌλ‘ μΈν μ€μΈμ λ°©μ§
- 3μ λ―Έλ§ ν μ€νΈ κ±°λΆ
- 무μ λλ κ·Ήν μ§§μ μ‘μ νν°λ§
κ²°κ³Ό: μλͺ»λ λ²μ μμ² 95% μ΄μ μ¬μ μ°¨λ¨, GPT-4o λΉμ© μ κ°
- μΉ΄λ©λΌ νμ±ν
- λͺ¨λ μ ν (μ΄λ¦°μ΄, μκ°μ₯μ , μ°¨λ)
- μ€μκ° κ°μ²΄ κ°μ§ λ° λ°μ΄λ© λ°μ€ νμ
- νμ§ν κ°μ§ μ μλ μμ± μλ΄
- λ§μ΄ν¬ λ²νΌ ν΄λ¦
- λͺ
λ Ήμ΄ λ°ν:
- "κ°λ¨μμΌλ‘ μλ΄ν΄μ€" β κ²½λ‘ μλ΄
- "λ μ¨ μλ €μ€" β νμ¬ λ μ¨
- "λ΄μ€ λ€λ €μ€" β μ£Όμ λ΄μ€
- μμ± μλ΅ μ¬μ
- λ²μ λͺ¨λ μ§μ
- λͺ©ν μΈμ΄ μ ν
- μμ± μ λ ₯
- μλ μΈμ΄ κ°μ§ β λ²μ β νλ©΄ νμ
λ³Έ νλ‘μ νΈλ μΈλΆ APIλ₯Ό μ¬μ©ν©λλ€:
- OpenAI API: μ λ£ (μ¬μ©λ κΈ°λ°)
- TMAP, Naver, OpenWeather: λ¬΄λ£ (μΌμΌ ν λΉλ μ ν)
μ΄μ λ° Pull Requestλ νμν©λλ€!
νλ‘μ νΈ κ΄λ ¨ λ¬Έμλ GitHub Issuesλ₯Ό μ΄μ©ν΄μ£ΌμΈμ.
Made with β€οΈ for Accessibility