Files
dify-docs/ja-jp/guides/workflow/structured-outputs.mdx
2025-04-24 17:16:59 +08:00

62 lines
3.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: JSON形式での出力
---
DifyはLLMツールチェーンプラットフォームとして、JSON形式での出力機能をサポートしています。この機能により、LLMから返されるデータの形式が利用しやすく、安定し、予測可能になります。エラー処理やフォーマット変換の手間を削減できます。
## 利点
- **データ形式の整合性確保**: LLMがコンテンツを生成する場合でも、事前に設定された形式に準拠し、データの不整合を防ぎます。
- **後続処理の簡素化**: データベース、APIまたはフロントエンドは、追加のデータクレンジングなしでJSONスキーマを直接解析できます。
- **ローコード開発の効率化**: 開発者は複雑なデータ検証ロジックを手書きする必要がなく、JSONスキーマを使用して出力を制限できます。
## JSON形式での出力の実装方法
Difyの操作画面では、次の2つの方法でJSON形式での出力を実装できます。
- **方法1: ツール設定を直接行う**
- **方法2: LLMードのJSONスキーマエディタを使用する**
### 方法1: ツール設定を直接行う
**[Tool(ツール)](https://docs.dify.ai/ja-jp/plugins/schema-definition/tool) > データ構造 > 出力変数の定義**を参照してください。
### 方法2: LLMードのJSONスキーマエディタを使用する
**[LLM](https://docs.dify.ai/ja-jp/guides/workflow/node/llm) > 高級機能 > 構造化出力** と **[LLM](https://docs.dify.ai/ja/guides/workflow/node/llm) > 活用事例 > 構造化出力**を参照してください。
## 例外処理
**例外状況**
JSONスキーマエディタを使用して構造化出力を行う際に、以下の制限や例外状況が発生する可能性があります。
- **モデルの能力制限**: 一部のLLM(特に70B以下のモデル、またはGPT-3.5Turbo相当のモデル)は、指示への追従性が低いため、JSONスキーマの解析に失敗する可能性があります。
- **形式の互換性**: 一部のLLMはJSONモードのみをサポートし、JSONスキーマをサポートしていないため、厳密なスキーマ解析に失敗する可能性があります。
- **エラーメッセージ**: `Failed to parse structured output: output is not a valid json str`というエラーが発生します。この種のエラーは、主にモデルがJSONの生成に失敗したことが原因です。
**推奨される対処方法**
1. **JSONスキーマをサポートするモデルを優先的に使用する**: 推奨リストは以下のとおりです。
- Gemini2.0Flash/Flash-Lite
- Gemini1.5Flash8B(0827/0924)
- Gemini-1.5pro
- GPT-4o
- GPT-4o-mini
- o1-mini/o3-miniシリーズ
2. **システムプロンプトを適切に調整する**: 指示への追従性を高め、LLMの出力がスキーマ規範に準拠するように、システムプロンプトを調整してください。例えば、JSONスキーマが数式の構造化を目的としているのに、法律条文の解析を指示すると、モデルがタスクを正しく理解できず、出力の精度が低下する可能性があります。
3. **例外処理ポリシーを設定する**: 解析に失敗した場合、以下の対策を検討できます。
1. **再試行設定**: ノード内で**再試行設定**を有効にし、最大再試行回数と再試行間隔を設定して、解析エラーの影響を軽減します。
2. **エラー時の処理を設定する**: ノード内の**例外処理**で**エラー時の処理**を設定します。ノードで例外が発生すると、エラー時の処理が自動的に実行されます。
[エラー処理](https://docs.dify.ai/ja-jp/guides/workflow/error-handling)を参照してください。