Как использовать объект jsonarray в Dify?
Основные понятия JSONArray
JSONArray
это структура массива для хранения нескольких JSON-объектов. Каждый элемент может быть объектом JSON, массивом или базовым типом данных (например, строкой, числом и т. д.). В Dify В JSONArray
В основном это парсинг и генерация данных в формате JSON.
Все структуры массивов, поддерживаемые Dify: String, Number, Boolean, Integer,Объект, Array, Enum, anyOf
гуаньси
- Схема JSON JSON Schema - это спецификация для описания и проверки формата данных JSON. Она определяет структуру данных JSON, включая типы данных, атрибуты, обязательные поля и т. д. Сама JSON Schema также является объектом JSON, который использует определенные ключевые слова для описания организации данных и ограничений.
- JSONArray JSONArray - это структура для данных JSON, которая представляет собой упорядоченный список значений. Этот список может содержать несколько объектов JSON, массивов или основных типов данных.JSONArray форматируется с помощью средней скобки
[]
Завернуто.
Валидация и описание: JSON Schema может быть использована для проверки JSON-данных, содержащих JSONArray. Например, вы можете определить поле в JSON Schema как тип массива и указать, что каждый элемент этого массива должен быть объектом JSON определенного формата. Такой подход гарантирует, что каждый элемент массива JSONArray будет соответствовать ожидаемой структуре и типу при обработке данных.
типичный пример: Предположим, у нас есть данные в формате JSON:
{ "users": [ {"name": "Alice", "age": 30}, {"name": "Bob", "age": 25} ] }
Если вам нужно определить структурированные JSON-данные в Dify, вы можете использовать JSON Schema для их описания JSONArray
структура. Соответствующая JSON-схема может быть:
{ "type": "object", "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "integer" } }, "required": ["name", "age"] } } }, "required": ["users"] }
В этом примере схема JSON явно указывает, что users
поле представляет собой JSONArray, и каждый объект в нем должен содержать name
ответить пением age
Атрибуты.
Поэтому вопрос возвращается:Как получить максимальную отдачу от Dify Используйте JSON Schema в LLM, чтобы заставить вывод LLM следовать структурированному формату.
Модели, поддерживающие функциональность JSON Schema в Dify
o1-2024-12-17
а затемgpt-4o-mini-2024-07-18
а затемgpt-4o-2024-08-06
а затем
Для получения дополнительной информации о возможностях структурированного вывода данных в моделях семейства OpenAI, пожалуйста, обратитесь к разделу Структурированный вывод.
Обратите внимание, что json_schema и вызов функции Оба могут генерировать структурированные данные.json_schema используется только для структурирования данных для контента.Вызов функций более полезен при вызове данных, инструментов, функций и генерации ответов, именно так используется вызов функций в ассоциированном инструменте "Умный помощник" в Dify.
Полный текст: Настройка структурированного вывода JSON Schema в Dify Tools
Следующий путь использования определяет структурированный вывод LLM:
- Соединяет LLM с инструментами, функциями, данными и т.д. в системе; задается в определении функции
strict: true
Если вы включите эту функцию, то структурированные выводы гарантируют, что параметры, которые LLM генерирует для вызова функции, точно соответствуют схеме JSON, которую вы указали в определении функции. - LLM отвечает пользователю выводом в формате структурированного содержимого, как определено в схеме JSON.
В следующем разделе описано, как включить и использовать функцию JSON Schema в Dify.
1. Открыть схему JSON
Переключите LLM в вашем приложении на модель, поддерживающую вывод JSON Schema, как описано выше, а затем включите форму Setup, чтобы JSON Schema
и заполните шаблон JSON Schema; также включите response_format
переключитесь на колонку json_schema
Формат.

Контент, генерируемый LLM, поддерживает следующие форматы для вывода:
- Текст. Вывод в текстовом формате
2. Определите шаблон JSON Schema.
Вы можете обратиться к следующему формату JSON Schema и определить содержание шаблона:
{
"name":"template_schema",
"description":"A generic template for JSON Schema",
"strict":true,
"schema": {
"type":"object",
"properties": {
"field1": {
"type":"string",
"description":"Description of field1"
},
"field2": {
"type":"number",
"description":"Description of field2"
},
"field3": {
"type":"array",
"description":"Description of field3",
"items": {
"type":"string"
}
},
"field4": {
"type":"object",
"description":"Description of field4",
"properties": {
"subfield1": {
"type":"string",
"description":"Description of subfield1"
}
},
"required": ["subfield1"],
"additionalProperties":false
}
},
"required": ["field1","field2","field3","field4"],
"additionalProperties":false
}
}
Пошаговые инструкции:
- Определите основную информацию:
- устанавливать
name
: Дайте вашей схеме описательное имя. - увеличить
description
: Краткое описание использования схемы. - устанавливать
strict
: true: Обеспечить строгий режим.
- создать
schema
Объект:
- устанавливать
type: "object"
: Указывает корневой уровень в качестве типа объекта. - увеличить
properties
Объект: используется для определения всех полей.
- Определите поля:
- Создайте объект для каждого поля, содержащий
type
ответить пениемdescription
. - Распространенные типы:
string
,number
,boolean
,array
,object
. - Для массивов используйте
items
Определяет тип элемента. - Для объектов рекурсивные определения
properties
.
- Установите ограничения:
- Добавляйте на каждом уровне
required
Массив с перечислением всех необходимых полей. - Настройка
additionalProperties: false
.
- Специальная обработка полей:
- пользоваться
enum
Ограничьте необязательные значения. - пользоваться
$ref
Реализация рекурсивных структур.
типичный пример
1. Цепочка рассуждений (конвенциональная)
Пример файла со схемой JSON
{
"name":"math_reasoning",
"description":"Records steps and final answer for mathematical reasoning",
"strict":true,
"schema": {
"type":"object",
"properties": {
"steps": {
"type":"array",
"description":"Array of reasoning steps",
"items": {
"type":"object",
"properties": {
"explanation": {
"type":"string",
"description":"Explanation of the reasoning step"
},
"output": {
"type":"string",
"description":"Output of the reasoning step"
}
},
"required": ["explanation","output"],
"additionalProperties":false
}
},
"final_answer": {
"type":"string",
"description":"The final answer to the mathematical problem"
}
},
"additionalProperties":false,
"required": ["steps","final_answer"]
}
}
Ссылка на слова реплики
You are a helpful math tutor. You will be provided with a math problem,
and your goal will be to output a step by step solution, along with a final answer.
For each step, just provide the output as an equation use the explanation field to detail the reasoning.
Генератор пользовательского интерфейса (корневой рекурсивный режим)
{
"name":"ui",
"description":"Dynamically generated UI",
"strict":true,
"schema": {
"type":"object",
"properties": {
"type": {
"type":"string",
"description":"The type of the UI component",
"enum": ["div","button","header","section","field","form"]
},
"label": {
"type":"string",
"description":"The label of the UI component, used for buttons or form fields"
},
"children": {
"type":"array",
"description":"Nested UI components",
"items": {
"$ref":"#"
}
},
"attributes": {
"type":"array",
"description":"Arbitrary attributes for the UI component, suitable for any element",
"items": {
"type":"object",
"properties": {
"name": {
"type":"string",
"description":"The name of the attribute, for example onClick or className"
},
"value": {
"type":"string",
"description":"The value of the attribute"
}
},
"additionalProperties":false,
"required": ["name","value"]
}
}
},
"required": ["type","label","children","attributes"],
"additionalProperties":false
}
}
Отсылка к слову:
You are a UI generator AI. Convert the user input into a UI.
Пример эффекта:

привлекать внимание к чему-л.
- Убедитесь, что подсказки приложения содержат инструкции по действиям в ситуациях, когда вводимые пользователем данные не дают правильного ответа.
- Модель всегда будет пытаться следовать заданному шаблону и может вызвать у LLM галлюцинации, если входные данные совершенно не связаны с заданным шаблоном.
- Если LLM обнаружит, что вводимые данные несовместимы с заданием, вы можете включить язык в подсказку, чтобы указать на возврат пустых параметров или конкретного предложения.
- Все поля должны быть
required
Для получения дополнительной информации, пожалуйста, обратитесь кздесь (литературный). - additionalProperties: false всегда должен быть установлен в объекте
- Объект корневого уровня схемы должен быть объектом
- Методы вывода структурированных данных большой модели: избранный список ресурсов LLM JSON
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...