Как использовать объект 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:

  1. Соединяет LLM с инструментами, функциями, данными и т.д. в системе; задается в определении функции strict: trueЕсли вы включите эту функцию, то структурированные выводы гарантируют, что параметры, которые LLM генерирует для вызова функции, точно соответствуют схеме JSON, которую вы указали в определении функции.
  2. LLM отвечает пользователю выводом в формате структурированного содержимого, как определено в схеме JSON.

В следующем разделе описано, как включить и использовать функцию JSON Schema в Dify.

 

1. Открыть схему JSON

Переключите LLM в вашем приложении на модель, поддерживающую вывод JSON Schema, как описано выше, а затем включите форму Setup, чтобы JSON Schema и заполните шаблон JSON Schema; также включите response_format переключитесь на колонку json_schema Формат.

Dify 中的 jsonarray object 怎么用

 

Контент, генерируемый 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
}
}

Пошаговые инструкции:

  1. Определите основную информацию:
  • устанавливать name: Дайте вашей схеме описательное имя.
  • увеличить description: Краткое описание использования схемы.
  • устанавливать strict: true: Обеспечить строгий режим.
  1. создать schema Объект:
  • устанавливать type: "object": Указывает корневой уровень в качестве типа объекта.
  • увеличить properties Объект: используется для определения всех полей.
  1. Определите поля:
  • Создайте объект для каждого поля, содержащий type ответить пением description.
  • Распространенные типы:stringnumberbooleanarrayobject.
  • Для массивов используйте items Определяет тип элемента.
  • Для объектов рекурсивные определения properties.
  1. Установите ограничения:
  • Добавляйте на каждом уровне required Массив с перечислением всех необходимых полей.
  • Настройка additionalProperties: false.
  1. Специальная обработка полей:
  • пользоваться 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.

Пример эффекта:

Dify 中的 jsonarray object 怎么用

 

привлекать внимание к чему-л.

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

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...