LLMJSONMake.comRemotion自動化
Make.com → Remotion パイプラインにおける JSON 解析エラーの確実な解決法
LLM 出力の不安定な JSON を確実にパースして自動化パイプラインの稼働率を 100% に近づける、正規表現と 2 段階フォールバックの実装。
完全自動化された YouTube Shorts 生成パイプラインにおいて、最大のボトルネックとなるのが「プロンプト出力結果からの構造化データ(JSON)抽出エラー」です。ここでは、AI Hack Lab で実践している堅牢なフォールバック設計を解説します。
課題:LLM は時折「余計な言葉」を喋る
Make.com の Webhook 経由で Gemini や GPT-4 に「JSON のみを返せ」と指示しても、Markdown のコードブロック ( ```json ) や、前置きのテキストが付与されるケースが多発します。
{
"theme": "Japan Trivia",
"voice_lines": ["おはよう!", "こんにちは!"]
}
あるいは、API タイムアウトによって JSON 自体が途中で欠落し、パースに失敗することもあります。
解決策:正規表現と 2 段階のフォールバック
Remotion 側でレンダリング(特に TTS の並列処理)を開始する前に、Node.js のランナーでデータのクリーニングを必須ステップとして挟みます。
// 1. JSON の波括弧を抽出する(余計な文字列を切り落とす)
const jsonStart = rawData.indexOf('{');
const jsonEnd = rawData.lastIndexOf('}');
if (jsonStart !== -1 && jsonEnd !== -1) {
rawData = rawData.substring(jsonStart, jsonEnd + 1);
}
// 2. パース失敗時は LLM へ再帰的にパースを投げる(またはデフォルト値)
let scriptData;
try {
scriptData = JSON.parse(rawData);
} catch (err) {
console.warn("Validation failed. Initiating fallback Gemini parser...");
scriptData = await generateContent(rawData); // Gemini に不正なテキストを渡し、きれいな JSON を作らせる
}
この「自分でパースできなければもう一度 AI に直させる」という力技アプローチにより、動画のレンダリング自体がクラッシュする事態(稼働率ゼロ)をほぼ完全に防ぐことができます。
結論
LLM のアウトプットを信用せず、常に「純粋な JSON 文字列の中央部分だけを切り抜く関数」を通すこと。これが自動生産システムの堅牢性を担保する一番の近道です。
関連記事
- Arena Blueprint launch 前夜 — 9 ヶ月の自動化ログから抽出した 10 モジュール — Module 2「10 層 Validator pipeline」の原点(本記事の手法を 10 層に拡張)
- YouTube Shorts 完全自動化アーキテクチャ — JSON Validator がどう本番運用で機能するかの実例