SpringAI - 基础对话能力构建
·
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抽象了底层细节,支持链式调用,提升代码可读性和可维护性。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)