Article
· Mars 15 8m de lecture

Tutoriel : Ajouter OpenAI à la production pour l'interopérabilité

L'intelligence artificielle (IA) attire beaucoup d'attention dernièrement car elle peut changer de nombreux domaines de nos vies. Une meilleure puissance informatique et plus de données ont aidé l'IA à réaliser des choses incroyables, comme l'amélioration des tests médicaux et la création de voitures autonomes. L'IA peut également aider les entreprises à prendre de meilleures décisions et à travailler plus efficacement, c'est pourquoi elle devient de plus en plus populaire et largement utilisée.

 

Prérequis

Dans ce tutoriel, nous supposerons que vous disposez déjà d'une production d'interopérabilité existante et d'un ensemble de credentials OpenAI pour effectuer des appels aux API OpenAI. Vous pouvez télécharger le code que nous utilisons dans ce tutoriel à partir de la branche du projet GitHub suivante : https://github.com/banksiaglobal/bg-openai/tree/test-app-original Pour apprendre à obtenir des credentials OpenAI, suivez ce tutoriel https://allthings.how/how-to-get-your-open-ai-api-key/ ou simplement ouvrez la page des clés API OpenAI et créez-en une https://platform.openai.com/api-keys


Application Originale

 

 

Notre application, AppExchange, émule la publication d'InterSystems OpenExchange : elle reçoit une demande contenant une description du projet, le logo du projet et l'URL GitHub, puis la publie dans le répertoire AppExchange.


Ajout d'un peu d'Intelligence Artificielle

Supposons maintenant qu'une personne qui s'occupe de notre répertoire remarque que certains développeurs d'applications sont paresseux et ne fournissent ni résumé court ni logo pour les applications qu'ils publient. C'est là que notre ami l'IA peut venir à la rescousse !

Le flux de travail souhaité se présenterait comme suit :

  1. L'application reçoit une URL de répertoire, un résumé et une URL de logo en entrée.
  2. Si le résumé est vide, l'URL est envoyée à un modèle basé sur GPT qui analyse le contenu du répertoire et génère un résumé descriptif du projet. Ce processus peut impliquer l'analyse des fichiers README, des commentaires de code et d'autres documentations pertinentes au sein du répertoire pour extraire des informations clés sur le but, les fonctionnalités et l'utilisation du projet.
  3. Le résumé du projet généré est ensuite utilisé comme entrée pour un autre modèle basé sur GPT, chargé de créer un logo pour le projet. Ce modèle utilise la description pour comprendre le thème du projet, puis conçoit un logo qui représente visuellement l'essence et l'identité du projet.
  4. L'application produit une réponse qui inclut l'URL originale, le résumé du projet généré et le nouveau logo créé. Cette réponse fournit un aperçu complet du projet, accompagné d'un identifiant visuel qui peut être utilisé dans les efforts de branding et de marketing.

Pour réaliser cette intégration, nous utiliserons le Business Process Designer pour concevoir visuellement le flux de travail de l'application.

 

Étape 1 - Installation

Pour commencer, nous téléchargerons le paquet bg-openai depuis Open Exchange en utilisant le gestionnaire de paquets ZPM :

zpm "install bg-openai"

Vous pouvez consulter ce paquet ici https://openexchange.intersystems.com/package/bg-openai-1 et vérifier son code source ici https://github.com/banksiaglobal/bg-openai

Ce paquet est basé sur l'excellent travail de @Francisco Lopez disponible ici https://github.com/KurroLopez/iris-openai avec quatre petits changements : nous avons modifié les noms de classes pour qu'ils soient plus conformes aux conventions de nommage standard d'IRIS, nous avons ajouté une nouvelle requête SimplePrompt qui permet aux utilisateurs d'envoyer très facilement des invites de texte IA simples, nous avons changé la clé API pour qu'elle soit une accréditation plutôt qu'un paramètre, et nous avons modifié le nom du paquet de haut niveau en "Banksia" conformément aux normes de l'entreprise.

 

Étape 2 - Configurer l'opération OpenAI

Pour poursuivre le travail et la configuration des produits, passons au portail de gestion situé au lien suivant si vous utilisez l'image Docker avec notre application originale :

http://localhost:42773/csp/sys/UtilHome.csp

Naviguez jusqu'à Interoperability->[Namespace]->Configure->Production et assurez-vous que notre production originale est en cours d'exécution.

Ajoutez une nouvelle opération basée sur la classe Banksia.OpenAi.Operation et nommez-la OpenAiOut. Activez-la. Cette opération communiquera avec les serveurs API d'OpenAI.

  • Operation Class: Banksia.OpenAi.Operation
  • Operation Name: OpenAiOut

 

Maintenant, procédons à la configuration minimale nécessaire pour utiliser notre nouvelle opération en Production : ajoutons une clé API et une configuration SSL.

Naviguez jusqu'à OpenAiOut->Settings->Basic Settings->Credentials et cliquez sur l'icône de la loupe pour configurer les credentials.

 

 

Remplissez les données du formulaire et ajoutez api Key dans le champ du mot de passe. Sauvegardez les données en cliquant sur Save. Vous pouvez remplir les champs ID et User Name comme vous le souhaitez.

 

Dans le champ Credentials, sélectionnez l'ID des identifiants que nous avons sauvegardés précédemment.

 

 

 

Configurez la Configuration SSL client : créez une nouvelle Configuration SSL client OpenAiSSL et sélectionnez-la dans le menu déroulant.

 

 

 

Étape 3 - Ajouter la génération de résumé au processus métier à l'aide du Business Process Designer

Naviguez jusqu'à Interoperability > Business Process Designer et ouvrez le processus métier AppExchange.Process en cliquant sur Open.

Construisez un organigramme du processus basé sur l'algorithme que nous avons décrit ci-dessus.
Une mise en œuvre exemple est illustrée dans l'image ci-dessous.

 

 

Vérifiez que l'URL du dépôt est fournie et que nous devons interroger ChatGPT pour créer une description si aucune description n'a été saisie.

(request.Summary="") & (request.GitHubUrl '="")

   

 

Ensuite, ajoutez le bloc <Call> et définissez comme cible OpenAiOut, qui, en fonction du type de demande, effectuera un appel à l'API OpenAi.

  •  Name: Generate Summary 

   

 

Personnalisez le type de demande et la réponse reçue, ainsi que distribuez les variables pour les actions.

  • Request Message Class: Banksia.OpenAi.Msg.SimplePrompt.Request

set  callrequest.Prompt   = "Visit the website you will be provided on the next step. Describe the main idea of the project, its objectives and key features in one paragraph." 

set callrequest.UserInput = request.GitHubUrl 

set callrequest.Model = "gpt-4" 

  • Response Message Class: Banksia.OpenAi.Msg.SimplePrompt.Response

set request.Summary = callresponse.Content 

 

Ajoutez une étape <sync> pour attendre une réponse, dans le champ Appels, ajoutez le nom du <call> précédent.

  • Calls: Generate Summary

 

Étape 4 - Ajouter Génération Logo au Processus Métier

 

 

Après avoir obtenu la description du dépôt, passons à la partie logique suivante - la génération de logo. Vérifions qu'il existe une description pour laquelle l'image sera générée et vérifions si aucune URL d'image n'est fournie. Établissons la condition suivante :

(request.LogoUrl="") & (request.Summary'="")

 

Сonfigure l'élément <call> suivant, en faisant également une cible de notre opération OpenAiOut.

  •  Name: Generate Logo

 

 

Personnalisez le type de demande et la réponse reçue.

  • Request Message Class: Banksia.OpenAi.Msg.Images.Request

set  callrequest.ResponseFormat  = "url"

set  callrequest.Operation  = "generations"

set  callrequest.Prompt  = "Create a simple app icon for the following mobile application: "_request.Summary

set  callrequest.Size  = "256x256"

  • Response Message Class: Banksia.OpenAi.Msg.Images.Response

set  request.LogoURL  = callresponse.Data.GetAt(1).Url

    

Après avoir terminé la modification de notre processus métier, cliquez sur le bouton de compilation.

Vous pouvez télécharger l'exemple intégré OpenAI terminé à partir de la branche suivante du projet GitHub : https://github.com/banksiaglobal/bg-openai/tree/test-app

 

 

Étape 5 : Tester notre nouveau processus métier en production

Allez dans la section Interopérabilité->Configurer->Production

 

Tout d'abord, nous devons redémarrer notre processus pour appliquer tous les derniers changements, naviguez vers AppProcess->Actions->Restart.

Pour tester le processus, allez à AppProcess->Actions->Test. Créez un message de test avec une URL GitHub pour l'API OpenAI et envoyez-le en production:

 

 

Vérifiez que la réponse de l'API OpenAI est reçue et traitée correctement par l'application. Allez à Visual Trace pour voir le cycle complet de l'application et assurez-vous que les données correctes sont transmises dans chaque élément du processus.

 

 

 

C'est l'interprétation de l'IA de notre logo d'application :

 


Conclusion

 

En suivant ces étapes, vous pouvez intégrer l'API OpenAI dans la production d'interopérabilité en utilisant le Processus d'Affaires dans InterSystems IRIS. Le module bg-openai est une excellente ressource pour les développeurs souhaitant incorporer l'IA dans leurs applications. En simplifiant le processus d'intégration, il ouvre de nouvelles possibilités pour améliorer les applications avec la puissance de l'intelligence artificielle.

 

À propos de l'auteur

Mariia Nesterenko est une développeuse certifiée IRIS chez Banksia Global. Elle se spécialise dans le développement d'applications, les structures de données, l'interopérabilité et les données géospatiales.

À propos de Banksia Global

Banksia Global est un cabinet de conseil international de niche, dont le siège est à Sydney, en Australie, spécialisé dans la fourniture de services professionnels pour les technologies InterSystems. Avec une équipe de professionnels dévoués et expérimentés, nous sommes fiers d'être un partenaire Premier officiel d'InterSystems, autorisé à fournir des services dans le monde entier. Notre passion pour l'excellence et l'innovation nous pousse à offrir des solutions de haute qualité qui répondent aux besoins uniques de nos clients.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer