Accès anticipé à Spring AI, démarrez le développement d'applications Java AI en 5 minutes

Auteur : Liu Jun

Spring AI est un projet communautaire officiel de Spring, visant à simplifier le développement d'applications Java AI et à permettre aux développeurs Java de développer des applications AI tout comme utiliser Spring pour développer des applications ordinaires.

Spring Cloud Alibaba AI est basé sur Spring AI et fournit sur cette base une adaptation complète des grands modèles de la série Alibaba Cloud Tongyi, permettant aux utilisateurs de développer des applications Java AI basées sur les grands modèles Tongyi en 5 minutes.

La démo Spring AI x Tongyi Qianwen a été lancée sur  sca.aliyun.com

Introduction à l'IA Spring

Selon le site officiel de Spring AI, le projet s'inspire de célèbres projets Python tels que LangChain et LlamaIndex, mais Spring AI n'est pas une copie directe de ces projets. Spring AI estime que la prochaine vague d'applications d'IA générative ne sera pas seulement disponible pour les développeurs Python, mais sera largement utilisée dans de nombreux langages de programmation.

À la base, Spring AI fournit des abstractions comme base pour le développement d'applications Java AI, offrant les fonctionnalités suivantes :

  • Fournit plusieurs capacités d'accueil de services de grands modèles, y compris la plupart des services de grands modèles courants du secteur ;
  • Prend en charge les capacités flexibles d'analyse de sortie de modèle et de modèle d'invite ;
  • Prendre en charge les capacités d'IA générative multimodale, telles que le dialogue, les images vincentiennes, le discours vincentien, etc. ;
  • Fournit une API commune et portable pour accéder à divers services de modèles et services d'intégration, prend en charge les appels synchrones et en streaming, et prend également en charge la transmission de paramètres personnalisés de modèles spécifiques ;
  • Composants de base prenant en charge les fonctionnalités RAG, notamment DocumentLoader, TextSpillter, EmobeddingClient, VectorStore, etc. ;
  • Prend en charge AI Spring Boot Starter pour réaliser l'assemblage automatique de la configuration.

Introduction à Spring Cloud Alibaba AI

Spring Cloud Alibaba AI complète actuellement l'accès à la série Tongyi de grands modèles basés sur l'API de la version Spring AI 0.8.1 [ 1] . Tongyi Access est basé sur Alibaba Cloud Lingji Model Service [ 2] . Lingji Model Service est basé sur le concept de « Model-as-a-Service (MaaS) » et se concentre sur les modèles dans divers domaines de l'IA. Fournit une variété de modèles. services comprenant l'inférence de modèle, le réglage fin du modèle et la formation via des API standardisées.

Dans la dernière version, Spring Cloud Alibaba AI a principalement achevé l'adaptation de plusieurs modèles génératifs courants, notamment le dialogue, les images vincentiennes, le discours vincentien, etc. Les développeurs peuvent utiliser Spring Cloud Alibaba AI pour développer un chat, une image ou un discours général basé sur la signification. Applications d'IA de nouvelle génération, le framework fournit également des fonctionnalités pratiques telles que OutParser, Prompt Template et Stuff.

Voici les exemples de développement d'applications Spring Cloud Alibaba AI actuellement officiellement fournis, qui peuvent être consultés en visitant  sca.aliyun.com .

  • Application de conversation par chat
  • Application du diagramme de Vincent
  • Application vocale Vincent
  • Analyse de la sortie du modèle OutputParser (implémentation du mappage de String vers POJO automatique)
  • Utiliser un modèle d'invite
  • Laissez le modèle d'IA accéder aux données externes (Prompt Stuff)

Découvrez le premier développement d'applications Spring AI

Ce projet montre comment utiliser spring-cloud-starter-alibaba-ai pour compléter une application d'IA de chat en ligne. Le service de modèle sous-jacent fourni par Tongyi Qianwen est utilisé. L'exemple complet de code source peut être consulté ici [ 3] .

Développer des applications de conversation par chat

  1. Ajoutez la dépendance Spring Cloud Alibaba de la version 2023.0.1.0 au projet pom.xml :
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>2023.0.1.0</version>
      <type>pom</type>
      <scope>import</scope>
     </dependency>
   </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-ai</artifactId>
  </dependency>
</dependencies>
  1. Ajoutez la configuration suivante au fichier de configuration application.yml :
spring:
  cloud:
    ai:
      tongyi:
        chat:
          options:
            # Replace the following key with a valid API-KEY.
            api-key: sk-a3d73b1709bf4a178c28ed7c8b3b5axx
  1. Écrivez une classe d'implémentation de service de chat et Spring AI injecte automatiquement ChatClient et StreamingChatClient protège les détails d'interaction du modèle général sous-jacent.
@Service
public class TongYiSimpleServiceImpl extends AbstractTongYiServiceImpl {

  private final ChatClient chatClient;

  private final StreamingChatClient streamingChatClient;

  @Autowired
  public TongYiSimpleServiceImpl(ChatClient chatClient, StreamingChatClient streamingChatClient) {
    this.chatClient = chatClient;
    this.streamingChatClient = streamingChatClient;
  }
}
  1. Fournir une implémentation spécifique de la logique de discussion
@Service
public class TongYiSimpleServiceImpl extends AbstractTongYiServiceImpl {

  // ......

  @Override
  public String completion(String message) {

    Prompt prompt = new Prompt(new UserMessage(message));

    return chatClient.call(prompt).getResult().getOutput().getContent();
  }

  @Override
  public Map<String, String> streamCompletion(String message) {

    StringBuilder fullContent = new StringBuilder();

    streamingChatClient.stream(new Prompt(message))
        .flatMap(chatResponse -> Flux.fromIterable(chatResponse.getResults()))
        .map(content -> content.getOutput().getContent())
        .doOnNext(fullContent::append)
        .last()
        .map(lastContent -> Map.of(message, fullContent.toString()))
        .block();

    log.info(fullContent.toString());

    return Map.of(message, fullContent.toString());
  }

}
  1. Écrivez la classe d'entrée Spring et démarrez l'application
@SpringBootApplication
public class TongYiApplication {
  public static void main(String[] args) {
    SpringApplication.run(TongYiApplication.class);
  }
}

À ce stade, le développement d'applications d'IA de chat le plus simple est terminé, ce qui est exactement le même que les étapes ordinaires de développement d'applications Spring Boot !

Vérifier l'effet de l'application

Après avoir démarré l'application, vous pouvez vérifier l'effet de l'application des deux manières suivantes.

première méthode

Saisissez dans la barre d'adresse du navigateur : http://localhost:8080/ai/example

Renvoie la réponse suivante :

{
    "Tell me a joke": "Sure, here's a classic one for you:\n\nWhy was the math book sad?\n\nBecause it had too many problems.\n\nI hope that made you smile! If you're looking for more, just let me know."
}

Méthode 2

Entrez dans le répertoire resources/static, utilisez un navigateur pour ouvrir le fichier index.html, entrez la question et obtenez la réponse de sortie (assurez-vous que la clé API est valide) :

Demander la clé API Tongyi

Pour que l'exemple puisse accéder normalement au grand modèle Tongyi, vous devez activer  le service de modèle DashScope Lingji sur Alibaba Cloud , demander une clé API valide et la mettre à jour dans le fichier de configuration de l'application. Pour les étapes de fonctionnement spécifiques, veuillez vous référer aux documents suivants :

https://help.aliyun.com/zh/dashscope/developer-reference/activate-dashscope-and-create-an-api-key

plan d'avenir

La version actuelle de Spring Cloud Alibaba AI complète principalement l'adaptation de plusieurs modèles génératifs courants, notamment le dialogue, les graphiques vincentiens, le discours vincentien, etc. Dans la prochaine version, nous continuerons à réaliser davantage d'adaptations telles que VectorStore, Embedding et ETL Pipeline, et à simplifier davantage de scénarios de développement d'applications d'IA tels que RAG.

Veuillez continuer à prêter attention à https://sca.aliyun.com pour les derniers développements. Vous êtes également invités à scanner le code QR ci-dessous via DingTalk pour rejoindre le groupe communautaire DingTalk. (Numéro de groupe : 64485010179 )

Liens connexes:

[1] Printemps IA 0.8.1

https://docs.spring.io/spring-ai/reference/0.8-SNAPSHOT/index.html

[2] Service modèle Lingji

https://help.aliyun.com/zh/dashscope/

[3] Exemple complet de code source

https://github.com/alibaba/spring-cloud-alibaba/tree/2023.x/spring-cloud-alibaba-examples/spring-cloud-ai-example/src/main/java/com/alibaba/cloud/ ai/exemple/tongyi/service/impl/helloworld

J'ai décidé d'abandonner les logiciels industriels open source. OGG 1.0 est sorti, Huawei a contribué à tout le code source. Ubuntu 24.04 LTS a été officiellement publié. L'équipe de Google Python Foundation a été tuée par la "montagne de merde de code" . ". Fedora Linux 40 a été officiellement lancé. Une société de jeux bien connue a publié de nouvelles réglementations : les cadeaux de mariage des employés ne doivent pas dépasser 100 000 yuans. China Unicom lance la première version chinoise Llama3 8B au monde du modèle open source. Pinduoduo est condamné à compenser 5 millions de yuans pour concurrence déloyale Méthode de saisie dans le cloud domestique - seul Huawei n'a aucun problème de sécurité de téléchargement de données dans le cloud.
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/3874284/blog/11063462
conseillé
Classement