Comment utiliser l'objet jsonarray dans Dify ?
JSONArray Concepts de base
JSONArray
est une structure de tableau permettant de stocker plusieurs objets JSON. Chaque élément peut être un objet JSON, un tableau ou un type de données de base (chaîne de caractères, nombre, etc.). Dans le fichier Dify Dans le cadre de la JSONArray
Il s'agit principalement d'analyser et de générer des données JSON.
Toutes les structures de tableau prises en charge par Dify : chaîne de caractères, nombre, booléen, entier,Objet, Array, Enum, anyOf
guanxi
- Schéma JSON Le schéma JSON est une spécification permettant de décrire et de valider le format de données JSON. Il définit la structure des données JSON, y compris les types de données, les attributs, les champs obligatoires, etc. Le schéma JSON lui-même est également un objet JSON qui utilise des mots-clés spécifiques pour décrire l'organisation des données et des contraintes.
- JSONArray JSONArray est une structure de données JSON qui représente une liste ordonnée de valeurs. Cette liste peut contenir plusieurs objets JSON, des tableaux ou des types de données de base. Cette liste peut contenir plusieurs objets JSON, des tableaux ou des types de données de base.
[]
Enveloppé.
Validation et descriptionJSON Schema : JSON Schema peut être utilisé pour valider des données JSON contenant des JSONArray. Par exemple, vous pouvez définir un champ dans un schéma JSON comme un type de tableau et spécifier que chaque élément de ce tableau doit être un objet JSON d'un format particulier. Cette approche garantit que chaque élément du tableau JSON est conforme à la structure et au type attendus lors du traitement des données.
exemple typique: Supposons que nous ayons des données JSON comme suit :
{ "users": [ {"name": "Alice", "age": 30}, {"name": "Bob", "age": 25} ] }
Si vous avez besoin de définir des données JSON structurées dans Dify, vous pouvez utiliser le schéma JSON pour les décrire. JSONArray
structure. Le schéma JSON correspondant peut être :
{ "type": "object", "properties": { "users": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "integer" } }, "required": ["name", "age"] } } }, "required": ["users"] }
Dans cet exemple, le schéma JSON indique explicitement que l'élément users
est un JSONArray, et chaque objet qui le compose doit contenir un élément name
répondre en chantant age
Attributs.
La question se pose donc à nouveau :Comment savoir ce qui se passe dans l'Union européenne ? Dify Utiliser le schéma JSON dans LLM pour que les résultats de LLM suivent un format structuré.
Modèles qui supportent la fonctionnalité JSON Schema dans Dify
o1-2024-12-17
et plus tardgpt-4o-mini-2024-07-18
et plus tardgpt-4o-2024-08-06
et plus tard
Pour en savoir plus sur les capacités de sortie structurée de la famille de modèles OpenAI, veuillez vous référer à la page d'accueil du site Web de l'OpenAI. Sortie structurée.
Notez que json_schema et l'option appel de fonction Tous deux peuvent générer des données structurées.json_schema n'est utilisé que pour structurer les données pour le contenu.L'appel de fonction est plus utile lorsqu'il s'agit d'appeler des données, des outils, des fonctions et de générer des réponses, et c'est ainsi que l'outil associé "Smart Assistant" dans Dify utilise l'appel de fonction.
Texte intégral : Configuration de la sortie structurée JSON Schema dans Dify Tools
Le chemin d'utilisation suivant spécifie la sortie structurée de LLM :
- Connecte le LLM aux outils, fonctions, données, etc. du système ; défini dans la définition de la fonction
strict: true
Lorsque vous l'activez, la fonction Structured-outputs garantit que les paramètres générés par LLM pour un appel de fonction correspondent exactement au schéma JSON que vous fournissez dans la définition de la fonction. - Le LLM répond à l'utilisateur en produisant un contenu structuré tel que défini dans le schéma JSON.
La section suivante explique comment activer et utiliser la fonction JSON Schema dans Dify.
1. ouvrir le schéma JSON
Faites passer le LLM de votre application à un modèle qui prend en charge la sortie JSON Schema comme décrit ci-dessus, puis activez le formulaire d'installation pour JSON Schema
et remplissez le modèle JSON Schema ; activez également la fonction response_format
et passer à la colonne json_schema
Format.

Le contenu généré par LLM prend en charge les formats de sortie suivants :
- Texte. Sortie au format texte
2. définir le modèle de schéma JSON.
Vous pouvez vous référer au format JSON Schema suivant et définir le contenu du modèle :
{
"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
}
}
Instructions étape par étape :
- Définir les informations de base :
- mettre en place
name
Nom du schéma : donnez un nom descriptif à votre schéma. - augmenter
description
Le schéma : Une brève description de l'utilisation du schéma. - mettre en place
strict
: true : assurer le mode strict.
- établir
schema
Objet :
- mettre en place
type: "object"
: Spécifie le niveau racine en tant que type d'objet. - augmenter
properties
Objet : utilisé pour définir tous les champs.
- Définir les champs :
- Créer un objet pour chaque champ contenant
type
répondre en chantantdescription
. - Types courants :
string
,number
,boolean
,array
,object
. - Pour les tableaux, utilisez la fonction
items
Définit le type d'élément. - Pour les objets, les définitions récursives
properties
.
- Fixer des contraintes :
- Ajouter à chaque niveau
required
Tableau listant tous les champs obligatoires. - Réglage de la
additionalProperties: false
.
- Traitement spécial des champs :
- utiliser
enum
Limiter les valeurs optionnelles. - utiliser
$ref
Mise en œuvre de structures récursives.
exemple typique
1) Chaîne de raisonnement (conventionnelle)
Exemple de fichier de schéma 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"]
}
}
Référence au mot clé
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.
Générateur d'interface utilisateur (mode récursif racine)
{
"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
}
}
C'est la référence aux mots :
You are a UI generator AI. Convert the user input into a UI.
Exemples d'effets :

attirer l'attention sur qqch.
- Veillez à ce que les messages-guides de l'application contiennent des instructions sur la manière de traiter les situations où la saisie de l'utilisateur ne produit pas une réponse valide.
- Le modèle tentera toujours de suivre le modèle fourni et peut faire halluciner le LLM si l'entrée n'a aucun rapport avec le modèle spécifié.
- Si LLM détecte que l'entrée est incompatible avec la tâche, vous pouvez inclure la langue dans l'invite pour spécifier le retour de paramètres vides ou d'une phrase spécifique.
- Tous les champs doivent être
required
Pour plus d'informations, veuillez consulterici (littéraire). - additionalProperties : false doit toujours être défini dans l'objet
- L'objet de niveau racine du schéma doit être un objet
- Méthodes de sortie des données structurées des grands modèles : une liste de ressources JSON du LLM
© déclaration de droits d'auteur
文章版权归 Cercle de partage de l'IA 所有,未经允许请勿转载。
Articles connexes
Pas de commentaires...