ローカルAIでJSON出力するには?構造化出力・JSON Schemaを初心者向けに解説
- 公開日
- 2026-06-06
- 更新日
- 2026-06-06
- 情報確認日
- 2026-06-06
構造化出力とは、AIの回答を自由な文章ではなく、決まった形のJSONとして返しやすくする考え方です。ローカルAIでも、LM StudioやOllamaなどのAPI機能を使うことで、JSON Schemaに近い形で出力を制御できる場合があります。ただし、モデルやAPIの対応状況によって安定性は変わるため、出力後の検証、短いスキーマ、失敗時の再試行まで考える必要があります。
導入前に確認すること
- Windowsのバージョン、メモリ容量、GPU/VRAM、空き容量を確認する
- 最初は軽量モデル、短い質問、少ない同時作業から始める
- 公式サイトの対応OS、利用規約、モデルのライセンスを確認する
ローカルAIでJSON出力するとは
JSON出力は、AIの回答をプログラムで扱いやすくするための方法です。普通の文章ではなく、項目名と値を決めた形で返すことで、分類、CSV変換、メモ整理、問い合わせ振り分け、診断結果の生成などに使いやすくなります。
APIでローカルAIを呼び出すだけなら文章でも十分ですが、アプリやスクリプトに組み込む場合は、回答を機械的に読み取れる形にする必要があります。その入口がJSON出力と構造化出力です。
構造化出力とは
構造化出力とは、AIの返答を決まった形に近づける考え方です。たとえば「カテゴリ」「重要度」「要約」「タグ」のように、返してほしい項目を先に決めておきます。
LM StudioやOllamaでは、JSON Schemaを使ったStructured Outputを扱える場合があります。ただし、どのモデルでも同じ安定性になるわけではなく、モデルの指示追従、API実装、スキーマの複雑さに影響されます。
JSON Schemaとは
JSON Schemaは、どの項目を、どの型で返してほしいかを指定する設計図のようなものです。たとえば、titleは文字列、scoreは数値、tagsは文字列の配列、というように形を決めます。
初心者はJSON Schemaの全仕様を覚える必要はありません。まずは、返してほしい項目を少なくし、文字列、数値、真偽値、配列くらいから始めると失敗を見つけやすくなります。
普通の文章出力とJSON出力の違い
| 比較軸 | 普通の文章出力 | JSON出力 | 注意点 |
|---|---|---|---|
| 読みやすさ | 人間には読みやすい | 人間には少し硬い | 画面表示用には文章のほうが自然な場合もある |
| プログラムからの扱いやすさ | 取り出しにくい | 項目ごとに扱いやすい | JSONが壊れると処理が止まる |
| 失敗時の影響 | 少し変でも読める | パース失敗になりやすい | 検証と再試行が必要 |
| 向いている用途 | チャット、説明、下書き | 分類、抽出、CSV変換、診断結果 | 用途で使い分ける |
| 初心者向け度 | 高い | 中くらい | 短いJSONから始める |
普通のプロンプトで「JSONで返して」と頼むだけでは弱い理由
プロンプトに「JSONで返して」と書くだけでも試せますが、コードブロック、説明文、余計な前置き、末尾のコメントが混ざることがあります。人間には読めても、プログラムから見ると正しいJSONではない場合があります。
構造化出力やJSON Schemaを使えるAPIなら、より形を制御しやすくなります。それでも必ず正しいとは断定せず、出力後にJSONとして読み込めるか検証する前提にしてください。
OpenAI互換APIと構造化出力の関係
OpenAI互換APIでは、OpenAI向けコードに近い形でローカルAIを呼び出せる場合があります。LM StudioやOllamaも構造化出力に関連する公式情報を出しています。
ただし、OpenAI互換APIだからすべての構造化出力パラメータが同じとは限りません。対応エンドポイント、response format、JSON Schemaの扱い、エラー時の挙動はツールごとに確認してください。
- ローカルAIをAPIで使う方法 - API、OpenAI互換API、localhostの基本を確認する
LM StudioでJSON出力を考えるときのポイント
LM Studioでは、ローカルサーバーやOpenAI互換API、Structured Output関連の機能を使ってJSON出力を扱える場合があります。まず短いスキーマで、1件の分類やタグ付けから試してください。
モデルが重い場合や長い入力を渡す場合は、JSON出力の安定性以前に、コンテキスト長、モデルサイズ、GPU/VRAM、応答速度が問題になります。
OllamaでJSON出力を考えるときのポイント
OllamaもStructured Outputsの公式情報があり、JSON Schemaで出力形を指定できる場合があります。コマンドやAPIで扱いやすい一方、モデル名、対応状況、スキーマ、プロンプトを自分で管理する場面が増えます。
Ollama公式では、スキーマをAPI側に渡すだけでなく、プロンプトにもスキーマの意図を含める考え方が示されています。初心者は、いきなり複雑なネスト構造にせず、少ない項目から始めてください。
JSON出力が役立つ用途表
| 使い道 | 返したいJSON例のイメージ | 注意点 |
|---|---|---|
| 記事分類 | category, confidence, reason | カテゴリ候補を固定しておく |
| メモ整理 | title, summary, tags | 長いメモは分割する |
| CSV変換 | rows, columns | 表の欠損や改行に注意する |
| 問い合わせ分類 | type, priority, needs_reply | 重要判断は人間が確認する |
| 検索クエリ整理 | keywords, filters | 存在しない条件を作らせない |
| タグ付け | tags, score | タグ候補を絞る |
| 診断結果生成 | result_id, reasons, next_actions | 表示文と内部IDを分ける |
JSON出力が壊れやすい原因
- 入力文が長すぎて、出力形式への注意が弱くなる
- スキーマの項目数やネストが多すぎる
- モデルが構造化出力に強くない
- 温度が高く、自由な文章を混ぜやすい
- コードブロックや説明文も一緒に返してしまう
- OpenAI互換APIの対応範囲を誤解している
安定させるための工夫
最初は、項目数を3〜5個程度に絞り、短い入力、短いJSONから始めます。temperatureを低めにする、カテゴリ候補を固定する、出力後にJSON.parseのような検証を行う、失敗時に再試行する、という運用が現実的です。
スキーマを複雑にしすぎると、ローカルAIでは失敗原因を追いにくくなります。まずは「分類」「タグ付け」「短い要約」など、失敗しても直しやすい用途で練習してください。
JSON出力・MCP・RAGの役割の違い
JSON出力は、返答の形を整えるための仕組みです。MCPは、AIが外部ツールやデータソースを使うための仕組みです。RAGは、文書を検索して回答の材料にする仕組みです。
- MCPとは - 外部ツール連携と権限管理の考え方を見る
- RAG・埋め込み・ベクトルDBの仕組み - 文書検索と回答生成の関係を見る
初心者はどこから試すべきか
まず、ローカルAI APIで短い文章を分類し、3項目程度のJSONを返すところから始めてください。例として、メモを「買い物」「仕事」「学習」に分類し、短い要約とタグを返す、くらいが現実的です。
外部公開や本番データへの自動反映は急がないでください。最初はテスト用データ、localhost、短いスキーマ、出力検証あり、という小さな範囲で動作を見ます。
次に読む記事
- ローカルAIをAPIで使う方法 - APIサーバーとして呼び出す基本に戻る
- MCPとは - JSON出力の次に外部ツール連携を理解する
- コンテキスト長とは - 長い入力でJSONが崩れやすい理由を見る
- Janとは - ローカルAIとAPI接続を画面で扱う選択肢を見る
よくある質問
JSON出力と構造化出力は同じですか?
近い意味で使われますが、構造化出力はJSON Schemaなどを使って返答の形をより明確に制御する考え方です。単にJSONっぽく返すだけより、プログラムで扱いやすくする目的があります。
JSON Schemaを使えば必ず正しいJSONになりますか?
必ずとは言えません。対応APIやモデルによって安定性は変わるため、出力後の検証、短いスキーマ、失敗時の再試行を前提にしてください。
ローカルAIでもJSON出力は使えますか?
使える場合があります。LM StudioやOllamaではStructured OutputやJSON Schema関連の機能が案内されていますが、対応状況はバージョンやモデルで変わります。
普通に「JSONで返して」と頼むだけではだめですか?
簡単な用途なら試せますが、コードブロックや余計な説明が混ざることがあります。プログラムで処理するなら、構造化出力、検証、再試行を考えたほうが安全です。
個人開発でJSON出力は何に使えますか?
記事分類、メモ整理、タグ付け、問い合わせ分類、CSV変換、診断結果生成などに使えます。最初は失敗しても直しやすい小さな用途から始めてください。
OpenAI互換APIならどのツールでも同じですか?
同じとは限りません。OpenAI互換APIでも、対応エンドポイント、パラメータ、JSON Schemaの扱いはLM Studio、Ollama、Janなどで違う場合があります。
次に読むおすすめルート
開発・API連携したい人
LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
- ローカルAIをAPIで使う方法
- LM StudioとOllamaの違い
- コンテキスト長とは
- RAG・埋め込み・ベクトルDBの仕組み
- RAG評価と引用確認の基礎
- faithfulness確認
- ローカルRAGのプライバシー
- MCPとは
- ローカルLLMの安全性とプライバシー
- Gemma 4 12Bの更新メモ
- Hermes Desktopとは
- Hermes DesktopとLM Studio接続
- Hermes DesktopとOllama接続
- Hermes Desktop接続トラブル
- Hermes DesktopでOpenRouterを使う
- Hermes DesktopでDeepSeek APIを使う
- Hermes DesktopでProviderを使い分ける
- Hermes DesktopとLM Studio接続の確認ポイント
- Hermes AgentとDesktopの違い
- Ollamaとは
- Ollamaの解説
- 診断基準
- 比較表
あなたはどのタイプ?
- 初めてローカルAIを触る人 - まず全体像をつかみ、LM StudioとOllamaの違い、モデルサイズの考え方を順番に確認します。
- GPUなし・低スペックPCの人 - 軽量モデル、メモリ別の目安、重いときの確認ポイントを先に見ます。
- PDFや資料を読ませたい人 - 先に基本を押さえ、モデル単体の確認後にAnythingLLMへ進みます。
- 開発・API連携したい人 - LM StudioとOllamaの違いを確認し、API、長文処理、RAGまで段階的に進みます。
関連チェック先
- LM Studio Structured Output - LM StudioでJSON Schemaを使ったStructured Outputを扱う公式ドキュメントです。
- Ollama Structured Outputs - OllamaでJSON Schemaによる構造化出力を扱う公式ドキュメントです。
- LM Studio API / Developer Docs - LM StudioのSDK、REST API、OpenAI互換API、ローカルサーバー機能を確認できます。
- Ollama API - OllamaのAPI、デフォルトのlocalhost、Python/JavaScriptライブラリを確認できます。