Table des matières
1 Introduction à Spring AI
2 Créez un projet Spring Boot et écrivez un exemple de contrôleur OpenAI
3 Utilisez la classe Prompt pour construire des informations d'invite
4 Applications de test
Maison Périphériques technologiques IA Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI

Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI

Feb 01, 2024 pm 09:18 PM
ai spring openai

En 2023, la technologie de l'IA est devenue un sujet brûlant et a eu un impact énorme sur diverses industries, notamment dans le domaine de la programmation. Les gens sont de plus en plus conscients de l’importance de la technologie de l’IA, et la communauté Spring ne fait pas exception.

Avec l'avancée continue de la technologie GenAI (Intelligence Artificielle Générale), il est devenu crucial et urgent de simplifier la création d'applications dotées de fonctions d'IA. Dans ce contexte, « Spring AI » a émergé, visant à simplifier le processus de développement d'applications fonctionnelles d'IA, en le rendant simple et intuitif et en évitant une complexité inutile. Grâce à « Spring AI », les développeurs peuvent plus facilement créer des applications dotées de fonctions d'IA, ce qui les rend plus faciles à utiliser et à exploiter. Cela contribue non seulement à améliorer l’efficacité du développement, mais accélère également la vulgarisation et l’application de la technologie de l’IA. En bref, « Spring AI » apporte de nouvelles possibilités au développement d'applications d'IA, en fournissant aux développeurs des outils et des frameworks plus simples et plus intuitifs.

Cet article présentera brièvement le framework Spring AI et quelques conseils d'ingénierie pour utiliser le framework. Les développeurs peuvent utiliser ces conseils pour mieux structurer les informations d'invite et utiliser pleinement les capacités de Spring AI.

1 Introduction à Spring AI

编程新范式,当Spring Boot遇上OpenAISpring AI créé et écrit par M K Pavan Kumar

Spring AI est un projet conçu pour simplifier le développement d'applications d'IA, inspiré des projets Python LangChain et LlamaIndex. Cependant, Spring AI n’est pas une simple copie. Son idée principale est d'ouvrir les applications d'IA générative aux utilisateurs de divers langages de programmation, et pas seulement aux passionnés du langage Python. Cela signifie que les développeurs peuvent créer des applications d'IA en utilisant un langage qu'ils connaissent bien sans avoir à apprendre le langage Python. Avec Spring AI, les développeurs peuvent exploiter plus facilement la puissance de l’IA pour résoudre divers problèmes, quel que soit le langage de programmation qu’ils utilisent. Cela facilitera le développement d’applications d’IA plus larges et offrira aux développeurs plus de flexibilité et de choix.

L'objectif principal de Spring AI est de fournir les éléments de base pour créer des applications basées sur l'IA. Ces éléments de base sont très flexibles et les composants peuvent être facilement échangés sans pratiquement aucune modification du code. Un exemple est que Spring AI introduit un composant appelé interface ChatClient, qui est compatible avec les technologies OpenAI et Azure OpenAI. Cela permet aux développeurs de basculer entre différents fournisseurs de services d'IA sans modifier le code, ce qui rend le développement et l'intégration plus pratiques.

À la base, Spring AI fournit des éléments de base fiables pour le développement d'applications basées sur l'intelligence artificielle. L'élasticité de ces modules permet un échange fluide des composants sans nécessiter de modifications importantes du codage. Un exemple est l'introduction par Spring AI de l'interface ChatClient, qui est compatible avec OpenAI et Azure OpenAI, permettant aux développeurs de communiquer facilement avec les deux plates-formes. Cette compatibilité permet aux développeurs de choisir la plateforme appropriée en fonction des besoins réels sans avoir à réécrire le code. Avec Spring AI, les développeurs peuvent créer plus efficacement des applications basées sur l'IA.

Spring AI va au-delà des éléments de base et se concentre sur la fourniture de solutions plus avancées. Par exemple, il peut prendre en charge des scénarios typiques tels que « questions et réponses sur ses propres documents » ou « chat interactif utilisant des documents ». À mesure que les besoins en applications augmentent, Spring AI prévoit de travailler en étroite collaboration avec d'autres composants de l'écosystème Spring, tels que Spring Integration, Spring Batch et Spring Data, pour répondre à des besoins commerciaux plus complexes.

2 Créez un projet Spring Boot et écrivez un exemple de contrôleur OpenAI

Générez d'abord un projet Spring Boot dans l'EDI et conservez le contenu suivant dans le fichier application.properties :

spring.ai.openai.api-key=<YOUR\_OPENAI\_API\_KEY>
Copier après la connexion

Écrivez un contrôleur nommé OpenAIController.java ci-dessous :

package com.vas.springai.controller;import org.springframework.ai.client.AiClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api/v1")public class OpenAIController {private final AiClient aiClient;public OpenAIController(AiClient aiClient) {this.aiClient = aiClient;}}
Copier après la connexion

3 Utilisez la classe Prompt pour construire des informations d'invite

La classe d'invite est un détenteur structuré d'une séquence d'objets de message, et chaque message représente une partie de l'invite. Ces messages ont des rôles et des objectifs différents dans l'invite, et leur contenu varie. Comprend les questions des utilisateurs, les réponses générées par l'IA, les détails contextuels pertinents, et bien plus encore. Cette configuration facilite les interactions homme-machine complexes et sophistiquées puisque l'invite se compose de plusieurs messages avec des fonctions spécifiques.

@GetMapping("/completion")public String completion(@RequestParam(value = "message") String message){return this.aiClient.generate(message);}
Copier après la connexion

Cependant, la méthode generate d'aiClient n'accepte pas seulement le texte brut comme paramètre, elle peut également accepter les objets de la classe Prompt comme paramètres, comme indiqué ci-dessous. Désormais, cette méthode renvoie une instance de type AiResponse, pas un simple texte.

@GetMapping("/completion")public AiResponse completion(@RequestParam(value = "message") String message){ PromptTemplate promptTemplate = new PromptTemplate("translate the given english sentence sentence into french {query}"); Prompt prompt = promptTemplate.create(Map.of("query", message)); return this.aiClient.generate(prompt);}
Copier après la connexion

De plus, la classe Prompt fournit également un constructeur surchargé qui peut accepter une séquence d'instances de type Message avec différents rôles et intentions comme paramètres. Cela permet de mieux organiser et gérer les informations rapides et de faciliter leur traitement et leur utilisation ultérieurs. Vous trouverez ci-dessous un exemple de code qui montre comment utiliser ce constructeur surchargé pour tout fusionner.

package com.vas.springai.controller;import org.springframework.ai.client.AiClient;import org.springframework.ai.client.Generation;import org.springframework.ai.prompt.Prompt;import org.springframework.ai.prompt.PromptTemplate;import org.springframework.ai.prompt.SystemPromptTemplate;import org.springframework.ai.prompt.messages.Message;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;import java.util.Map;@RestController@RequestMapping("/api/v1")public class OpenAIController {private final AiClient aiClient;public OpenAIController(AiClient aiClient) {this.aiClient = aiClient;}@GetMapping("/completion")public List<Generation> completion(@RequestParam(value = "message") String message) {String systemPrompt = """You are a helpful AI assistant that helps people translate given text from english to french.Your name is TranslateProYou should reply to the user's request with your name and also in the style of a professional.""";SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt);Message systemMessage = systemPromptTemplate.createMessage();PromptTemplate promptTemplate = new PromptTemplate("translate the given english sentence sentence into french {query}");Message userMessage = promptTemplate.createMessage(Map.of("query", message));Prompt prompt = new Prompt(List.of(systemMessage, userMessage));return this.aiClient.generate(prompt).getGenerations();}}
Copier après la connexion

4 Applications de test

Les applications peuvent être testées à l'aide de tous les outils ouverts disponibles sur le marché, tels que postman, insomnia, Httpie et bien d'autres.

编程新范式,当Spring Boot遇上OpenAI Photos

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter une nouvelle colonne dans SQL Comment ajouter une nouvelle colonne dans SQL Apr 09, 2025 pm 02:09 PM

Ajoutez de nouvelles colonnes à une table existante dans SQL en utilisant l'instruction ALTER TABLE. Les étapes spécifiques comprennent: la détermination des informations du nom de la table et de la colonne, rédaction des instructions de la table ALTER et exécution des instructions. Par exemple, ajoutez une colonne de messagerie à la table des clients (VARCHAR (50)): Alter Table Clients Ajouter un e-mail VARCHAR (50);

Quelle est la syntaxe pour ajouter des colonnes dans SQL Quelle est la syntaxe pour ajouter des colonnes dans SQL Apr 09, 2025 pm 02:51 PM

La syntaxe pour ajouter des colonnes dans SQL est alter table table_name Ajouter Column_name data_type [pas null] [default default_value]; Lorsque Table_Name est le nom de la table, Column_name est le nouveau nom de colonne, DATA_TYPE est le type de données, et non Null Spécifie si les valeurs NULL sont autorisées, et default default_value spécifie la valeur par défaut.

Tableau Clear SQL: Conseils d'optimisation des performances Tableau Clear SQL: Conseils d'optimisation des performances Apr 09, 2025 pm 02:54 PM

Conseils pour améliorer les performances de compensation de la table SQL: utilisez une table tronquée au lieu de supprimer, libre d'espace et réinitialiser la colonne d'identité. Désactivez les contraintes de clés étrangères pour éviter la suppression en cascade. Utilisez les opérations d'encapsulation des transactions pour assurer la cohérence des données. Supprimer les mégadonnées et limiter le nombre de lignes via Limit. Reconstruisez l'indice après la compensation pour améliorer l'efficacité de la requête.

Comment définir des valeurs par défaut lors de l'ajout de colonnes dans SQL Comment définir des valeurs par défaut lors de l'ajout de colonnes dans SQL Apr 09, 2025 pm 02:45 PM

Définissez la valeur par défaut des colonnes nouvellement ajoutées, utilisez l'instruction ALTER TABLE: Spécifiez des colonnes Ajouter et définissez la valeur par défaut: alter table table_name Ajouter Column_name data_type default_value; Utilisez la clause CONSTRAINT pour spécifier la valeur par défaut: ALTER TABLE TABLE_NAME ADD COLUMN COLUMN_NAME DATA_TYPE CONSTRAINT DEFAULT_CONSTRAINT DEFAULT_VALUE;

Utilisez la déclaration de suppression pour effacer les tables SQL Utilisez la déclaration de suppression pour effacer les tables SQL Apr 09, 2025 pm 03:00 PM

Oui, l'instruction Delete peut être utilisée pour effacer une table SQL, les étapes sont les suivantes: Utilisez l'instruction Delete: Delete de Table_Name; Remplacez Table_Name par le nom de la table à effacer.

phpmyadmin crée un tableau de données phpmyadmin crée un tableau de données Apr 10, 2025 pm 11:00 PM

Pour créer un tableau de données à l'aide de PhpMyAdmin, les étapes suivantes sont essentielles: connectez-vous à la base de données et cliquez sur le nouvel onglet. Nommez le tableau et sélectionnez le moteur de stockage (InnODB recommandé). Ajouter les détails de la colonne en cliquant sur le bouton Ajouter une colonne, y compris le nom de la colonne, le type de données, s'il faut autoriser les valeurs nuls et d'autres propriétés. Sélectionnez une ou plusieurs colonnes comme clés principales. Cliquez sur le bouton Enregistrer pour créer des tables et des colonnes.

Comment gérer la fragmentation de la mémoire redis? Comment gérer la fragmentation de la mémoire redis? Apr 10, 2025 pm 02:24 PM

La fragmentation de la mémoire redis fait référence à l'existence de petites zones libres dans la mémoire allouée qui ne peut pas être réaffectée. Les stratégies d'adaptation comprennent: Redémarrer Redis: effacer complètement la mémoire, mais le service d'interruption. Optimiser les structures de données: utilisez une structure plus adaptée à Redis pour réduire le nombre d'allocations et de versions de mémoire. Ajustez les paramètres de configuration: utilisez la stratégie pour éliminer les paires de valeurs clés les moins récemment utilisées. Utilisez le mécanisme de persistance: sauvegardez régulièrement les données et redémarrez Redis pour nettoyer les fragments. Surveillez l'utilisation de la mémoire: découvrez les problèmes en temps opportun et prenez des mesures.

Comment créer une base de données Oracle Comment créer une base de données Oracle Comment créer une base de données Oracle Comment créer une base de données Oracle Apr 11, 2025 pm 02:33 PM

La création d'une base de données Oracle n'est pas facile, vous devez comprendre le mécanisme sous-jacent. 1. Vous devez comprendre les concepts de la base de données et des SGBD Oracle; 2. Master les concepts de base tels que SID, CDB (base de données de conteneurs), PDB (base de données enfichable); 3. Utilisez SQL * Plus pour créer CDB, puis créer PDB, vous devez spécifier des paramètres tels que la taille, le nombre de fichiers de données et les chemins; 4. Les applications avancées doivent ajuster le jeu de caractères, la mémoire et d'autres paramètres et effectuer un réglage des performances; 5. Faites attention à l'espace disque, aux autorisations et aux paramètres des paramètres, et surveillez et optimisez en continu les performances de la base de données. Ce n'est qu'en le maîtrisant habilement une pratique continue que vous pouvez vraiment comprendre la création et la gestion des bases de données Oracle.

See all articles