For the complete documentation index, see llms.txt. This page is also available as Markdown.

JSONパーサー

生の文字列をJSONに解析します。

JSON文字列(生のJSON、またはMarkdownコードブロックで囲まれたJSON)を、指定したフィールドを抽出して個別の出力として公開することで構造化データに変換します。これにより、JSON解析、LLM/VLM出力処理、構造化データ抽出、設定解析のワークフローで、JSON文字列を利用可能なワークフローデータに変換できます。

このブロックの仕組み

このブロックはJSON文字列を解析し、指定したフィールドを個別の出力として抽出します。このブロックは次のことを行います。

  1. JSON文字列の入力を受け取ります(通常はLLM/VLMブロックまたはワークフロー入力から)

  2. JSONコンテンツを検出して抽出します:

    Markdownで囲まれたJSONを処理します:

    • Markdownコードブロック内に囲まれたJSONを検索します(json ... )

    • この形式はLLM/VLMの応答で非常によく見られます(例:GPTの応答)

    • 複数のMarkdown JSONブロックが見つかった場合は、最初のブロックのみを解析します

    • Markdownタグ内からJSONコンテンツを抽出します

    生のJSON文字列を処理します:

    • Markdownブロックが見つからない場合は、文字列全体をJSONとして解析しようとします

    • 標準的なJSON形式の文字列をサポートします

  3. JSONコンテンツを解析します:

    • PythonのJSONパーサーを使用して、文字列をJSONオブジェクト/辞書に変換します

    • 解析エラーを適切に処理します(解析に失敗した場合は、すべてのフィールドにNoneを返します)

  4. 期待されるフィールドを抽出します:

    • で指定された各フィールドの値を取得します expected_fields parameter

    • 期待される各フィールドについて、解析済みJSON内の対応するキーを検索します

    • フィールド値を返します(フィールドがない場合はNone)

  5. エラー状態を設定します:

    • error_status が設定されます True 期待されるフィールドのうち少なくとも1つを解析済みJSONから取得できない場合

    • error_status が設定されます False すべての期待されるフィールドが見つかった場合(複数のMarkdownブロックが存在しても、最初のもののみが解析されます)

    • エラー状態は常に出力に含まれるため、後続のブロックで解析の成功可否を確認できます

  6. フィールドを出力として公開します:

    • の各フィールドは expected_fields フィールド名を持つ個別の出力になります

    • フィールド値は解析済みJSONから抽出され、出力として利用可能になります

    • 欠落しているフィールドはNoneに設定されます

    • すべての出力は次の形式で参照できます $steps.block_name.field_name 構文

  7. 解析済みデータを返します:

    • 出力には以下が含まれます: error_status (boolean)およびすべての期待されるフィールド

    • フィールドにはJSONから抽出された値が含まれます(欠落している場合はNone)

    • 出力は後続のワークフローステップで使用できます

このブロックは、JSONを返すLLM/VLMの出力の処理、JSON文字列からの構造化設定の抽出、JSONレスポンスのワークフローで利用可能なデータへの解析に特に役立ちます。LLMがMarkdownコードブロック内にJSONを包む一般的なケースにも対応します。

一般的な使用例

  • LLM/VLM出力処理: 大規模言語モデルおよび視覚言語モデルからのJSON出力を解析します(例:GPTのJSON応答を解析し、LLM出力から構造化データを抽出し、VLMのJSON応答を処理する)。これにより、LLM/VLM出力処理ワークフローが可能になります

  • 構造化データ抽出: ワークフローで使用するためにJSON文字列から構造化データを抽出します(例:設定パラメータを抽出し、JSON応答を解析し、構造化フィールドを抽出する)。これにより、構造化データ抽出ワークフローが可能になります

  • 設定解析: JSON設定文字列をワークフロー・パラメータに変換します(例:モデル設定を解析し、ワークフローパラメータを抽出し、JSON設定を解析する)。これにより、設定解析ワークフローが可能になります

  • JSONレスポンス処理: APIやモデルからのJSONレスポンスを処理します(例:APIのJSON応答を解析し、JSONからフィールドを抽出し、JSONデータを処理する)。これにより、JSONレスポンス処理ワークフローが可能になります

  • 動的パラメータ抽出: ワークフローのステップで使用するためにJSON文字列から動的パラメータを抽出します(例:JSONからモデルIDを抽出し、動的設定を解析し、パラメータを動的に抽出する)。これにより、動的パラメータワークフローが可能になります

  • データ形式変換: JSON文字列を構造化されたワークフローデータに変換します(例:JSONをワークフロー入力に変換し、ワークフローで使うためにJSONを解析し、JSONフィールドを抽出する)。これにより、データ形式変換ワークフローが可能になります

他のブロックへの接続

このブロックはJSON文字列を受け取り、解析済みのフィールド出力を生成します:

  • LLM/VLMブロックの後 JSON出力を構造化データに解析します(例:LLMのJSON出力を解析し、VLMのJSONフィールドを抽出し、モデルのJSON応答を処理する)。これにより、LLM/VLMからパーサーへのワークフローが可能になります

  • ワークフロー入力の後 JSON入力パラメータを解析します(例:JSON設定入力を解析し、JSONパラメータを抽出し、JSONワークフロー入力を処理する)。これにより、入力からパーサーへのワークフローが可能になります

  • モデルブロックの前 解析済みフィールドをモデルパラメータとして使用します(例:解析済みのmodel_idをモデルに使い、解析済みの設定をモデル設定に使い、解析済みパラメータをモデルに渡す)。これにより、パーサーからモデルへのワークフローが可能になります

  • ロジックブロックの前 条件で解析済みフィールドを使用します(例:Continue Ifで解析済み値を使い、解析済みフィールドに基づいてフィルタリングし、解析済みデータを使って判断する)。これにより、パーサーからロジックへのワークフローが可能になります

  • データ保存ブロックの前 解析済みフィールド値を保存します(例:解析済みJSONフィールドを保存し、解析済み値を記録し、解析済みデータを保存する)。これにより、パーサーからストレージへのワークフローが可能になります

  • ワークフロー出力において 解析済みフィールドを最終出力として提供します(例:JSON解析出力、構造化データ出力、解析済みフィールド出力)。これにより、パーサーから出力へのワークフローが可能になります

要件

このブロックにはJSON文字列入力(生のJSON、またはMarkdownコードブロックで囲まれたJSON)が必要です。この expected_fields パラメータは、どのJSONフィールドを出力として抽出するかを指定します(フィールド名は有効なJSONキーである必要があります)。The error_status フィールド名は予約済みであり、使用できません expected_fields。このブロックは生のJSON文字列と、Markdownコードブロックで囲まれたJSONの両方をサポートします(json ... )。複数のMarkdownブロックが見つかった場合、最初のものだけが解析されます。解析に失敗した場合、または期待されるフィールドが欠落している場合、フィールドはNoneに設定され、 error_status がTrueに設定されます。期待されるすべてのフィールドは個別の出力となり、後続のワークフローステップで参照できます。

型識別子

ステップで次の識別子を使用してください "type" フィールド: roboflow_core/json_parser@v1 ワークフローにこのブロックをステップとして追加するには。

プロパティ

名前

説明

参照

name

str

このステップの一意の識別子を入力してください。

raw_json

str

解析するJSON文字列。生のJSON文字列(例:'{"key": "value"}')またはMarkdownコードブロックで囲まれたJSON(例: json {"key": "value"} )。Markdownで囲まれたJSONはLLM/VLMの応答でよく見られます。複数のMarkdown JSONブロックがある場合、最初のブロックのみが解析されます。文字列はPythonのJSONパーサーを使って解析され、指定されたフィールドが出力として抽出されます。

expected_fields

List[str]

解析済みJSONから抽出するJSONフィールド名の一覧。各フィールドは、後続のワークフローステップで参照できる個別の出力になります(例:$steps.block_name.field_name)。JSON内に存在するフィールドはその値とともに抽出され、存在しないフィールドはNoneに設定されます。'error_status' フィールド名は予約済み(常に出力として含まれます)であり、この一覧では使用できません。フィールド名はJSONキーと完全に一致する必要があります。

この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。

入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が JSONパーサー のバージョン v1 あるか確認してください。

入力と出力のバインディング
  • 入力

    • raw_json (language_model_output): 解析するJSON文字列。生のJSON文字列(例:'{"key": "value"}')またはMarkdownコードブロックで囲まれたJSON(例: json {"key": "value"} )。Markdownで囲まれたJSONはLLM/VLMの応答でよく見られます。複数のMarkdown JSONブロックがある場合、最初のブロックのみが解析されます。文字列はPythonのJSONパーサーを使って解析され、指定されたフィールドが出力として抽出されます。

  • 出力

    • error_status (boolean) : ブールフラグ。

    • * (*):任意の要素に相当します。

JSON 定義の例

最終更新

役に立ちましたか?