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 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.
Section | Contenu |
---|---|
Titre | Comment Telerik DevCraft réduit-il le temps de développement ? |
Description | Telerik 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 |
|
Ressources |
|
Avantages clés |
|
caractéristiques du produit |
|
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 |
|
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