使用Spring AI 调用本地deepseek模型
Spring Web(构建RESTful接口)推荐使用Java 17+版本以获得最佳兼容性。配置JVM参数(推荐-Xmx512m)在宝塔「Java项目」模块添加新项目。Ollama(本地模型集成支持)上传生成的.jar文件。设置运行端口为9000。安全组放行9000端口。
·
本文使用deepseek进行文章润色
初始化Spring Boot项目
使用IDEA创建项目,需选择以下依赖项:
-
Spring Web(构建RESTful接口)
-
Ollama(本地模型集成支持)
推荐使用Java 17+版本以获得最佳兼容性

模型服务配置
在application.properties中添加以下配置:
# 服务端口设置
server.port=9000
# Ollama本地服务配置
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=deepseek-r1:1.5b
新建控制器
@RestController
@RequestMapping("/api/ai")
public class AiController {
private final OllamaChatModel chatClient;
// 构造器注入替代字段注入
public AiController(OllamaChatModel chatClient) {
this.chatClient = chatClient;
}
/**
* 同步响应接口
* @param message 用户输入内容
* @return 完整模型响应
*/
@CrossOrigin(origins = "*")
@GetMapping("/sync/{message}")
public String syncChat(@PathVariable String message) {
return chatClient.call(message);
}
/**
* 流式响应接口
* @param message 用户输入内容
* @return SSE流式数据
*/
@CrossOrigin(origins = "*")
@GetMapping(value = "/stream/{message}",
produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> streamChat(@PathVariable String message) {
return chatClient.stream(new Prompt(message));
}
}
前端示例(Vue3)
const processAIResponse = async () => {
const userInput = prompt('请输入您的问题');
if (!userInput?.trim()) return;
try {
const response = await fetch(`http://localhost:9000/api/ai/stream/${
encodeURIComponent(userInput)
}`);
const reader = response.body.getReader();
const decoder = new TextDecoder();
let accumulatedResponse = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value, { stream: true });
accumulatedResponse += chunk;
// 实时更新UI
updateChatWindow(accumulatedResponse);
}
} catch (error) {
console.error('请求失败:', error);
showErrorMessage('AI服务暂不可用');
}
}
生产环境部署(宝塔面板)
-
项目打包:
mvn clean package -DskipTests -
服务器部署:
-
在宝塔「Java项目」模块添加新项目
-
上传生成的.jar文件
-
设置运行端口为9000
-
配置JVM参数(推荐-Xmx512m)
-

-
网络配置:
-
安全组放行9000端口
-
Nginx反向代理配置:
location /api/ai { proxy_pass http://localhost:9000; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_buffering off; // 添加此命令以支持流式输出 } -
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)