REST API リファレンス

GeMM の REST API リファレンスです。すべての操作は Backend API を通じて行います。


認証

Backend API は JWT(JSON Web Token)認証を使用します。

ログイン(トークン取得)

POST /api/auth/login
curl -X POST http://localhost:8000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username": "admin", "password": "your-password"}'

レスポンス:

{
  "access": "eyJ...",
  "refresh": "eyJ..."
}

トークンの更新

POST /api/auth/refresh

トークンの検証

POST /api/auth/verify

現在のユーザー情報

GET /api/auth/me

以降のリクエストでは Authorization ヘッダーにトークンを付与してください:

curl -H "Authorization: Bearer eyJ..." http://localhost:8000/api/...

メディア管理

メディア一覧の取得

GET /api/media_db

解析結果付きのメディア一覧:

GET /api/media_with_results

メディア詳細の取得

GET /api/media/{media_id}

ファイルのアップロード

POST /api/upload
curl -X POST http://localhost:8000/api/upload \
  -H "Authorization: Bearer eyJ..." \
  -F "file=@/path/to/video.mp4"

ファイルのダウンロード

GET /api/download?path={file_path}

フォルダのダウンロード(ZIP)

GET /api/download_folder?path={folder_path}

フォルダの作成

POST /api/create_folder

ファイル/フォルダの削除

POST /api/delete

一括削除

POST /api/bulk_delete_files

リネーム

POST /api/rename

コピー

POST /api/copy

移動

POST /api/move

フォルダツリーの取得

GET /api/folder-tree

ファイルの再スキャン

POST /api/rescan

解析

解析の開始(非同期)

POST /api/start_analysis_async
curl -X POST http://localhost:8000/api/start_analysis_async \
  -H "Authorization: Bearer eyJ..." \
  -H "Content-Type: application/json" \
  -d '{
    "file_paths": ["/app/media/video.mp4"],
    "analysis_options": {
      "defaultPrompt": "何が写っていますか?",
      "common_cfg": {
        "temperature": 0.0,
        "max_tokens": 512
      }
    }
  }'

解析ステータスの確認

GET /api/analysis_status

現在実行中の解析

GET /api/current_analysis

解析結果の取得

GET /api/analysis_result?path={file_path}

解析ロック管理

POST /api/analysis-lock/acquire
POST /api/analysis-lock/release
GET  /api/analysis-lock/status

検索

セマンティック検索

GET /api/search?q={query}
curl "http://localhost:8000/api/search?q=赤いヘルメットの作業員" \
  -H "Authorization: Bearer eyJ..."

動画フレーム検索

POST /api/video-frames/search
curl -X POST http://localhost:8000/api/video-frames/search \
  -H "Authorization: Bearer eyJ..." \
  -H "Content-Type: application/json" \
  -d '{"query": "安全装備を着用していない人物"}'

物体検出による検索(Grounding DINO)

POST /api/video-frames/search-objects

セマンティックビュー

セマンティックビューデータの取得

GET /api/semantic-view

UMAPの計算

POST /api/compute-umap

エンベディング生成状態の確認

GET /api/embedding-status

クエリ位置の取得

POST /api/query-position

CLIPエンベディングの生成

POST /api/clip/generate-embeddings

システム

システム準備状態の確認

GET /api/system/ready

ライセンス情報の取得

GET /api/license

ハードウェアライセンスの確認

GET /api/hardware_license

エラーレスポンス

HTTPステータス説明
400リクエストが不正
401認証エラー
403権限不足
404リソースが見つからない
500サーバーエラー