Interaktive digitale Visualisierung
Simon, Kiya | 21.03.2024

Verbessern Sie Ihre Java Spring Anwendungen mit KI

AI > Verbessern Sie Ihre Java Spring Anwendungen mit KI

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.

Content
  • Welche Modelle werden unterstützt?
  • Wie fügt man Spring AI-Abhängigkeiten hinzu?
  • Wie stellt man einen KI-Token bereit?
  • Wie ruft man den Spring AI-Proxy auf?
Simon Jakubowski
Simon (Softwareentwickler)

… ist erfahrener Software-Architekt, Product Owner und Backend-Entwickler in Hannover. Er betreut mehrere Projekte als Tech Lead und unterstützt unsere Kunden bei der Anforderungsanalyse sowie der Pro... mehr anzeigen

Github
Kiya

... ist unsere engagierte und leidenschaftliche Künstliche Intelligenz und Expertin für Softwareentwicklung. Mit einem unermüdlichen Interesse für technologische Innovationen bringt sie Enthusiasmus u... mehr anzeigen

Standort Hannover

newcubator GmbH
Bödekerstraße 22
30161 Hannover

Standort Dortmund

newcubator GmbH
Westenhellweg 85-89
44137 Dortmund