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

news/2025/3/10 9:15:57/文章来源:https://www.cnblogs.com/zlt2000/p/18761832

一、概述

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

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

 

二、系统Prompt

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

您是一名专业的多语言翻译助手,需严格遵守以下规则:
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生成:

TARGET_LANG: {target}
---translate_content---
"{content}"

关键设计解析:

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

 

四、核心代码

@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地址:

https://gitee.com/zlt2000/zlt-spring-ai-app

  • Github地址:

https://github.com/zlt2000/zlt-spring-ai-app

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/896671.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub-Node

利用信息收集拿到路径得到账户密码,下载备份文件,base64解密后,利用fcrackzip爆破zip压缩包,得到一个文件,查看app.js,发现泄露的账户密码,连接ssh,成功连接,利用ubuntu历史版本漏洞提权 一、靶机搭建 选择扫描虚拟机选择路径即可开启靶机二、信息收集 靶机信息 name:…

[AIGC/Agent] MCP:模型上下文协议

引言火爆 AI 编程圈的 MCP 到底是个什么东西?最近,如果你经常使用 AI 编程的话,肯定听到过 MCP 这个概念 那到底什么是 MCP 呢?MCP 定义先从专业角度讲,MCP 就是Anthropic(Claude) 主导发布的一个开放的、通用的、有共识的协议标准。 Model Context Protocol(MCP)MCP 功能…

飞驰云联荣获“2024年度十大信创安全品牌”第三名!

日前,由安东工作室携手北京信息灾备技术产业联盟信创工委会联合举办的“第二届年度十大信创品牌评选活动”榜单出炉,Ftrans飞驰云联凭借自主创新的技术实力、显著的行业信创成果等多项优势,荣获“2024年度十大信创安全品牌”第三名!在信创领域,Ftrans飞驰云联的核心技术自…

【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理

在 AI 编程领域国内外有一堆能叫的上号的应用:CursorWindsurfTrae阿里的「通义灵码」百度的「文心快码」字节跳动的「MarsCode」科大讯飞的「iFlyCode」GitHub 的「Copilot」等等等...这么多的 AI 编程应用,它们到底有什么区别? 这些编程应用的实现原理到底是什么样的? 如果…

2.24架构质量分析

某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑。新系统除了保持现有的四级固定会员…

【分享】文件摆渡系统,如何保障数据安全,促进业务协同发展?

在数字化浪潮的席卷下,企业的信息化建设不断推进,网络安全也日益受到重视。为了保护核心数据资产,许多企业采用了网络隔离技术,将内部网络划分为不同的区域,如内网与外网、办公网与研发网等。这种隔离措施在一定程度上有效抵御了外部网络攻击和数据泄露风险,然而,也给企…

20250310

今天有几个趋势需要确定: 1. 焦煤 https://www.cnblogs.com/lyonlee/p/18753748 2.沪锌 指标已经略微下穿 3 棉花

解密prompt系列50. RL用于优化Agent行为路径的一些思路

而Deep Research的效果类似O1的长思考是非常长的行为链,OpenAI也直接表明Deep Research是使用和O1相同的RL训练得到的。但这里比O1更难的就是数据集的设计,训练过程动态行为数据的引入和RL目标的选择。这一章我们分别介绍从两个不同角度使用RL优化Agent行为链路的方案,其中P…

读DAMA数据管理知识体系指南15数据库过程

读DAMA数据管理知识体系指南15数据库过程1. 列式数据库 1.1. 列式数据库(Column-oriented Database)能压缩冗余数据,通常用于商务智能(BI)的应用 1.2. 权衡1.2.1. 需要对很多行进行聚合计算时,面向列的存储组织方式会更加高效1.2.1.1. 这只适用于处理少数列的情况,因为读取少…

VS2022开发跨平台程序(ubuntu x64/aarch64)

1、目标平台安装编译环境sudo apt install openssh-server g++ gcc gdb gdbserver -y目标平台安装ninjiasudo apt install ninja-build目标平台安装较新版本的cmake ,否则VS提示目标平台版本太旧,不支持远程编译。 2、VS创建CMake项目,会有个默认打印Hello CMake的程序。 指…

软件工程作业2

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023这个作业要求在哪里 https://www.cnblogs.com/huanghi4833/p/18760121这个作业的目标 掌握 GitHub 、Git 的基本使用方法, 积累个人编程项目的经验一、PSP表格PSP2.1 Personal Softw…

How Far Can We Go with Practical Function-Level Program Repair? 论文笔记

介绍 (1) 背景现有的很多基于 LLM 的 APR 方法针对的是 single-line 或者代 hunk-level 的程序修复,但它们通常依靠语句级别的故障定位技术。然而,人们普遍认为,准确识别陈述级的断层基本上可能是代价高昂的,即要求细粒度的输入或强有力的假设,从而有可能限制它们的适用性…