Intégration de l’IA
Nouvelle classe native 4D.VECTOR
Lorsque vous créez des fonctionnalités intelligentes – recherche sémantique, classification de documents, regroupement d’images – vous ne vous contentez plus de stocker des données. Vous organisez le sens. Et cela commence par les vecteurs.
4D 20 R10 introduit 4D.Vector, une classe native, efficace en termes de mémoire, conçue pour contenir et manipuler des données numériques de haute dimension. Elle est conçue pour des opérations de soutien des performances telles que la similitude de cosinus, le produit de point et la normalisation au sein même de 4D.
Il ne s’agit pas d’ajouter de l’IA. Il s’agit d’intégrer à votre modèle de données des flux de travail natifs de l’IA. Qu’il s’agisse de comparer des descriptions de produits, de regrouper des tickets d’assistance ou de classer des images en fonction de leur contenu, 4D.Vector vous permet de calculer et de comparer des significations, rapidement, avec précision et sans outil externe.
Et oui, vous pouvez stocker ces vecteurs dans votre base de données. Utilisez-les dans des champs de type classe. Triez-les par similarité. Tout ce dont un système intelligent moderne a besoin est intégré au cœur de votre application.
Génération de vecteurs via OpenAI dans AI Kit
4D 20 R10 étend le AI Kit avec un support natif pour l’API de génération de vecteurs d’OpenAI. La nouvelle méthode OpenAIEmbeddingsAPI.create() transforme les chaînes ou les collections en instances 4D.Vector, immédiatement utilisables dans les systèmes d’évaluation de la similarité, les systèmes de classement ou les filtres sémantiques.
Pas de gestion de jeton. Pas de gestion HTTP. Pas d’analyse des réponses. Juste des vecteurs directs et typés, conçus pour des flux de travail intelligents, générés en une seule ligne de code.
BASE DE DONNÉES
CHAMPS D’OBJETS TYPÉS PAR CLASSE DANS L’ÉDITEUR DE STRUCTURE
Dans l’éditeur de structure, les champs d’objets peuvent désormais être assignés à une classe spécifique. Il ne s’agit pas simplement de métadonnées, mais d’un contrat.
Attribuez une classe d’utilisateurs à un champ d’objet et vous obtiendrez.. :
-
Autocomplétion au niveau de la propriété
-
Vérification de la syntaxe à la compilation
-
Validation de la forme de l’objet au moment de l’exécution
Si l’objet ne correspond pas à la classe déclarée, 4D lève une erreur – la structure devient un schéma, vos données restent propres et, en combinaison avec 4D.Vector, la définition d’un attribut vectoriel typé à l’intérieur de votre classe signifie que chaque entité porte sa propre empreinte sémantique, prête pour l’évaluation de la similarité, le tri piloté par l’IA ou les recommandations intelligentes.
PRISE EN CHARGE DES UUID V7
La génération d’UUID vient de devenir plus intelligente. UUID.generate() prend désormais en charge les identifiants de la version 7. Cela signifie que vos UUID ne sont pas seulement universellement uniques, mais qu’ils peuvent être triés chronologiquement, qu’ils sont adaptés aux bases de données et qu’ils sont conçus pour les systèmes distribués modernes.
En interne, les UUID de la version 7 intègrent des données d’horodatage, ce qui les rend idéaux pour un stockage ordonné et plus faciles à indexer. Il s’agit d’un petit changement qui a un impact considérable sur l’échelle et les performances des requêtes.
ORDA
Constructeurs d’entités et événement onTouch()
4D 20 R10 introduit le support des constructeurs et l’événement onTouch() pour les entités de la classe de données.
Utilisez les constructeurs pour initialiser les valeurs lors de l’instanciation – idéal pour définir les horodatages, les valeurs par défaut ou les propriétés contextuelles. Utilisez onTouch() pour réagir lorsque les attributs changent en mémoire, ce qui permet une validation, une normalisation ou une propagation de champ en temps réel.
Les deux s’exécutent par défaut côté serveur (avec une exécution côté client via local). C’est le début d’une logique de données tenant compte du cycle de vie, centralisée, prévisible et native dans la couche ORDA.
INTERFACE UTILISATEUR
FORMULES DYNAMIQUES POUR LES OBJETS DE FORMULAIRE
Votre logique d’interface utilisateur est devenue plus intelligente. Vous pouvez désormais lier les valeurs des objets de formulaire directement aux formules à l’aide de OBJECT SET DATA SOURCE FORMULA.
Cela signifie que les valeurs peuvent changer dynamiquement en fonction des calculs, des variables ou du contexte, sans être liées à des champs statiques.
Associez cela à des constantes de boîte de liste comme lk selected items expression et vous obtiendrez un comportement de formulaire qui s’adapte en temps réel, réduisant la duplication du code et améliorant la réactivité.
Gestion du réseau
NOUVELLES COMMANDES UDP
La nouvelle classe 4D.UDPSocket vous offre un support natif pour le protocole User Datagram Protocol. C’est un protocole rapide, sans connexion et idéal pour les communications à faible latence.
Mettezen place des rappels tels que onData, onError, et onTerminate. Émettez et recevez des paquets avec send(). Inspectez les métadonnées avec 4D.UDPEvent. Et suivez le trafic dans le fichier partagé 4DTCPUDPLog.txt.
UDP est désormais de première classe et piloté par les événements. Il est parfait pour les signaux de périphériques en temps réel, les protocoles de découverte ou la messagerie interne à faible coût.
CONTRÔLE DU DÉLAI DE CONNEXION TCP
La classe TCPConnection expose désormais une propriété .connectionTimeout qui vous permet d’affiner la réactivité. Définissez des seuils de latence, interrompez les requêtes de longue durée et gérez les erreurs de réseau plus rapidement.
Fini le gel de l’interface utilisateur. Plus d’attente indéfinie. Contrôlez simplement le comportement du réseau.
Gestionnaire de dépendances
RÉSOLUTION ET GESTION RÉCURSIVE DES DÉPENDANCES
Le gestionnaire de composants comprend désormais l’arbre complet. Si votre composant nécessite d’autres composants, ceux-ci sont automatiquement chargés. Si une référence circulaire existe, elle est bloquée avant qu’elle ne vous mette à mal.
Cette fonctionnalité introduit
-
la découverte récursive des dépendances
-
La résolution de l’ordre de chargement
-
Détection d’erreurs pour les graphes cycliques
Vous écrivez des composants modulaires et réutilisables. 4D s’assure qu’ils se chargent correctement. À chaque fois.
4D Netkit
Créer, mettre à jour et supprimer des événements dans Microsoft 365 et Google Calendars
cs.NetKit.Office365.calendar Les classes d’API Microsoft 365 et prennent désormais en charge la gestion complète du cycle de vie des événements de calendrier. cs.NetKit.Google.calendar
Ces API vous permettent de contrôler avec précision
-
les heures de début et de fin
-
la gestion des participants
-
les règles de récurrence
-
les liens vers les réunions en ligne
-
Notifications aux invités
-
Catégories et descriptions d’événements
CRÉER UNE APPLICATION
Automatisation des licences BuildApp
Le processusBuildApp inclut désormais l’intégration automatique des licences. Si votre machine dispose de licences de déploiement valides, elles sont injectées directement dans votre application construite.
De nouvelles options dans la boîte de dialogue Build – et une nouvelle clé booléenne AutomaticLicenseIntegration dans BuildApp.4DSettings– vous permettent de basculer entre les modes manuel, automatique ou d’évaluation des licences. Pas de chemins d’accès aux licences. Pas de dérogations spécifiques à une machine. Juste des constructions transparentes et portables.
Les journaux de construction suivent désormais l’utilisation des licences, et l’interface utilisateur indique clairement quelles cibles ont été créées après la construction.
SÉCURITÉ
Collage sécurisé des formules
Les formules copiées depuis l’extérieur de votre application 4D sont désormais collées en tant que valeurs uniquement.
Ce changement affecte les entrées multi-styles et les champs de 4D Write Pro. Si la formule n’a jamais été calculée, sa source est collée en texte brut. Dans le cas contraire, seul le résultat évalué (texte ou image) est conservé.
Il s’agit d’une correction silencieuse d’une vulnérabilité silencieuse et d’une valeur par défaut plus sûre pour les environnements collaboratifs.
BIBLIOTHÈQUE SUPPRIMÉE
SUPPRESSION DE MECAB
La bibliothèque MeCab pour la segmentation de textes japonais a été supprimée. Introduite à l’origine pour la recherche par mots-clés, MeCab n’a pas été mise à jour depuis plus de dix ans. Elle ne permettait pas de personnaliser les dictionnaires et présentait des risques de maintenance.
Si vous avez besoin d’une tokenisation personnalisée, vous pouvez implémenter votre propre logique via ORDA et des requêtes basées sur des composants.