六、阿里的千问接入

1、创建一个api-key

image-20251121145614854

image-20251121145805087

image-20251121145916813

2、通义千文大模型接入

1、加依赖

<!--阿里千问-->
<dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
            <version>1.0.0.2</version>
        </dependency>

2、加配置

server:
  port: 9090
spring:
  ai:
    dashscope:
      api-key: sk-4767fcc8e0c54f319f0b30e4cb3473cd
      chat:
        options:
          model: qwen3-max

3、代码

  • 加一个配置类
package com.dw.confg;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.PromptChatMemoryAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RagConfig {
    @Bean
    ChatClient chatClient(ChatClient.Builder builder) {
        return builder.build();  //建造者模式
    }
}
  • 注入ChatClient
@Autowired
ChatClient chatClient;
  • 完整注入ChatClient使用demo
package com.dw.controller;

import com.alibaba.cloud.ai.dashscope.embedding.DashScopeEmbeddingModel;
import com.alibaba.cloud.ai.dashscope.image.DashScopeImageModel;
import com.alibaba.cloud.ai.dashscope.image.DashScopeImageOptions;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.vectorstore.QuestionAnswerAdvisor;
import org.springframework.ai.document.Document;
import org.springframework.ai.image.ImagePrompt;
import org.springframework.ai.image.ImageResponse;
import org.springframework.ai.vectorstore.SimpleVectorStore;
import org.springframework.beans.factory.annotation.Autowired;
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.Arrays;
import java.util.List;

@Slf4j
@RestController
@RequestMapping("/api")
public class AliAIController {

    @Autowired
    ChatClient chatClient;

    @GetMapping("/hello")
    public String hello(@RequestParam("chat") String chat) {
        String  content = chatClient.prompt().user(chat)
                .call().content();
        return content;
    }