docs: 발표·특허·AI영상요약 자료 및 작업기록 추가

- 발표자료(좌표투영·측점기반재생) 갱신 + 그림/PDF
- 특허 출원 초안 및 도면
- AI 영상요약 서비스 작업기록(docs/history)
- 관련 scripts 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 11:20:03 +09:00
co-authored by Claude Opus 4.8
parent 5c8b499979
commit fe25ce00f1
78 changed files with 6186 additions and 15 deletions
@@ -0,0 +1,47 @@
# AI Video Brief — 온라인 영상 음성다운로드·AI요약 서비스 신규 구축
**소요 시간**: 35분
**Context 사용량**: input 500k / output 20k tokens (추정값)
## 요청 내용
유튜브 등 온라인 영상 URL을 입력하면 ① 음성(mp3) 다운로드 ② 내용 AI 요약을 해주는 서비스 구축.
## 사용자 결정 사항
- 위치: 별도 새 프로젝트 `/home/hanmac/projects/gitea/b23042/ai_video_brief`
- 텍스트 확보: **자막 우선, 없으면 Whisper 음성인식 대체**
- 요약 AI: **로컬 무료 모델 (Ollama)** — 유료 API 대신
- 형태: 웹 화면
## 구축 내용
### 스택
- Python 3.10 venv (`/usr/bin/python3.10` — anaconda 3.8은 구버전이라 회피)
- FastAPI + uvicorn (포트 **55100**, GhiVideo 55000과 충돌 없음)
- yt-dlp 2026.7.4 (다운로드·자막), faster-whisper 1.2.1 (small/CPU/int8)
- Ollama v0.31.1 + **exaone3.5:7.8b** (LG 한국어 특화 모델, 4.8GB)
### 파이프라인
1. `download`: yt-dlp → bestaudio → ffmpeg mp3 변환 → 다운로드 링크
2. `summarize`: 자막(수동→자동, ko→en) 탐색 → 없으면 mp3 다운로드 후 Whisper 받아쓰기 → 6,000자 초과 시 부분요약→최종요약(map-reduce) → EXAONE 한국어 요약
3. 작업은 백그라운드 스레드 + 웹에서 1.5초 폴링으로 진행률 표시
### 특이사항 (다음 에이전트 참고)
- **sudo 사용 불가** (비밀번호 필요) → python3.10-venv apt 설치 실패 → `pip install --user virtualenv`로 우회
- Ollama 최신 릴리스는 `.tgz`가 아닌 **`.tar.zst`** 형식 → anaconda의 zstd로 해제, `~/ollama/bin/ollama`에 수동 설치 (systemd 서비스 없음, run.sh가 자동 기동)
- GPU 없음 → Whisper·Ollama 모두 CPU 동작 (RAM 31GB로 충분)
## 테스트 결과
- ✅ mp3 다운로드: 19초 영상 → 0.4MB mp3 정상 생성
- ✅ Whisper 받아쓰기: 19초 영상 정확히 전사
- ✅ 요약 전 과정: 자막 발견 → EXAONE 한국어 요약 생성 (약 10초 소요)
- ✅ 웹 화면 http://localhost:55100 정상 서빙
## 실행 방법
```bash
cd /home/hanmac/projects/gitea/b23042/ai_video_brief && ./run.sh
# 브라우저: http://localhost:55100
```