Janitor AI 接入 DeepSeek:实现智能化集成的最佳实践
Spring AI 的概述
Spring AI 是一个受 Python 项目 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
调用中添加请求选项,可以覆盖默认配置,例如设置模型和温度:
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<Flux> 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 密钥应妥善保管,避免在公共代码库中暴露,并建议定期更新以防止安全风险。
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- Python调用免费翻译API实现Excel文件批量翻译
- 为开源项目 go-gin-api 增加 WebSocket 模块
- AI编程的风险,如何毁掉你的 API?
- 使用预约调度API的运输管理
- Claude 免费用户频繁被限流?实用应对策略推荐
- 如何获取谷歌新闻 API Key 密钥(分步指南)
- API 目录 – 什么是 API 目录?
- 用NestJS和Prisma: Authentication构建一个REST API
- DeepSeek – Anakin.ai 的 Reason 模型 API 价格是多少?
- 19个API安全最佳实践,助您实现安全
- 如何免费调用Kimi API实现项目集成
- 探索 Zomato API 的潜力