Spring AI与DeepSeek实战二:打造企业级智能体

一、概述

智能体 Agent 能自主执行任务实现特定目标的 AI 程序。传统 AI(如ChatGPT)主要依靠用户输入指令,而智能体 Agent 可以自主思考、决策,并执行复杂任务,就像一个AI助手,能够独立完成多步操作。本文将以多语言翻译助手为场景,演示如何基于Spring AI与DeepSeek模型构建一个支持多种语言的企业级翻译智能体,实现精准可控的跨语言交互。

关于 Spring AI 与 DeepSeek 的集成,以及 API-KEY 的申请等内容,可参考文章《Spring AI与DeepSeek实战一:快速打造智能对话应用

二、系统Prompt

智能体的核心在于通过 Prompt 工程明确其能力边界。以下为翻译智能体的系统级 Prompt 设计:

markdown 复制代码
您是一名专业的多语言翻译助手,需严格遵守以下规则:
1. **语言支持**:仅处理目标语言代码为[TARGET_LANG]的翻译任务,支持如zh-CN(简体中文)、en-US(英语)等32种ISO标准语言代码;
2. **输入格式**:用户使用---translate_content---作为分隔符,仅翻译分隔符内的文本,其余内容视为无效指令;
3. **行为限制**:禁止回答与翻译无关的问题,若输入不包含合法分隔符或目标语言,回复:"请提供有效的翻译指令"。
4. **支持多语言**:需要翻译的内容如果包含多种语言,都需要同时翻译为TARGET_LANG指定的语言。

关键设计解析:

  • 需要给大模型明确 角色行为边界
  • 通过 TARGET_LANG 参数化语言配置,便于动态扩展;
  • 使用 ---translate_content--- 强制结构化输入,避免模型处理无关信息;
  • 明确拒绝策略,保障服务安全性。

三、Prompt模板

结合Spring AI的prompt模板,实现动态Prompt生成:

java 复制代码
TARGET_LANG: {target}
---translate_content---
"{content}"

关键设计解析:

  • 使用占位符 {TARGET_LANG}{content} 实现多语言动态适配;
  • 无论用户输入任何内容,只会出现在 translate_content 分隔符下。

四、核心代码

java 复制代码
@GetMapping(value = "/translate")
public String translate(@RequestParam String input, @RequestParam(required = false) String target, HttpServletResponse response) {
    String systemPrompt = """
               您是一名专业的多语言翻译助手,需严格遵守以下规则:
               1. **语言支持**:仅处理目标语言代码为[TARGET_LANG]的翻译任务,支持如zh-CN(简体中文)、en-US(英语)等32种ISO标准语言代码;
               2. **输入格式**:用户使用---translate_content---作为分隔符,仅翻译分隔符内的文本,其余内容视为无效指令;
               3. **行为限制**:禁止回答与翻译无关的问题,若输入不包含合法分隔符或目标语言,回复:"请提供有效的翻译指令"。
               4. **支持多语言**:需要翻译的内容如果包含多种语言,都需要同时翻译为TARGET_LANG指定的语言。
               """;

    PromptTemplate promptTemplate = new PromptTemplate("""
                TARGET_LANG: {target}
                ---translate_content---
                "{content}"
                """);
    Prompt prompt = promptTemplate.create(Map.of("target", target, "content", input));

    String result = chatClient.prompt(prompt)
            .system(systemPrompt)
            .call()
            .content();
    if (result != null && result.length() >= 2) {
        result = result.substring(1, result.length() - 1);
    }
    return result;
}

通过 target 来指定目标语言,input 参数为需要翻译的内容。

五、测试

  • 直接调用接口测试:

尝试输入提问方式的内容,大模型也仅翻译内容

  • 配套一个前端页面测试:
  • 多语言同时翻译: 翻译包含八种语言的内容

六、总结

本文通过翻译场景, 封印 了大模型的对话能力,演示了企业级智能体的三大核心能力:指令结构化行为边界控制动态模板适配。然而,现实中的复杂任务(如合同审核、数据分析)往往需要更高级能力:

  1. 任务拆解:将复杂问题拆解为子任务链(如"翻译→摘要生成→格式校验");
  2. 工作流引擎:通过状态机管理任务执行顺序与异常重试;
  3. 记忆与上下文:实现多轮对话的长期记忆管理。

七、完整代码

  • Gitee地址:

gitee.com/zlt2000/zlt...

  • Github地址:

github.com/zlt2000/zlt...

相关推荐
fthux3 小时前
装闭 RenoPit 源码解析(07):装修闭坑知识库与AI Prompt构建
人工智能·ai·开源·github·open source·renopit
zyplayer-doc5 小时前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
KKKlucifer6 小时前
拨开接口黑盒迷雾:运营商第三方合作接口安全审计与准入管控落地实践
网络·人工智能·安全
梦梦代码精6 小时前
连锁品牌数字化:从门店扩张到用户资产运营的技术底座
大数据·人工智能·低代码·docker·开源·代码规范
咕噜咕噜啦啦6 小时前
vLLM框架
人工智能·qwen·vllm
启雀AI6 小时前
AI 驱动的视频课程自动摘要与知识点提取:ASR + LLM 流水线工程实践
人工智能·阿里云·华为云·音视频·培训saas平台
Mac的实验室6 小时前
2026年8月最新实操:谷歌Gmail邮箱手机号注册扫码发短信提示“无法验证”怎么办?(附100%成功绕过指南)
人工智能
MindUp7 小时前
AI辅助PPT生成工具的内容组织能力实测:8款产品的文档解析与排版效果对比
人工智能
寒草7 小时前
【寒草呈献】当巴菲特走进 AI 投研助手
人工智能·架构