Verbessern Sie Ihre Java Spring Anwendungen mit KI
Ich habe die Versionshinweise für Spring AI 0.8.0 entdeckt und beschlossen, diese selbst einmal zu auszuprobieren - die Handhabung ist überraschend unkompliziert. Als Beispiel dient dieses kurze Projekt: https://github.com/sijakubo/spring-ai-test
Sie müssen lediglich:
die Spring AI-Abhängigkeiten einfügen
einen KI-Token bereitstellen
den Spring AI-Proxy aufrufen (z.B. ChatClient, ImageClient)
Unterstützte Modelle sind:
Chat-Modelle
OpenAI
Azure OpenAI
Amazon Bedrock
Anthropic's Claude
Cohere's Command
AI21 Labs' Jurassic-2
Meta's LLama 2
Amazon's Titan
Google Vertex AI Palm - Gemini-Unterstützung kommt bald (folgen Sie dem WIP-Zweig)
HuggingFace - Zugriff auf Tausende von Modellen, einschließlich solche von Meta wie Llama2
Ollama - AI-Modelle auf Ihrem lokalen Rechner ausführen
Text-to-Image-Modelle
OpenAI mit DALL-E
StabilityAI
Einbettungsmodelle
OpenAI
Azure OpenAI
Ollama
ONNX
PostgresML
Bedrock Cohere
Bedrock Titan
Google VertexAI
Spring AI-Abhängigkeiten einfügen
Fügen Sie einfach das Maven BOM für die Spring AI Ihrem Gradle DependencyManagement hinzu und fügen Sie die eigentliche Spring AI Spring Boot Starter-Depdency hinzu:
1build.gradle.kts
2
3dependencyManagement {
4 imports {
5 mavenBom("org.springframework.ai:spring-ai-bom:0.8.0")
6 }
7}
8
9dependencies {
10 ...
11 implementation("org.springframework.ai:spring-ai-openai-spring-boot-starter")
12 ...
13}
Bereitstellung eines KI-Tokens
Um einen KI-Dienst verwenden zu können, müssen Sie einen tatsächlichen Token bereitstellen. Sie können dies innerhalb der application.properties
tun. Zum Beispiel:
1spring.ai.openai.api-key=<OPEN_AI_API_KEY>
2spring.ai.openai.image.api-key=<OPEN_AI_API_KEY>
3
4spring.ai.azure.openai.api-key=<AZURE_API_KEY>
Außerdem haben Sie die Möglichkeit, die Nutzung des jeweiligen KI-Dienstes zu konfigurieren. Bei Verwendung des OpenAI-Dienstes können Sie z.B. diese Optionen konfigurieren:
temperature: Die Sampling-Temperatur, die verwendet wird und die offensichtliche Kreativität der erzeugten Ergänzungen steuert
maxTokens: Die maximale Anzahl an Tokens, die in der Chat-Komplettierung generiert werden sollen
Den Spring AI-Proxy aufrufen
Um den KI-Dienst tatsächlich nutzen zu können, können Sie den entsprechenden Proxy-Client aufrufen.
Wenn Sie einfach nur den ChatClient
verwenden, können Sie der KI Fragen stellen, als würden Sie mit der KI chatten. Zum Beispiel:
1String quote = chatClient.call("Tell a random funny 'The Office' quote");
oder
1String translatedText = chatClient.call("Translate the following text from langauge: %s to language: %s. The text is: %s"
2 .formatted(
3 translationResource.sourceLanguage(),
4 translationResource.targetLanguage(),
5 translationResource.text()
6 ));
Fazit
Es ist ziemlich einfach, einen KI-Dienst in eine Webanwendung zu integrieren. Spring bietet einfache Methoden zur Integration mehrerer KI-Dienste, indem es über die tatsächlichen Service-APIs abstrahiert, was den Wechsel zwischen mehreren Diensten erleichtert und die Ergebnisse nach Ihren persönlichen Bedürfnissen bewertet.