Intégration de l'IA
Téléchargement et utilisation de fichiers dans les conversations IA
4D 21 R2 introduit la prise en charge du téléchargement de fichiers natifs dans 4D AIKit, permettant à vos applications d'envoyer des documents tels que des PDF directement au modèle IA et de les utiliser comme contexte de premier ordre dans les conversations IA. Un fichier est entré une seule fois dans le système et devient immédiatement le point de référence pour tout ce qui suit, que l'utilisateur demande un résumé, extraie des informations spécifiques ou explore une section particulière.
Ce flux est intentionnellement explicite. Les fichiers sont téléchargés à l'aide de OpenAI.files.create, où vous définissez leur objectif et leur expiration facultative. L'appel retourne un identifiant de fichier, que vous joignez à un OpenAIMessage pour intégrer le document au contexte de la conversation lorsque vous appelez l'assistant de chat. Vous décidez quand un fichier est introduit, quand il est réutilisé et quand il quitte le système. Rien n'est déduit. Rien n'est caché.
Comme l'IA travaille directement sur le document lui-même, il n'y a pas de contenu dupliqué ni de représentation parallèle à maintenir synchronisée. Les utilisateurs travaillent sur le fichier d’origine tel qu’ils le reconnaissent, et les réponses restent directement rattachées à ce même matériau. Les noms de fichiers sont conservés, les limites de taille prennent en charge les documents réels et les politiques d'expiration vous permettent de contrôler la durée de vie des données.
La même API vous permet de répertorier les fichiers téléchargés, de récupérer leurs métadonnées ou de les supprimer lorsqu'ils ne sont plus nécessaires, ce qui assure une gestion prévisible du cycle de vie en production. L'interaction reste simple de par sa conception. Un document est introduit, les fonctionnalités de l'IA s'appuient directement sur celui-ci et la logique entre les deux reste minimale, délibérée et facile à comprendre.
Classement vectoriel dans les requêtes
Dans 4D 21 R2, les requêtes vectorielles peuvent désormais trier les résultats par similarité, et plus seulement les filtrer. Une requête ne se limite plus à trouver des enregistrements correspondants : elle détermine lesquels doivent apparaître en premier. Cette distinction est essentielle, car la recherche sémantique ne fonctionne que lorsque la pertinence est visible. Avoir des résultats similaires ne suffit pas : le résultat le plus proche doit être mis en avant.
Ce comportement est intégré directement dans la requête query elle-même. Lorsqu’un champ vectoriel est utilisé à la fois dans le filtre et dans la clause order by, 4D réutilise le même calcul de similarité pour classer les résultats. La comparaison qui détermine si une entité correspond est aussi celle qui détermine sa position dans l’ensemble de résultats. Il n’y a pas de logique secondaire à maintenir, ni d’étape de réordonnancement après l’exécution de la requête. La pertinence est définie une fois et appliquée de manière cohérente
Comme il s’agit d’une extension des requêtes ORDA existantes, il n’y a rien de nouveau à apprendre. Les champs vectoriels sont pris en charge dans la clause order by des requêtes DataClass.query, EntitySelection.query et REST. Le tri peut être ascendant ou descendant, combiné à des filtres classiques et mêlé à des tris traditionnels, comme les dates ou les champs numériques. Lorsqu’il y a plusieurs comparaisons vectorielles, l’ordre repose de manière fiable sur la première, ce qui rend l’évaluation explicite et prévisible.
La requête reflète pleinement l'intention. Vous décrivez ce que vous recherchez et comment la pertinence doit être appliquée, et les données sont renvoyées déjà classées par ordre d'importance. Aucune commande supplémentaire. Aucun post-traitement. Juste une requête qui sait quel résultat est le plus important.
4D Qodly Pro
Pages Qodly Accessibles depuis l'IDE 4D
Avec 4D 21 R2, les pages Qodly peuvent être créées et modifiées directement depuis l'IDE 4D. Elles ne sont plus un élément à part. Elles se trouvent au même endroit que le reste de votre application. Lorsque la logique backend, la modélisation des données et l'interface utilisateur web appartiennent à la même application, rester dans un environnement unique permet de conserver toute la dynamique de travail.
Les pages Qodly apparaissent désormais dans l'Explorateur 4D dans un dossier dédié, à côté des structures avec lesquelles vous travaillez déjà. C'est à partir de là que vous pouvez créer une nouvelle page ou ouvrir une page existante. Le déclenchement de l'une ou l'autre de ces actions ouvre Qodly Studio dans un navigateur, en privilégiant Chrome lorsqu’il est disponible, sinon le navigateur par défaut du système. La transition est immédiate et intentionnelle, vous permettant de rester ancré dans le projet tout en travaillant sur l'interface web.
Interface utilisateur
Système de design Fluent UI pour les formulaires 4D (Developer Preview)
Avec 4D 21 R2, Fluent UI devient disponible comme nouvelle façon d’afficher les formulaires 4D sous Windows, en tant que Developer Preview. Il introduit le système de design Fluent UI de Microsoft dans les applications 4D, apportant une interface visuelle moderne qui paraît immédiatement familière aux utilisateurs, car elle correspond à ce qu’ils voient au quotidien dans Windows, Office et Teams..
-
Fluent UI modifie la façon dont les formulaires sont perçus, et non la façon dont ils sont construits. Les formulaires existants conservent leur structure et leur logique. La différence est visuelle. les espacements sont plus équilibrés, le texte est plus clair et l'interface s'aligne naturellement sur les conventions modernes de Windows, y compris la prise en charge native des modes clair et sombre, sans forcer la réécriture des mises en page.
-
L’adoption reste sous votre contrôle. Fluent UI peut être activé globalement pour un projet ou appliqué de manière sélective, formulaire par formulaire. Vous décidez où la modernisation est pertinente et où l'aspect classique doit être conservé, en veillant à ce que les changements soient progressifs et intentionnels.
-
Comme Fluent UI repose sur un rendu moderne, certaines métriques visuelles diffèrent légèrement du style classique. Le texte et certains widgets, tels que les cases à cocher, peuvent apparaître un peu plus grands ou plus espacés. Dans les formulaires conçus avec des mises en page très serrées, au niveau du pixel, cela peut nécessiter des ajustements mineurs pour préserver l'alignement souhaité.
-
Fluent UI est intégré directement à 4D. L'installation et le déploiement sont pris en charge par la plateforme, avec la possibilité d’intégrer tous les éléments à l’application ou de s’appuyer sur l’environnement client. Il n'y a aucune dépendance externe à gérer manuellement.
-
Le comportement d'exécution reste prévisible. Si Fluent UI ne peut pas être activé sur un système, l'application revient automatiquement au rendu classique. Aucune erreur n'est affichée aux utilisateurs. L'application continue de fonctionner normalement, avec uniquement une entrée de diagnostic enregistrée à des fins de visibilité.
-
Le style évolue parallèlement au rendu. Les formulaires peuvent réagir selon qu'ils sont affichés en mode classique ou Fluent UI, ce qui permet d'affiner progressivement l’apparence sans impacter les parties non concernées de l’application.
-
Les boîtes de dialogue standard suivent la même logique. Les alertes, confirmations, requêtes et fenêtres système adoptent l'apparence Fluent UI lorsqu'elles sont activées, ce qui garantit une expérience cohérente dans toute l'application.
Fluent UI dans 4D 21 R2 est une étape majeure dans la modernisation de l'interface utilisateur. La prise en charge continuera d'évoluer en fonction des retours des développeurs, permettant au système de design de mûrir tout en maintenant la stabilité des applications existantes. Le code reste familier. Le flux de travail reste intact. L'interface utilisateur évolue avec la plateforme sur laquelle elle s’exécute.
Langage 4D
Vérification syntaxique et complétion de code unifiées
Dans 4D 21 R2, la vérification syntaxique et la complétion de code partagent la même logique d'inférence. L'éditeur et le compilateur n'interprètent plus le code différemment. Ce qu'IntelliSense déduit pendant que vous tapez correspond exactement à ce que le vérificateur syntaxique et le compilateur comprennent, ce qui garantit la fiabilité du retour d'information et élimine toute hésitation lors de l'écriture du code.
Les erreurs sont désormais signalées à l’endroit précis où elles se produisent. Seul le token responsable du problème est souligné, et non l'expression entière qui l'entoure. Dans les instructions multilignes, le marqueur apparaît sur la ligne précise où le problème trouve son origine. Il suffit de passer la souris dessus pour identifier le problème, le corriger, puis continuer, sans avoir à parcourir le code environnant ni à deviner ce que l’éditeur cherche à indiquer.
Grâce à l'unification des inférences, les suggestions de complétion et la détection des erreurs se renforcent mutuellement. Les expressions complexes sont interprétées de manière cohérente et, lorsqu'un type ne peut être déterminé, il est explicitement signalé au lieu d'être défini par défaut de manière silencieuse. Les conversions invalides, les propriétés inattendues, les variables non déclarées, les paramètres incorrects et les opérateurs incompatibles sont détectés tôt, alors que le code est encore en cours d'exécution.
Ce comportement est cohérent dans les environnements que les développeurs utilisent quotidiennement. L'IDE 4D et VS Code s'appuient sur les mêmes règles et le même modèle d'erreur. Il n'y a rien à configurer et rien de nouveau à apprendre. Vous écrivez le code une seule fois, et les commentaires que vous obtenez ont la même signification partout.
4D Write Pro
Indentation automatique pour les listes à puces
Dans 4D 21 R2, les listes à puces et numérotées créées à l'aide d'actions standard sont automatiquement indentées dans 4D Write Pro. Les listes s'alignent désormais correctement dans la page sans ajustement manuel des marges, ce qui élimine une petite interruption récurrente lors de la mise en forme des documents.
Lorsque les puces sont appliquées via des actions standard, le texte est décalé juste ce qu’il faut pour rendre la liste lisible et visuellement équilibrée. L'ajustement est immédiat et cohérent. Les puces apparaissent là où les utilisateurs s'attendent à les voir, et les documents conservent une mise en page propre sans nécessiter de logique de formatage supplémentaire dans le code.
Le comportement reste prévisible. La suppression des puces à l'aide d'une action standard supprime également la marge ajoutée, rétablissant la mise en page précédente du paragraphe. Cela évite les problèmes d'alignement subtils, en particulier dans les documents où les styles de liste changent de manière dynamique.
L'indentation correspond au décalage de tabulation par défaut du document et respecte la direction du texte. Les textes de gauche à droite sont indentés à gauche, et ceux de droite à gauche à droite, garantissant un rendu correct des listes dans les documents multilingues sans traitement supplémentaire.
Vous n'avez plus à vous soucier du formatage des listes. Le document reste propre et le code reste concentré sur le contenu plutôt que sur les corrections de mise en page.
Composant 4D
Recherche dans le design à travers les composants
Dans 4D 21 R2, la recherche dans le design s’étend au-delà du projet hôte pour inclure tous le composants accessibles. Une recherche ne vous donne plus une vue partielle. Elle montre où une méthode ou un symbole est réellement utilisé dans l'ensemble de l'application, ce qui devient essentiel dès que de la logique partagée est modifiée et que les hypothèses implicites ne sont plus sûres.
La portée de la recherche est explicite. Vous pouvez cibler le projet hôte, un composant spécifique, ou le projet hôte et l’ensemble des composants. Les résultats provenant des composants sont clairement identifiés, de sorte que le contexte n'est jamais perdu et qu'il n'est pas nécessaire de faire des déductions. Une seule recherche vous donne une vue d'ensemble.
Cela s'avère particulièrement utile lors de la refactorisation. Vous mettez à jour une méthode et voyez immédiatement toutes les références, y compris celles enfouies dans des composants que vous n'avez pas ouverts récemment. Lorsque les résultats sont exportés, ce contexte est conservé. Chaque ligne inclut le projet ou le composant auquel elle appartient, ce qui rend le résultat utilisable pour les révisions, les audits ou les analyses externes sans travail supplémentaire.
Cette fonctionnalité s'appuie sur l'indexation en mode projet. Les composants dont le code source est disponible sont automatiquement inclus, et la portée de recherche ainsi que les métadonnées sont conservées dans les résultats et les info-bulles. Même les ensembles de résultats volumineux restent lisibles et sans ambiguïté.
La recherche n'est plus un outil d'approximation. Vous cherchez une fois, vous voyez tout et vous avancez avec certitude.
Icônes personnalisées pour les dépendances des composants
Dans 4D 21 R2, les dépendances des composants peuvent afficher une icône personnalisée dans le Gestionnaire de composants. Au lieu d'avoir toutes les entrées identiques, chaque composant peut avoir sa propre identité visuelle, ce qui accélère la lecture des listes de dépendances à mesure que les projets se développent.
Les icônes sont sélectionnées automatiquement. Si un composant contient un fichier logo.svg ou logo.png dans son dossier Ressources, 4D l'utilise comme icône du composant dans le Gestionnaire de composants. Aucune configuration n'est nécessaire. Lorsque les deux formats sont présents, la version SVG est préférée afin de garantir un rendu net quelle que soit la taille.
Ce changement, bien que discret, transforme la manière de parcourir les dépendances. Les composants officiels, les outils internes et les packages tiers se distinguent plus facilement d’un simple coup d’œil. Vous passez moins de temps à lire les noms et plus de temps à agir sur ce que vous voyez.
Le comportement des composants ne change pas. Seule leur reconnaissance évolue. Et cela réduit les frictions à chaque ouverture de la liste.
4D view Pro
Moteur spreadJS mis à jour vers la version 18.2
Dans 4D 21 R2, 4D View Pro s'appuie sur la version 18.2 de SpreadJS, avec un ruban entièrement aligné sur cette version. Les fonctionnalités de 4D View Pro suivant le moteur sous-jacent, cette mise à jour améliore immédiatement les performances et débloque de nouvelles fonctionnalités sans modifier la manière dont les documents existants sont créés ou maintenus.
- Les feuilles gagnent en légèreté et en rapidité. Le rendu et les interactions sont plus réactifs, et les tableaux croisés dynamiques utilisent nettement moins de mémoire. Les grands ensembles de données et les tableaux de bord complexes restent fluides, même s'ils s'enrichissent au fil du temps, ce qui réduit le type de friction qui n'apparaît généralement qu'après une utilisation prolongée en production.
- Les tableaux croisés dynamiques gagnent également en flexibilité. Les sources de données peuvent être modifiées sans avoir à reconstruire les mises en page, les sous-totaux peuvent être affichés par champ, les colonnes complètes de feuille de calcul peuvent être utilisées comme sources et le contrôle du formatage devient plus granulaire. La navigation au clavier dans les boîtes de dialogue de filtrage améliore la convivialité des workflows riches en données, rendant les ajustements fréquents plus rapides et plus précis.
- Le moteur de calcul s'enrichit de fonctions telles que TRIMRANGE, REGEXTEST, REGEXEXTRACT, REGEXREPLACE, GROUPBY, PIVOTBY et PERCENTOF. Ces fonctions permettent des transformations plus expressives directement dans la feuille, réduisant ainsi le besoin de prétraitement ou de colonnes auxiliaires et maintenant la logique plus proche des données.
- Les workflows d'import et d'export sont également renforcés. Les mappages XML peuvent être exportés sans perte, et les formats Excel compatibles avec les macros, tels que XLSM et XLTM, sont conservés lors de l'import et de l'export, même lorsque les macros ne sont pas exécutées. Cela permet de maintenir la compatibilité dans les environnements d'entreprise où la structure est aussi importante que l'exécution.
Tout cela provient d'une seule mise à jour du moteur. Aucune étape de migration. Aucun changement de comportement des documents existants. Simplement une base plus solide, qui rend les contenus View Pro actuels plus performant et les cas d’usage futurs plus faciles à étendre.