Acesso antecipado ao Spring AI, comece a desenvolver aplicativos Java AI em 5 minutos

Autor: Liu Jun

Spring AI é um projeto comunitário oficial do Spring, com o objetivo de simplificar o desenvolvimento de aplicativos Java AI e permitir que desenvolvedores Java desenvolvam aplicativos de IA da mesma forma que usam o Spring para desenvolver aplicativos comuns.

Spring Cloud Alibaba AI é baseado em Spring AI e, com base nisso, fornece adaptação abrangente dos grandes modelos da série Alibaba Cloud Tongyi, permitindo aos usuários desenvolver aplicativos Java AI baseados em grandes modelos Tongyi em 5 minutos.

A demonstração Spring AI x Tongyi Qianwen foi lançada em  sca.aliyun.com

Introdução ao Spring AI

De acordo com o site oficial do Spring AI, o projeto é inspirado em projetos Python famosos como LangChain e LlamaIndex, mas o Spring AI não é uma cópia direta desses projetos. Spring AI acredita que a próxima onda de aplicativos de IA generativa não estará disponível apenas para desenvolvedores Python, mas será amplamente utilizada em muitas linguagens de programação.

Basicamente, o Spring AI fornece abstrações como base para o desenvolvimento de aplicativos Java AI, fornecendo os seguintes recursos:

  • Fornece vários recursos de acoplamento de serviços de modelos grandes, incluindo a maioria dos serviços de modelos grandes convencionais do setor;
  • Suporta modelo de prompt flexível e análise de saída de modelo Capacidades de análise de saída;
  • Apoiar capacidades multimodais de IA generativa, como diálogo, imagens vicentinas, discurso vicentino, etc.;
  • Fornece uma API comum e portátil para acessar vários serviços de modelo e serviços de incorporação, suporta chamadas síncronas e de streaming e também suporta a passagem de parâmetros personalizados de modelos específicos;
  • Componentes básicos que suportam recursos RAG, incluindo DocumentLoader, TextSpillter, EmobeddingClient, VectorStore, etc.;
  • Suporte AI Spring Boot Starter para realizar a montagem automática da configuração.

Introdução ao Spring Cloud Alibaba AI

Spring Cloud Alibaba AI atualmente conclui o acesso à série Tongyi de grandes modelos baseados na API da versão Spring AI 0.8.1 [ 1] . O Tongyi Access é baseado no Alibaba Cloud Lingji Model Service [ 2] . O Lingji Model Service é baseado no conceito de "Modelo como serviço (MaaS)" e se concentra em modelos em vários campos da IA. serviços, incluindo inferência de modelos, ajuste fino de modelos e treinamento por meio de APIs padronizadas.

Na versão mais recente, Spring Cloud Alibaba AI completou principalmente a adaptação de vários modelos generativos comuns, incluindo diálogo, imagens vicentinas, discurso vicentino, etc. Os desenvolvedores podem usar Spring Cloud Alibaba AI para desenvolver bate-papo geral baseado em significado, imagem ou para fala geração de aplicativos de IA, a estrutura também fornece recursos práticos, como OutParser, Prompt Template e Stuff.

A seguir estão os exemplos de desenvolvimento de aplicativos Spring Cloud Alibaba AI fornecidos oficialmente, que podem ser visualizados visitando  sca.aliyun.com .

  • Aplicativo de conversação por bate-papo
  • Aplicação do diagrama Vincent
  • Aplicativo de voz Vincent
  • Análise de saída do modelo OutputParser (implementando mapeamento de String para POJO automático)
  • Usar modelo de prompt
  • Deixe o modelo de IA acessar dados externos (Prompt Stuff)

Experimente o primeiro desenvolvimento de aplicativos Spring AI

Este projeto demonstra como usar spring-cloud-starter-alibaba-ai para completar um aplicativo de IA de bate-papo online. O serviço de modelo subjacente fornecido por Tongyi Qianwen é usado. O exemplo de código-fonte completo pode ser visualizado aqui [ 3] .

Desenvolva aplicativos de conversação por chat

  1. Adicione a dependência do Spring Cloud Alibaba versão 2023.0.1.0 ao projeto 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. Adicione a seguinte configuração ao arquivo de configuração application.yml:
spring:
  cloud:
    ai:
      tongyi:
        chat:
          options:
            # Replace the following key with a valid API-KEY.
            api-key: sk-a3d73b1709bf4a178c28ed7c8b3b5axx
  1. Escreva uma classe de implementação de serviço de chat e Spring AI injeta automaticamente ChatClient e StreamingChatClient protege os detalhes de interação do modelo geral subjacente.
@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. Fornece implementação específica de lógica de chat
@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. Escreva a classe de entrada Spring e inicie o aplicativo
@SpringBootApplication
public class TongYiApplication {
  public static void main(String[] args) {
    SpringApplication.run(TongYiApplication.class);
  }
}

Neste ponto, o desenvolvimento mais simples do aplicativo de IA de bate-papo foi concluído, que é exatamente igual às etapas comuns de desenvolvimento do aplicativo Spring Boot!

Verifique o efeito do aplicativo

Depois de iniciar o aplicativo, você pode verificar o efeito do aplicativo das duas maneiras a seguir.

método um

Digite na barra de endereço do navegador: http://localhost:8080/ai/example

Retorna a seguinte resposta:

{
    "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étodo 2

Entre no diretório resources/static, use um navegador para abrir o arquivo index.html, insira a pergunta e obtenha a resposta de saída (certifique-se de que a chave de API seja válida):

Inscreva-se para Tongyi API-KEY

Para que o exemplo possa acessar o modelo grande Tongyi normalmente, você precisa ativar  o serviço de modelo DashScope Lingji no Alibaba Cloud , solicitar uma API-KEY válida e atualizá-la no arquivo de configuração do aplicativo. Para etapas de operação específicas, consulte os seguintes documentos:

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

plano futuro

A versão atual do Spring Cloud Alibaba AI completa principalmente a adaptação de vários modelos generativos comuns, incluindo diálogo, gráficos vicentinos, discurso vicentino, etc. Na próxima versão, continuaremos a completar mais adaptações, como VectorStore, Embedding e ETL Pipeline, e simplificaremos mais cenários de desenvolvimento de aplicativos de IA, como RAG.

Continue prestando atenção em https://sca.aliyun.com para obter os desenvolvimentos mais recentes. Você também pode escanear o código QR abaixo através do DingTalk para ingressar no grupo comunitário DingTalk. (Número do grupo: 64485010179 )

Links Relacionados:

[1] Primavera AI 0.8.1

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

[2] Serviço modelo Lingji

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

[3] Exemplo completo de código-fonte

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/exemplo/tongyi/service/impl/helloworld

Decidi desistir do software industrial de código aberto . Grandes eventos - OGG 1.0 foi lançado, a Huawei contribuiu com todo o código-fonte do Ubuntu 24.04 LTS foi oficialmente demitido . ". O Fedora Linux 40 foi lançado oficialmente. Uma conhecida empresa de jogos lançou novos regulamentos: os presentes de casamento dos funcionários não devem exceder 100.000 yuans. A China Unicom lança a primeira versão chinesa Llama3 8B do mundo do modelo de código aberto. Pinduoduo é condenado a compensar 5 milhões de yuans por concorrência desleal Método de entrada na nuvem doméstica - apenas a Huawei não tem problemas de segurança de upload de dados na nuvem.
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/3874284/blog/11063462
Recomendado
Clasificación