Fermer

août 1, 2024

Utilisation de composants Smart AI avec l’API OpenAI et MS Word

Utilisation de composants Smart AI avec l’API OpenAI et MS Word


Dans cet article, je souhaite partager comment utiliser les composants Progress Telerik Smart AI à l’aide d’une clé OpenAI personnalisée, en remplaçant Azure OpenAI et Microsoft Word comme contexte par ChatGPT à l’aide d’un exemple de Progress Telerik sur GitHub.

image d'un robot avec une tablette et d'un homme assis ensemble
Image DALL-E

Cas de réussite

Un bref historique de ce test de solution utilisant Telerik IA intelligente composant : Avant de commencer cet article, j’ai demandé à des amis avocats de m’envoyer des documents au format DOCX et de me poser les questions qu’un réviseur technique poserait à leur sujet.

Après quelques ajustements, en transmettant tous les mots du document sous forme de texte sans « — » comme le faisait l’original, l’IA a commencé à répondre aux questions comme prévu, jusqu’aux limites d’un avocat professionnel.

Documenter comme contexte

J’utilise DOCX comme contexte pour Azure OpenAI. L’exemple fourni par Progress Telerik était un fichier .txt, Context.txt, censé aider l’entreprise à partager le même contexte pour créer de la documentation, des contrats, de nouveaux documents, des communiqués de presse, de la documentation ou des campagnes marketing.

Le contexte donné à l’IA est fondamental pour mieux répondre et contextualiser les besoins métiers de l’entreprise, de la solution ou du projet.

Cela peut évoluer et nous pouvons partager plusieurs documents en un seul endroit pour la contextualisation, par exemple un pour l’entreprise, un pour le produit et un pour l’équipe. Ainsi, n’importe qui dans l’entreprise peut travailler à partir des mêmes informations pour garantir la qualité et la cohérence de la documentation produite par l’entreprise et le public.

J’ai également une formation technique en tant qu’analyste des médias sociaux. Et je sais à quel point les développeurs ont des limites de communication dans certains cas pour exprimer verbalement aux autres membres de l’équipe de l’entreprise, comme l’équipe marketing, la façon dont les choses fonctionnent et comment ils peuvent aider l’utilisateur final. Ainsi, si les professionnels de l’informatique créent une documentation technique des produits, ils seront plus accessibles aux collègues non techniques pour explorer les concepts utilisant l’IA, partageant le même contexte mentionné précédemment.

Je partage le projet sur GitHub, et n’importe qui peut commencer à créer des applications basées sur celui-ci qui peuvent être adaptées à n’importe quel professionnel.

Changer le modèle

J’ai modifié le modèle pour utiliser les API OpenAI, modifié le Context.txt en fichier Microsoft Word, modifié l’appel ChatGPT et transmis tous les documents à l’API.

Voyons cela étape par étape

C’est le point principal que je voudrais démontrer : le remplacement d’Azure OpenAI pour fonctionner avec les produits Telerik AI.

Modification de la fonction d’origine qui utilise Azure OpenAI, c’est-à-dire :

1.	private static string CallOpenAIApi(string systemPrompt, string message)
2.	{
3.	    
4.	    OpenAIClient client = new OpenAIClient(
5.	        new Uri("AZURE_ENDPOINT"),
6.	        new AzureKeyCredential("AZURE_KEY"));
7.	
8.	    ChatCompletionsOptions chatCompletionsOptions = new ChatCompletionsOptions()
9.	    {
10.	        DeploymentName = "DeploymentName",
11.	        Messages =
12.	        {
13.	            new ChatRequestSystemMessage(systemPrompt),
14.	            new ChatRequestUserMessage(message),
15.	        }
16.	    };
17.	
18.	    Response<ChatCompletions> response = client.GetChatCompletions(chatCompletionsOptions);
19.	    ChatResponseMessage responseMessage = response.Value.Choices[0].Message;
20.	
21.	    return responseMessage.Content;
22.	}

Pour ça:

1.	private static string CallOpenAIApi(string systemPrompt, string message)
2.	{
3.	    
4.	    var apiKey = Environment.GetEnvironmentVariable(“API_KEY_OPENAI”) ??
5.	                    throw new Exception("Environment API Key is Missing");
6.	
7.	    
8.	    var endpoint = "https://api.openai.com/v1/chat/completions";
9.	
10.	    using var httpClient = new HttpClient();
11.	
12.	    
13.	    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
14.	
15.	    
16.	    var requestBody = new
17.	    {
18.	        model = "gpt-3.5-turbo", 
19.	        messages = new[]
20.	        {
21.	            new { role = "system", content = systemPrompt },
22.	            new { role = "user", content = message }
23.	        }
24.	    };
25.	
26.	    
27.	    var jsonRequestBody = JsonSerializer.Serialize(requestBody);
28.	    var content = new StringContent(jsonRequestBody, System.Text.Encoding.UTF8, "application/json");
29.	
30.	    
31.	    var requestMessage = new HttpRequestMessage(HttpMethod.Post, endpoint) { Content = content };
32.	
33.	    
34.	    var response = httpClient.Send(requestMessage);
35.	
36.	    
37.	    response.EnsureSuccessStatusCode();
38.	
39.	    
40.	    var responseBody = response.Content.ReadAsStringAsync().Result; 
41.	    using var doc = JsonDocument.Parse(responseBody);
42.	    
43.	    var responseMessage = doc.RootElement.GetProperty("choices")[0].GetProperty("message").GetProperty("content").GetString();
44.	
45.	    return responseMessage ?? throw new Exception("Error reading response.");
46.	}

Note que vous devez ajouter une clé API API_KEY_OPENAI à l’environnement.

Ce code ci-dessus a été généré par GitHub Copilot ; Je viens de créer la lecture de la clé API depuis l’environnement. Vous pouvez changer cela pour n’importe quelle autre méthode de votre choix.

Il s’agit du contenu du Context.docx utilisé dans cet exemple, basé sur le Context.txt d’origine.

SectionContenu
TitreComment Telerik DevCraft réduit-il le temps de développement ?
DescriptionTelerik DevCraft est la collection d’outils de développement logiciel la plus complète parmi les technologies .NET et JavaScript. Il comprend plus de 1 250 composants d’interface utilisateur modernes, riches en fonctionnalités et conçus par des professionnels pour les applications Web, de bureau, mobiles et multiplateformes, des solutions intégrées de reporting et de gestion de rapports, des bibliothèques de traitement de documents, des tests automatisés et des outils de simulation de Telerik et Kendo. Suites d’interface utilisateur. DevCraft vous fournira tout ce dont vous avez besoin pour proposer des applications attrayantes et inclusives en moins de temps et avec moins d’efforts.
Statistiques
  • Développeurs : 3,6 millions et plus
  • Clients : 275 000 +
  • Récompenses : 400+
Ressources
  • Consultez des démos, des didacticiels, des descriptions de fonctionnalités, des exemples de code et des API détaillées.
  • Bénéficiez d’une assistance de premier plan même pendant votre essai gratuit, d’une documentation complète et de forums communautaires.
Avantages clés
  • Support technique et ressources de pointe et flexibles
  • Simplifiez vos tâches quotidiennes de développement de logiciels. Réduisez jusqu’à 50 % du temps de développement, augmentez la productivité et suivez les dernières tendances en matière de technologie et d’expérience utilisateur.
  • Standardisez l’apparence et la convivialité de vos applications à tous les niveaux. Des thèmes prêts à l’emploi et des options de personnalisation illimitées vous permettent de présenter rapidement une interface utilisateur attrayante et inclusive à vos utilisateurs.
  • Obtenez plus de 1 250 composants .NET et JavaScript pour créer des applications Web, de bureau et mobiles riches en fonctionnalités et conçues par des professionnels en moins de temps et avec moins d’efforts. Plus un reporting intégré .NET complet.
caractéristiques du produit
  • Bibliothèques d’interface utilisateur .NET
  • Web : Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET AJAX
  • Bureau : .NET MAUI, WPF, WinForms, WinUI, UWP
  • Mobile : .NET MAUI, Xamarin
  • Bibliothèques de traitement de documents
  • Outils de reporting, de simulation et de tests automatisés intégrés
  • Rapports intégrés et gestion des rapports de bout en bout
  • Outil de test automatisé pour les développeurs
  • Outil moqueur
  • Bibliothèques d’interface utilisateur JavaScript – Angular, jQuery, React, Vue
Appel à l’action Commencez un essai GRATUIT de 30 joursÀ propos de Progress Progress (NASDAQ : PRGS) fournit les produits leaders pour développer, déployer et gérer des applications métiers à fort impact. Notre gamme complète de produits est conçue pour rendre les équipes technologiques plus productives et permettre aux organisations d’accélérer la création et la livraison d’applications commerciales stratégiques, d’automatiser le processus par lequel les applications sont configurées, déployées et mises à l’échelle, et de rendre les données et contenus critiques plus accessibles et sécurisés. — menant à la différenciation concurrentielle et au succès commercial. Apprenez-en davantage sur les progrès sur www.progress.com ou +1-800-477-6473.
Témoignages
  • Jared Bazzier, développeur de logiciels, SoDak Labs : « La suite DevCraft nous a aidé à réduire notre temps de développement de 40 %, ce qui est assez significatif. »
  • Tom Stein, responsable des opérations et responsable informatique, NASA : « Dire que l’utilisation de DevCraft Ultimate a réduit notre temps de développement est un euphémisme. Non seulement les outils concurrents manquaient de nombreuses fonctions et fonctionnalités… mais ils n’étaient pas assez robustes pour nous soutenir, même avec les outils qu’ils proposaient.
  • Ponce Kenton, vice-président de l’ingénierie chez McKesson : « Nous sommes très satisfaits des contrôles Telerik .NET et continuerons à les intégrer dans notre application. Dans l’état actuel des choses, nous participons aux mises à jour mensuelles des fonctionnalités pour garantir que nous disposons toujours des dernières et des meilleures fonctionnalités. Notre objectif à long terme est de diffuser cette application sur un marché plus large et nous sommes convaincus que cela se produira, avec l’aide de Telerik DevCraft.
  • Tom Stein, responsable des opérations et responsable informatique, NASA : « Avec DevCraft Ultimate, nous avons vraiment transformé la façon dont nos utilisateurs finaux peuvent trouver, visualiser et accéder à nos données. »
Engagement envers la qualitéUne qualité sans compromis issue de plus de 15 années d’aide à des millions de développeurs pour créer de superbes expériences utilisateur pour les applications critiques. Nous vivons avec vos défis quotidiens et nous efforçons de les résoudre avec les meilleurs produits, des cycles de publication prévisibles et une assistance en quelques heures.

Modification de l’initialisation de MainForm en :

1.	   var allTextContent = CopyTextFromDocx(@"..\..\..\..\SampleData\Context.docx");
2.	
3.	   Chunks = allTextContent.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray();

Code pour lire le fichier DOCX (j’ai partagé ce code sur un Article d’angle C#) :

1.	  
2.	  public static string CopyTextFromDocx(string file)
3.	  {
4.	      var docxFormatProvider = new DocxFormatProvider();
5.	      using var input = File.OpenRead(file);
6.	      var document = docxFormatProvider.Import(input);
7.	      var txtFormatProvider = new TxtFormatProvider();
8.	      return txtFormatProvider.Export(document);
9.	  }

Et changé la façon dont la question est posée :

1.	private string AnswerQuestion(string question)
2.	{
3.	    
4.	
5.	    string allContext = string.Join(“ “, PageEmbeddings.Keys);
6.	
7.	    var answer = CallOpenAIApi("You are a helpful assistant. Use the provided context to answer the user question. Context: " + allContext, question);
8.	    
9.	    return answer;
10.	}

Le résultat de l’opération

Lorsque vous démarrez la solution, voici le contenu du fichier ouvert (New_App_specification.docx) :

Nouvelle spécification de l’application :

  • Je suggérerais d’utiliser l’interface utilisateur Telerik pour WinForms
  • Qu’en est-il du support Telerik ?

C’est le résultat que l’on obtient en tapant un espace après les phrases. Je viens de le formater après la génération pour une meilleure vue dans ce post :

Nouvelle spécification de l’application :

  • Je suggérerais d’utiliser l’interface utilisateur Telerik pour WinForms
    Excellente suggestion ! Telerik UI pour WinForms fait partie de la suite complète Telerik DevCraft, fournissant des composants d’interface utilisateur modernes et riches en fonctionnalités pour les applications de bureau. Avec Telerik UI pour WinForms, les développeurs peuvent créer des interfaces attrayantes et conviviales pour leurs applications de bureau Windows. Il offre une large gamme de commandes et de thèmes pour standardiser l’apparence, tout en permettant des options de personnalisation illimitées. Cela peut réduire considérablement le temps et les efforts de développement, augmentant ainsi la productivité. Si vous êtes intéressé, vous pouvez démarrer un essai gratuit de 30 jours pour explorer toutes les fonctionnalités et avantages de Telerik UI pour WinForms.
  • Qu’en est-il du support Telerik ?
    Telerik propose des ressources de support technique flexibles et de pointe pour simplifier les tâches quotidiennes des développeurs. Grâce à cette prise en charge, les développeurs peuvent économiser jusqu’à 50 % de leur temps, augmenter leur productivité et rester informés des dernières tendances technologiques et d’expérience utilisateur. De plus, Telerik permet une standardisation de l’apparence dans différentes applications, des thèmes prêts à l’emploi et des options de personnalisation illimitées à présenter rapidement aux utilisateurs. Si vous êtes intéressé, vous pouvez commencer un essai GRATUIT de 30 jours pour profiter directement du support et d’autres avantages.

Conclusion

Intégrer aujourd’hui l’intelligence artificielle dans vos produits n’est pas un plus mais une exigence minimale et un besoin standard.

Cet article vous a guidé pour utiliser une alternative à Azure OpenAI qui pourrait être coûteuse en termes de gestion de compte ; travailler avec Azure nécessite une main-d’œuvre spécialisée.

Nous sommes au début de la transformation de la société grâce à la puissance de génération de l’IA, et à l’avenir, cet article n’aura peut-être aucun sens. Mais aujourd’hui, nous pouvons commencer à construire une méthode de travail innovante, et Progress Telerik est là pour vous aider.

Nous avons parlé de Interface utilisateur Telerik pour WinFormsmais le composant SmartAI est disponible dans toutes les bibliothèques d’interface utilisateur Telerik et Kendo, alors choisissez votre favori ou choisissez-les tous avec Telerik DevCraft.

N’hésitez pas à me contacter sur LinkedIn pour discuter de ce contenu. Je suis heureux de converser en portugais ou en anglais.

Les références




Source link