Spaces:
Sleeping
Sleeping
| 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` を参照してください。 | |