Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft

Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft

WBOY
WBOYnach vorne
2024-02-01 21:18:02893Durchsuche

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Bereich Programmierung. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme.

Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (Allgemeine Künstliche Intelligenz) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „Spring AI“, mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „Spring AI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind. Dies trägt nicht nur zur Verbesserung der Entwicklungseffizienz bei, sondern beschleunigt auch die Popularisierung und Anwendung der KI-Technologie. Kurz gesagt: „Spring AI“ eröffnet neue Möglichkeiten für die Entwicklung von KI-Anwendungen und bietet Entwicklern einfachere und intuitivere Tools und Frameworks.

In diesem Artikel werden das Spring AI-Framework und einige technische Tipps zur Verwendung des Frameworks kurz vorgestellt. Entwickler können diese Tipps nutzen, um Aufforderungsinformationen besser zu strukturieren und die Möglichkeiten von Spring AI voll auszuschöpfen.

1 Einführung in Spring AI

编程新范式,当Spring Boot遇上OpenAISpring AI erstellt und geschrieben von M K Pavan Kumar

Spring AI ist ein Projekt zur Vereinfachung der Entwicklung von KI-Anwendungen, inspiriert von den Python-Projekten LangChain und LlamaIndex. Allerdings ist Spring AI keine einfache Kopie. Seine Kernidee besteht darin, generative KI-Anwendungen für Benutzer verschiedener Programmiersprachen zu öffnen, nicht nur für Python-Enthusiasten. Dies bedeutet, dass Entwickler KI-Anwendungen in einer Sprache erstellen können, mit der sie vertraut sind, ohne die Python-Sprache erlernen zu müssen. Mit Spring AI können Entwickler die Leistungsfähigkeit der KI einfacher nutzen, um eine Vielzahl von Problemen zu lösen, unabhängig davon, welche Programmiersprache sie verwenden. Dies wird eine umfassendere Entwicklung von KI-Anwendungen erleichtern und Entwicklern mehr Flexibilität und Auswahl bieten.

Das Hauptziel von Spring AI besteht darin, die Grundbausteine ​​für die Erstellung KI-gesteuerter Anwendungen bereitzustellen. Diese Bausteine ​​sind äußerst flexibel und Komponenten können problemlos ausgetauscht werden, praktisch ohne Änderungen am Code. Ein Beispiel ist, dass Spring AI eine Komponente namens ChatClient-Schnittstelle einführt, die mit OpenAI- und Azure OpenAI-Technologien kompatibel ist. Dadurch können Entwickler zwischen verschiedenen KI-Dienstanbietern wechseln, ohne den Code zu ändern, was die Entwicklung und Integration komfortabler macht.

Im Kern stellt Spring AI zuverlässige Bausteine ​​für die Entwicklung von auf künstlicher Intelligenz basierenden Anwendungen bereit. Die Elastizität dieser Module ermöglicht einen reibungslosen Austausch von Komponenten, ohne dass umfangreiche Änderungen an der Codierung erforderlich sind. Ein Beispiel ist die Einführung der ChatClient-Schnittstelle durch Spring AI, die mit OpenAI und Azure OpenAI kompatibel ist und es Entwicklern ermöglicht, problemlos mit beiden Plattformen zu kommunizieren. Diese Kompatibilität ermöglicht es Entwicklern, die geeignete Plattform basierend auf den tatsächlichen Anforderungen auszuwählen, ohne den Code neu schreiben zu müssen. Mit Spring AI können Entwickler KI-gesteuerte Anwendungen effizienter erstellen.

Spring AI geht über grundlegende Bausteine ​​hinaus und konzentriert sich auf die Bereitstellung fortschrittlicherer Lösungen. So können beispielsweise typische Szenarien wie „Fragen und Antworten zu den eigenen Dokumenten“ oder „Interaktiver Chat mit Dokumenten“ unterstützt werden. Da die Anwendungsanforderungen wachsen, plant Spring AI eine enge Zusammenarbeit mit anderen Komponenten des Spring-Ökosystems wie Spring Integration, Spring Batch und Spring Data, um komplexere Geschäftsanforderungen zu erfüllen.

2 Erstellen Sie ein Spring Boot-Projekt und schreiben Sie ein Beispiel für einen OpenAI-Controller.

Generieren Sie zunächst ein Spring Boot-Projekt in der IDE und behalten Sie den folgenden Inhalt in der Datei application.properties:

spring.ai.openai.api-key=<YOUR\_OPENAI\_API\_KEY>

Schreiben Sie unten einen Controller mit dem Namen OpenAIController.java:

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;}}

3 Verwenden Sie die Prompt-Klasse, um Eingabeaufforderungsinformationen zu erstellen

Die Eingabeaufforderungsklasse ist ein strukturierter Halter einer Folge von Nachrichtenobjekten, und jede Nachricht stellt einen Teil der Eingabeaufforderung dar. Diese Nachrichten haben in der Eingabeaufforderung unterschiedliche Rollen und Zwecke und ihr Inhalt variiert. Enthält Benutzerfragen, KI-generierte Antworten, relevante Kontextdetails und mehr. Dieser Aufbau erleichtert komplexe und anspruchsvolle Mensch-Computer-Interaktionen, da die Eingabeaufforderung aus mehreren Nachrichten mit spezifischen Funktionen besteht.

@GetMapping("/completion")public String completion(@RequestParam(value = "message") String message){return this.aiClient.generate(message);}

Die Generate-Methode von aiClient akzeptiert jedoch nicht nur einfachen Text als Parameter, sondern auch Objekte der Prompt-Klasse als Parameter, wie unten gezeigt. Diese Methode gibt nun eine Instanz vom Typ AiResponse zurück, keinen einfachen Text.

@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);}

Darüber hinaus stellt die Prompt-Klasse auch einen überladenen Konstruktor bereit, der eine Folge von Nachrichtentypinstanzen mit unterschiedlichen Rollen und Absichten als Parameter akzeptieren kann. Dadurch können zeitnahe Informationen besser organisiert und verwaltet und die spätere Verarbeitung und Nutzung erleichtert werden. Unten finden Sie einen Beispielcode, der zeigt, wie Sie mit diesem überladenen Konstruktor alles zusammenführen.

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();}}

4 Anwendungen testen

Anwendungen können mit allen auf dem Markt verfügbaren offenen Tools getestet werden, z. B. Postman, Insomnia, Httpie und viele mehr.

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

Das obige ist der detaillierte Inhalt vonEin neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen