Spaces:
Sleeping
Sleeping
File size: 2,362 Bytes
44213cc bd8f290 44213cc bd8f290 44213cc bd8f290 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
---
title: Kashikogi Async Space (Draft)
emoji: 🎓
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: "4.19.2"
app_file: app.py
pinned: false
---
# Kashikogi Async Space
賢杉賢太郎プロジェクト向けの Hugging Face Space 構成です。Gradio Blocks と FastAPI を同一プロセスで提供し、以下の機能を実装します。
- `POST /api/audio/upload` : Dify 音声化ノードで生成された一時 URL を受け取り、Hugging Face Dataset に保存
- `POST /api/video/render` : PDF とスライド音声一覧を受け取り、バックグラウンドジョブで動画化
- `GET /api/jobs/{job_id}` : 動画化ジョブの進捗と結果確認
- Gradio UI : Audio Upload / Video Render / Job Status タブで手動検証
## ディレクトリ構成
```
majin/kashikogi_async_space/
├── README.md
├── app.py
├── kashikogi_app/
│ ├── core/
│ ├── models/
│ ├── services/
│ ├── utils/
│ └── gradio_interface.py
├── requirements.txt
└── packages.txt
```
## 必要な環境変数
| 変数名 | 内容 |
|--------|------|
| `HF_DATASET_ID` | 音声・動画・プレビューを保存する Dataset ID |
| `HF_TOKEN` | Dataset 書き込み用トークン |
| `AUDIO_STORAGE_PREFIX` | 音声ファイル保存ディレクトリ(既定 `audio/`) |
| `VIDEO_STORAGE_PREFIX` | 動画・プレビュー保存ディレクトリ(既定 `videos/`) |
| `PDF_RENDER_DPI` | PDF→画像変換時の DPI(既定 150) |
| `PREVIEW_SLIDE_INDEX` | プレビューに使うスライド番号(0 始まり、既定 1) |
| `VIDEO_JOBS_MAX_WORKERS` | 動画レンダリングの同時実行数(既定 1) |
| `VIDEO_JOB_CLEANUP_SECONDS` | ジョブ履歴保持秒数(既定 3600) |
| `LOG_LEVEL` | ログレベル(既定 `INFO`) |
| `CALLBACK_TOKEN` | API/Gradio いずれも必須の共有トークン(未入力時は401) |
| `DIFY_WORKFLOW_URL` | 動画完了時に呼び出す Dify ワークフローのエンドポイント |
| `DIFY_API_KEY` | 上記ワークフロー実行用の API キー |
| `DIFY_LINE_TOKEN_VALUE` | Dify 側で LINE トークンを参照するための値(既定 `{{#env.LINE_TOKEN#}}`) |
## Space 依存
```
poppler-utils
ffmpeg
```
Python 依存は `requirements.txt` を参照してください。
|