IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Delphi Discussion :

LLM avec Delphi


Sujet :

Contribuez Delphi

  1. #1
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut LLM avec Delphi
    J'ai récemment publié un nouveau wrapper sur GitHub permettant d'utiliser les API des modèles génératifs d'Anthropic (Claude). Ce wrapper facilite l'intégration des capacités de Claude dans les applications Delphi. Une documentation complète est disponible sur la page GitHub du projet, couvrant l'ensemble des fonctionnalités offertes par Anthropic. De plus, une documentation XML, spécifiquement destinée à l'EDI Delphi, a été incluse.

    Le projet est accessible à l'adresse suivante : https://github.com/MaxiDonkey/DelphiAnthropic

    Ce développement s'inscrit dans une initiative plus large visant à fournir aux développeurs Delphi les outils nécessaires pour accéder aux différents modèles de langage (LLM) actuellement disponibles. Un projet précédent portait sur l'intégration des API de Mistral, que vous pouvez consulter ici : https://github.com/MaxiDonkey/DelphiMistralAI

    D'ici peu, un wrapper pour les API de Gemini (Google) sera également publié.

    Ces ressources sont mises à disposition de la communauté Delphi et peuvent être utiles à tout développeur intéressé.

  2. #2
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Le wrapper pour les API de Gemini (Google) est disponible à cette adresse https://github.com/MaxiDonkey/DelphiGemini

    Bon codage

  3. #3
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Pour compléter la série, voici un wrapper permettant d'utiliser les API de Groq (via GroqCloud), qui permet notamment l'exploitation des modèles de langage de Meta, incluant les versions Llama 3, 3.1 et 3.2.
    Celui-ci est disponible à cette adresse : https://github.com/MaxiDonkey/DelphiGroqCloud

  4. #4
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Je viens de mettre en ligne un Wrapper Delphi pour utiliser les API de stability.ai à cette adresse https://github.com/MaxiDonkey/DelphiStabilityAI

  5. #5
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Cette fois, je me suis attaqué à l’intégration avec Hugging Face, en utilisant uniquement leurs API pour l'inférence. L'idée est de profiter des nombreux modèles disponibles sur leur plateforme de publication.

    Au programme : reconnaissance d’objets dans les images, composition musicale, classification audio et textuelle, et bien sûr, tous les grands classiques.

    Le wrapper est accessible ici : https://github.com/MaxiDonkey/DelphiHuggingFace

  6. #6
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    L'avant-dernier de la série concerne Deepseek. Bien qu'il y ait eu beaucoup de buzz autour de ce projet, le résultat semble finalement assez limité. Le wrapper est disponible à cette adresse : https://github.com/MaxiDonkey/DelphiDeepseek.

  7. #7
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    J'ai publié sur GitHub GenAI, un wrapper complet qui prend en charge l'ensemble de l'offre d'OpenAI, notamment les modèles O1 et O3, les traitements par lots, les assistants ainsi que les modèles audio-to-audio.

    Bref, vous pouvez le trouver à cette adresse https://github.com/MaxiDonkey/DelphiGenAI

  8. #8
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 513
    Par défaut
    Merci pour le partage

    A+
    Charly

  9. #9
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    J’ai mis à jour le wrapper GenAI pour OpenAI en y ajoutant le nouveau point de terminaison v1/response. Celui-ci n’a pas vocation à remplacer v1/chat/completion ; il offre plutôt une solution adaptée à l’approche agentique.

    Ce point de terminaison donne notamment accès à des outils tels que file_search et computer_use. Le premier est particulièrement intéressant : grâce aux magasins vectoriels, il permet d’étendre un modèle avec ses propres données sans passer par la case fine-tuning.

    La recherche web s'avère plus efficace avec v1/response. J'ai également étendu le traitement de requêtes en parallèles au mode web_search.

    Vous trouverez tous les détails de la mise à jour en suivant ce lien.

    GenAI: https://github.com/MaxiDonkey/DelphiGenAI

  10. #10
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Petit message pour vous annoncer une mise à jour importante du wrapper DelphiMistralAI : il est désormais aligné avec les toutes dernières fonctionnalités publiées par MistralAI.

    https://github.com/MaxiDonkey/DelphiMistralAI



    1. Agents conversationnels & outils agentiques

    - Support complet de l’approche “agentique” : définition d’agents personnalisés avec instructions et outils embarqués (exécution de code, recherche web premium, accès à des bibliothèques/documentations, etc.).

    - Nouveaux endpoints Conversations et Agents permettant des sessions multi-turn avec appels d’actions (function calling, callbacks, web_search_premium, code_interpreter, etc.).

    - Exemple d’usage dans la doc : configuration d’agents, gestion des callbacks, personnalisation des outils déclenchables.



    2. Vision & OCR avancé (Document AI)

    - Traitement d’images : extraction de texte, description, classification et analyse visuelle via les modèles de vision (ex : pixtral-12b-2409).

    - OCR étendu : reconnaissance non seulement du texte mais aussi des structures (cases, tableaux, métadonnées), sortie en JSON structuré selon un schéma défini par l’utilisateur.

    - Prise en charge native des PDF et images avec annotation automatique pour cas d’usage métiers (finance, juridique, RH, etc.).



    3. Audio

    - Transcription multilingue avec détection automatique de la langue, segmentation et timestamps (modèles voxtral).

    - Analyse directe de fichiers audio (jusqu’à ~15–20 minutes) dans une session de chat multimodal.

    - Cas d’usage typiques : résumé de réunions, indexation, assistants vocaux contextuels, pipelines audio+NLP.



    4. Traitement en lot & Modération

    - Inférence asynchrone en batch sur de grands volumes, avec suivi des jobs en arrière-plan.

    - Intégration native des APIs de modération pour filtrer les contenus entrants ou générés.

    - Pensé pour des applications à haut débit ou sensibles (données personnelles, contexte entreprise, etc.).



    5. Fine-tuning, modèles spécialisés & bibliothèques

    - Support du fine-tuning pour adapter les modèles à des besoins métiers très spécifiques.

    - Endpoint Libraries pour gérer/partager des ressources documentaires, permettant un accès contextuel et précis depuis des agents OD.



    6. Extensibilité, Asynchronisme & Qualité logicielle

    - Tous les endpoints sont disponibles en mode synchrone et asynchrone (promesses, callbacks, streaming progressif, annulation en direct).

    - Possibilité d’injection de dépendances sur la couche HTTP, facilitant les mocks, les tests unitaires et l’intégration dans une archi moderne.

    - Tests unitaires intégrés : module MistralAI.DUnit.Tests pour démarrer rapidement vos suites de validation.



    7. Outils

    - TutorialHub et projets d’exemples prêts à l’emploi.

    - Support explicite des architectures VCL et FMX, avec des scénarii fonctionnels concrets.



    8. Bien démarrer

    - Téléchargez l’un des deux projets d’exemples (VCL ou FMX) disponibles dans le dossier sample/ du dépôt. Chaque .zip contient tout le squelette nécessaire pour démarrer rapidement : dézippez, ouvrez le projet dans Delphi, et entrez votre clé API MistralAI (dans le code ou via l’UI fournie).

    - Suivez ensuite le README pas-à-pas : obtenez votre clé, initialisez le client dans le OnCreate du formulaire, faites un premier appel “chat”, et explorez les scénarios inclus (vision, audio, agents, etc.).



    Les exemples sont conçus comme un bac à sable : libre à vous de modifier les prompts, changer de modèles, ou tester des workflows pour valider et étendre les capacités.

  11. #11
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Pays-Bas

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2021
    Messages : 17
    Par défaut
    Félicitations pour ce travail permettant de marier une vieille techno qui a fait ses preuves (Pascal orienté objet) et la techno à la mode du moment, l'IA...

    Il manque à mon avis un peu de vulgarisation dans ta communication (tous les dev Delphi ne sont pas au fait de l'IA): Pourrais-tu expliquer ici en quelques mots l'architecture de l'ensemble (Delphi, API propriétaire, accès à distance à l'IA, etc...?

    Comment est-ce que tout ce petit monde interagit?

  12. #12
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Merci pour ton retour. Voici, de façon structurée, l’architecture et le fonctionnement global.

    - Une application Delphi (VCL ou FMX), qu’elle tourne côté client ou serveur, peut s’appuyer sur un composant DelphiMistralAI, qui sert de wrapper aux services MistralAI.
    Ce wrapper expose une interface unique, IMistralAI, qui regroupe tous les modules (Chat, Agents, Conversations, OCR, Audio, Libraries, etc.) et utilise un client HTTP injectable pour les appels réseau.
    Dans ce cas, les modèles MistralAI étant hébergés à distance, toutes les requêtes passent par HTTPS, et les réponses JSON sont automatiquement désérialisées par le wrapper pour être directement exploitables dans l’application.


    - Lors d’un appel type, l’application initialise IMistralAI avec la clé API, choisit la route (Chat, Agents, OCR, Audio, Libraries, etc.) et envoie la requête via le client HTTP du wrapper.
    Le serveur MistralAI renvoie alors une réponse JSON ; le wrapper la normalise et la désérialise en objets Delphi typés, prêts à être utilisés.


    - Pour les échanges conversationnels avec outils, on passe par les endpoints v1/conversations et v1/agents, qui gèrent les comportements dits agentiques : function calling, code interpreter, web_search_premium, accès aux bibliothèques documentaires.
    Les connecteurs et outils (web_search_premium, code_interpreter, document_library, etc.) sont exposés par le wrapper et peuvent être activés directement dans Delphi lors de la configuration d’un agent ou d’une conversation.


    - Pour extraire du texte ou des structures (JSON suivant un schéma), le wrapper utilise l’endpoint v1/OCR de Mistral, en gérant l’envoi de documents ou d’images et la récupération des annotations, avec possibilité d’inclure les images encodées base-64 si nécessaire.
    Les outils pour manipuler et afficher ces images encodées sont intégrés directement au wrapper.


    - La transcription audio se fait via v1/audio/transcriptions. L’audio peut aussi être intégré dans une session de chat multimodale côté API.
    Là encore, le wrapper expose ces routes prêtes à l’emploi.


    - Les corpus métier peuvent être chargés et partagés via v1/libraries pour fournir un contexte documentaire aux agents et conversations.
    Le wrapper propose des méthodes Delphi dédiées pour gérer ces corpus.


    - Le wrapper prend en charge trois modes : synchrone, asynchrone (callbacks ou promesses) et streaming SSE.
    En mode streaming, les chunks sont traités au fil de l’eau jusqu’au marqueur [DONE].


    - Le client HTTP, totalement injectable (GET, POST, PUT, PATCH), simplifie la création de mocks et les tests unitaires.
    Un module DUnit est fourni pour exécuter les suites de tests, avec un système de monitoring pour suivre les requêtes HTTP.



    En résumé, l’application Delphi échange avec le wrapper, qui gère sérialisation, authentification et transport HTTP ainsi que la désérialisation de la réponse obtenue.

  13. #13
    Membre éclairé

    Homme Profil pro
    Mathématicien
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Mathématicien

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Par défaut
    Je viens de mettre à jour le wrapper DelphiGenAI pour la prise en charge des API OpenAI, voici la liste des évolutions apportées par rapport à la version 1.1.0.
    Ces améliorations visent à exploiter pleinement les capacités du modèle GPT-5 tout en assurant une compatibilité optimale avec les modèles précédents.

    Vous trouverez le dépôt complet à cette adresse : https://github.com/MaxiDonkey/DelphiGenAI


    Version 1.2.0

    Normalisation JSON avant désérialisation
    • Nouveau module GenAI.API.Normalizer (TJSONNormalizer, TWrapKind, TNormalizationRule) pour unifier les champs polymorphes (par ex. : chaîne vs objet).
    • Intégration directe dans la couche HTTP : nouvelles surcharges Get(..., Path) | Post(..., Path) permettant la normalisation ciblée d’une sous-arborescence JSON avant le mappage d’objets.


    Annulation des requêtes en arrière-plan
    • Nouvelle méthode Responses.AsyncAwaitCancel(response_id) pour annuler une réponse asynchrone (background = true), avec prise en charge complète des rappels (OnStart, OnSuccess, OnError).


    Améliorations du streaming
    • Couverture typée étendue pour les événements et sorties en streaming (MCP, interpréteur de code, génération d’images, etc.) via les nouvelles classes Responses.OutputParams (TResponseOutput*, TResponseImageGenerationTool, TResponseCodeInterpreter, etc.).


    Nouveaux types et paramètres
    • InputParams : couverture complète pour les interactions avec un ordinateur, shell local, MCP, recherche web, code, génération d’images, raisonnement, formats texte/JSON, choix d’outil/outil hébergé, et filtres de recherche de fichiers.
    • OutputParams : états (Created, InProgress, etc.), événements (Added, Delta), métriques d’utilisation et statistiques.
    • Nouveaux enums : TOutputIncluding, TReasoningGenerateSummary, TFidelityType, etc.


    API v1/chat/completions
    • Nouveaux paramètres :
    • prompt_cache_key (mise en cache d’invite)
    • safety_identifier (identifiant stable pour la surveillance de la sécurité)
    • verbosity (low/medium/high)


    API v1/responses
    • Nouveaux paramètres :
    • max_tool_calls
    • prompt (référence de modèle via TPromptParams)
    • prompt_cache_key, safety_identifier
    • stream_options, top_logprobs, verbosity


    Messages système et développeur structurés
    • Nouvelles surcharges :
    • TMessagePayload.Developer(const Content: TArray; const Name: string = '')
    • TMessagePayload.System(const Content: TArray; const Name: string = '')
    • Améliore la parité entre les flux en texte brut et en contenu structuré.

Discussions similaires

  1. Récupérer le code HTML d'une page avec Delphi 7
    Par PsyKroPack dans le forum Web & réseau
    Réponses: 5
    Dernier message: 06/02/2003, 21h56
  2. [Choix] Quel SGBD avec delphi et kylix
    Par djmcg dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 16/01/2003, 12h24
  3. Programmation WEB avec delphi
    Par mayoguy dans le forum Web & réseau
    Réponses: 4
    Dernier message: 20/08/2002, 19h03
  4. Réponses: 5
    Dernier message: 08/07/2002, 16h22
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo