1. 环境搭建

1.1 配置依赖管理

为确保版本一致性并简化依赖管理,建议在 pom.xml 中通过 <dependencyManagement> 引入Spring AI 及阿里云 AI 的 BOM(Bill of Materials)文件。

<dependencyManagement>
   <dependencies>
       <!--Spring AI BOM -->
       <dependency>
           <groupId>org.springframework.ai</groupId>
           <artifactId>spring-ai-bom</artifactId>
          <version>1.0.3</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>
       <!--阿里云 SpringAI BOM -->
       <dependency>
           <groupId>com.alibaba.cloud.ai</groupId>
           <artifactId>spring-ai-alibaba-bom</artifactId>
           <version>1.0.0.3</version>
           <type>pom</type>
           <scope>import</scope>
       </dependency>
   </dependencies>
</dependencyManagement>

说明:使用 BOM可统一管理相关模块的版本,避免手动指定各组件版本导致的兼容性问题。


2. 模型加载与调用

2.1使用阿里通义千问(DashScope)

添加依赖:引入阿里云 DashScope 启动器以支持通义千问模型接入:

        <dependency>
            <groupId>com.alibaba.cloud.ai</groupId>
            <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
        </dependency>

配置 API Key:在application.yml 中配置 DashScope 的 API密钥:

spring:
 ai:
   dashscope:
     api-key: sk-xxxxxx  #替换为实际的API Key

编写测试代码

@Slf4j
@SpringBootTest
publicclass AliyunTest{
​
  @Autowired
  private DashScopeChatModel dashScopeChatModel;
​
   /**
    * 测试与通义千问的简单对话
    */
   @Test
   public void testQwen() {
       Stringresponse = dashScopeChatModel.call("你好,你是谁");
       log.info("模型响应: {}",response);
   }
}

运行结果示例:


2.2使用 OpenAI模型

添加依赖:集成OpenAI 支持所需的启动器:

        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-openai</artifactId>
        </dependency>

配置参数在 application.yml 中配置 OpenAI 客户端信息:

spring:
  ai:
   openai:
    api-key: ${OPENAI_API_KEY} # 推荐通过环境变量注入
     model: gpt-4o               # 使用GPT-4o 模型
     temperature: 0.7            # 控制生成随机性

测试代码

@Slf4j
@SpringBootTest
publicclass OpenAiTest {
​
  @Autowired
   private OpenAiChatModel openAiChatModel;
​
   /**
    *测试与 OpenAI模型的对话能力
    */
   @Test
   publicvoid testOpenAi() {
       String response =openAiChatModel.call("你好,你是谁");
       log.info("模型响应: {}", response);
   }
}

2.3 使用本地 Ollama模型

添加依赖:启用对本地 Ollama 服务的支持:

        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-ollama</artifactId>
        </dependency>

配置 Ollama 服务:确保 Ollama 服务正在运行(默认地址:http://localhost:11434),并在配置文件中指定模型:

spring:
 ai:
  ollama:
     base-url: http://localhost:11434         # Ollama 服务地址
     chat:
       model:qwen3:8b                         # 对话模型
    embedding:
       model:nomic-embed-text:v1.5            #嵌入模型```

测试代码

@Slf4j
@SpringBootTestpublic class OllamaTest {

   @Autowired
   private OllamaChatModel ollamaChatModel;

   /**
    *测试与本地 Ollama模型的交互    */
   @Test   public void testOllama() {
      String response = ollamaChatModel.call("你好,你是谁");
       log.info("模型响应: {}",response);
   }
}

运行结果示例:

说明:若未预先拉取 qwen3:8b 模型,是否需补充 ollama pull qwen3:8b命令


3.使用 ChatClient进行高级调用

ChatClient提供了更简洁、流畅的 API来构建用户消息并发起请求,适用于多轮对话和复杂提示工程场景。

示例代码

@Slf4j
@SpringBootTest
public class ChatClientTest {

   @Autowired
   private DashScopeChatModel dashScopeChatModel;

  /**
    * 使用ChatClient 构建并发送用户消息
    */
   @Test   public void testChatClient() {
       ChatClient client = ChatClient.builder(dashScopeChatModel).build();

       Stringresponse = client.prompt()
               .user("你好")
               .call()
               .content();

       log.info("模型响应: {}", response);
  }
}

执行效果截图:

优势说明ChatClient抽象了底层细节,支持链式调用,提升代码可读性和可维护性。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐