mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
62 lines
3.9 KiB
Plaintext
62 lines
3.9 KiB
Plaintext
---
|
||
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)を参照してください。
|