Skip to main content
Glama
cerase-ai

cerase-media MCP

Official
by cerase-ai

cerase-media MCP

ファーストパーティのマルチモーダル理解(M-MEDIA-1 = 旧 cerase-ocr + cerase-transcriber の統合): cerase-litellm を介した multimodal ツールモデルエイリアス上の5つの async ツール。エージェント単位で課金されます。最後の2つ(analyze_ui、compare_screenshots)は M-CERASE-MEDIA-UX によって追加された UX/UI スクリーンショットペアです — 同じ multimodal エンドポイント、特化したプロンプト、追加の依存関係なし。

ツール

答える質問

返り値

ocr

この画像には何が書かれている?

{text, model}

describe_image

この画像は何を示している?

{description, model}

transcribe

この音声は何と言っている?

{text, model}

analyze_ui

このUIスクリーンショットには何がある? — レイアウト、タイポグラフィ、色、インタラクティブ要素、テキスト、視覚エラー、アクセシビリティ、一貫性の構造化監査

{analysis, model}

compare_screenshots

2つのスクリーンショットの間で何が変わった? — 前後比較の視覚差分(レイアウト/テキスト/スタイル/新規/削除/リグレッション)

{diff, model}

画像入力は3つの方法で受け付けられます(1つ選択): path(CERASE_TOOL_WORKSPACE_ROOT 配下のファイル)、image_url、または image_base64。compare_screenshots は2画像のバリアント(path1/image1_url/image1_base64 と path2/…)を受け取ります。

設計上非同期: ツールは ~100% LLM待機なので、同時リクエストは単一のランナーコンテナ内の並列I/Oレーンで実行されます(モーダルごとのキューはありません)。ffmpeg(音声正規化)は非同期サブプロセスとして実行されます。

長い音声: チャンカー

transcribe はチャンクより長いもの(chunker.py)をすべてカットし、ピースを並列に文字起こししてテキストを再組み立てします。最初のピース以降の各ピースは、前のピースの最後の数秒を繰り返すため、カット時に単語が失われることはなく、ピースが結合されるときに繰り返された単語が特定されて削除されます。話者の交代が分かっている呼び出し元は、話者タイムラインを渡すことができます: カットはターン変更に移動し、そこで繰り返す必要はありません。

すべてのピース — カットを必要としないほど短い録音も含む — の前に1秒の無音が入ります。単語から始まる音声は、その最初の文が欠けた状態で返されます。

ノブ

デフォルト

決定する内容

CERASE_TRANSCRIBE_CHUNK_SECONDS

120

ピースの長さ、および最初のテキストが届くまでの時間

CERASE_TRANSCRIBE_CHUNK_OVERLAP_SECONDS

6

各ブラインドカットが繰り返す音声の量

CERASE_TRANSCRIBE_CONCURRENCY

4

1つの録音のピースが同時に処理される数

CERASE_TRANSCRIBE_LEAD_SILENCE_SECONDS

1

各ピースの前の無音

Related MCP server: mcp-multimedia-server

同じコードをHTTPエンドポイントとして

transcription_api.py は POST /v1/audio/transcriptions を提供します — ドライバーがすでに話すインターフェース — 同じチャンカー上で。compose サービス cerase-transcription はこのイメージをそのエントリポイントで実行します:

python -m uvicorn --app-dir /app --factory transcription_api:create_app --host 0.0.0.0 --port 8080

OpenAIフィールド(file、model、language、response_format、stream)に加えて、独自の2つを受け取ります: agent_id(または X-Cerase-Agent-Id ヘッダー)。これはすべてのモデル呼び出しの課金先であり、必須です。そして speaker_timeline は {start, end, speaker} の JSON 配列です。呼び出し元は CERASE_INTERNAL_SECRET をベアラーとして提示します。未設定のシークレットはすべてのリクエストを拒否します。stream=true の場合、各ピースは到着するとすぐに transcript.text.delta イベントとして送信され、実行は transcript.text.done で終了します。

環境変数: LITELLM_BASE_URL、LITELLM_MASTER_KEY(スコープ付きサービスキー)、CERASE_MULTIMODAL_ALIAS(デフォルト multimodal)、CERASE_TOOL_WORKSPACE_ROOT(パストラバーサルガードルート)、CERASE_INTERNAL_SECRET(HTTPエンドポイントのベアラー)。

Related MCP Connectors

Related MCP Servers