Janitor AI 接入 DeepSeek:实现智能化集成的最佳实践
Spring AI 的概述
Spring AI 是一个受 LangChain 和 LlamaIndex 启发的工具,它致力于解决 AI 集成中的复杂问题。这个工具旨在简化开发流程,将企业数据和 API 更轻松地与 AI 模型连接。通过 Spring AI,开发者可以将它视为一个适配器或高层封装,使得不同 AI 模型的集成变得更为简单高效。
统一 API 接口
Spring AI 提供了统一的 API 接口,这使得调用不同 AI 模型变得异常简单。无论是 OpenAI、Hugging Face 还是 DeepSeek 和 Gemini,开发者都可以通过学习 Spring AI 的 API 进行无缝对接。这样的设计减少了对底层实现和差异的深入了解,从而降低了学习曲线。
自动化配置管理
通过自动化配置管理,Spring AI 让开发人员只需在配置文件中定义必要的参数,例如 API 密钥和模型参数。Spring AI 会自动完成初始化和连接,避免了复杂的手动配置过程。这种自动化能力极大地提高了开发效率和代码的可维护性。
灵活的服务切换
Spring AI 的抽象设计使得更换 AI 提供商时,开发者只需修改少量的配置,而不必对业务代码进行大幅度更改。这样的灵活性对于需要根据不同场景需求快速切换 AI 服务的企业尤为重要。
Spring AI 集成 DeepSeek 的两种方式
本文将介绍如何通过两种方式将 DeepSeek 集成到 Spring AI 中,分别是伪装成 OpenAI 和本地化部署。
伪装成 OpenAI
DeepSeek 提供了 OpenAI 兼容模式,允许用户在请求头中添加 api_key 来伪装成 OpenAI 用户。Spring AI 的 openai starter 本质上是通过 RestTemplate 发起请求,我们只需修改 URL 和认证方式即可。
添加依赖
在项目的 pom.xml 文件中添加以下依赖:
org.springframework.ai
spring-ai-openai-spring-boot-starter
0.8.1
修改配置文件
在 application.yml 中设置 DeepSeek 的 OpenAI 式端点和 API 密钥:
spring:
ai:
openai:
base-url: https://api.deepseek.com/v1
api-key: sk-your-deepseek-key-here
chat.options:
model: deepseek-chat
调用 API
在代码中通过 ChatClient 调用 DeepSeek 的 API:
@RestController
@RequestMapping("/ai")
@Slf4j
public class ChatController {
private final ChatClient chatClient; public ChatController(ChatClient.Builder chatClientBuilder) {
this.chatClient = chatClientBuilder.build();
} @GetMapping("/chat")
public String generate(@RequestParam(value = "message") String message) {
log.info("Generating response");
return chatClient.prompt(message).call().content();
}
}
通过在 [Prompt](https://prompts.explinks.com/) 调用中添加请求选项,可以覆盖默认配置,例如设置模型和温度:
ChatResponse response = chatModel.call(
new Prompt(
"Generate the names of 5 famous pirates.",
OpenAiChatOptions.builder()
.withModel("deepseek-chat")
.withTemperature(0.4)
.build()
));
本地化部署 DeepSeek
如果想在本地或内网服务器上部署 DeepSeek,可以采用 Ollama 平台。
安装 Ollama
从官方网站下载并安装 Ollama:https://ollama.com
拉取 DeepSeek 模型
通过 Ollama 下载 DeepSeek 模型:
ollama pull deepseek-r1:1.5b
ollama list deepseek
更多版本可以在 https://ollama.com/library/deepseek-r1 查看。
添加依赖
在项目的 pom.xml 文件中添加以下依赖:
org.springframework.ai
spring-ai-ollama-spring-boot-starter
0.8.1
修改配置
在 application.yml 中设置本地模型名称对应的配置:
spring:
ai:
ollama:
base-url: http://localhost:11434
chat:
model: deepseek-r1:1.5b
调用本地部署的模型
@RestController
@RequestMapping("/ai")
public class ChatController {
private final ChatClient chatClient;
public ChatController(ChatClient.Builder chatClient) {
this.chatClient = chatClient.build();
} @GetMapping("/chat")
public ResponseEntity chat(@RequestParam(value = "message") String message) {
try {
Flux response = chatClient.prompt(message).stream().content();
return ResponseEntity.ok(response);
} catch (Exception e) {
return ResponseEntity.badRequest().build();
}
}
}
结论
通过 Spring AI 集成 DeepSeek,无论是伪装成 OpenAI 还是通过 Ollama 本地部署,都是非常简单且灵活的选择。Spring AI 的设计使得企业可以在不同的 AI 服务之间轻松切换,从而提升了系统的适应性和扩展性。
FAQ
-
问:Spring AI 如何简化 AI 模型集成?
- 答:Spring AI 提供统一的 API 接口和自动化配置管理,降低了集成复杂性,使得开发者可以快速对接多种 AI 模型。
-
问:DeepSeek 的 OpenAI 兼容模式有什么优势?
- 答:通过 OpenAI 兼容模式,用户可以使用现有的 OpenAI 结构与 DeepSeek 进行集成,无需大幅修改代码。
-
问:如何在本地部署 DeepSeek 模型?
- 答:通过 Ollama 平台,可以轻松地在本地下载和运行 DeepSeek 模型,适合内网或单机部署需求。
-
问:Spring AI 的抽象设计如何帮助企业?
- 答:Spring AI 的抽象设计允许企业轻松切换 AI 提供商,只需修改配置文件,无需修改业务逻辑代码。
-
问:如何确保 API 密钥的安全性?
- 答:API 密钥应妥善保管,避免在公共代码库中暴露,并建议定期更新以防止安全风险。
最新文章
- 如何使用 OpenAI 的 Sora API:综合使用指南
- 如何使用 amazon scraper api 进行商品数据采集
- 推荐一款支持加入数据库的AI项目:让你的数据库秒变AI数据库!
- 什么是 API Key 密钥以及如何使用它们?
- API 身份验证与授权:OAuth2、JWT 与最佳实践
- 支付宝财富黑卡权益是什么?如何充分利用这些权益?
- API Settings详解:如何通过配置优化API性能与安全性
- Jenkins API使用教程
- 如何通过MCP+魔搭免费API搭建本地数据助手
- 微软翻译API密钥获取、API对接实战指南
- 10 个最佳 API 设计实践
- 10 个保障 API 安全的认证最佳实践