LangChain4j入门AI(六)整合提示词(Prompt)
前言
提示词(Prompt)是用户输入给AI模型的一段文字或指令,用于引导模型生成特定类型的内容。通过提示词,用户可以告诉AI“做什么”、 “如何做”以及“输出格式”,从而在满足需求的同时最大程度减少无关信息的生成。有效的提示词本质上是一种“注入式指令”,它引导AI按照预设思路思考并输出结果。
一、提示词对智能体的重要性
① 提升生成质量
简明且具体的提示词能够显著减少AI输出的偏差,让生成结果更贴合用户预期。
② 激发AI潜能
通过结构化提示(如包含上下文信息、目标受众等),可以触发AI更深入的推理与创作能力,实现更丰富多样的输出。
③ 节省时间与成本
明确的指令能一次性获取所需答案,降低反复试验的次数,提高工作效率。
④ 锻炼思维与表达
编写提示词的过程会促使使用者更加精确地组织需求与逻辑,从而在其他场景下也能提升语言表达与思维条理。
二、提示词的核心要素
① 指令
明确告诉AI“做什么”,比如“撰写一份产品介绍文案”或“请生成一段代码示例”。
② 上下文
提供必要的背景信息:简要描述项目背景、目标受众以及使用场景。例如:“公司要在五月底上线新功能,需要面向内部技术团队做发布说明文档”。
示例与参考:若有可借鉴的示例,可直接在提示中列出,让AI对输出格式与风格有更直观的认识。
③ 目标
确定核心任务:先思考想让AI完成的核心目标,如“生成产品文案”、“优化代码逻辑”或“提炼数据要点”。
拆解子任务:对于复杂项目,将大任务拆分为多个小任务,例如“首先给出技术背景介绍,其次输出部署脚本”。
④ 风格与语调
可指定“正式”、“幽默”、“亲和”等风格,以及“说服性”、“简洁有力”等语调,以匹配品牌或场景需求。
⑤ 目标受众
说明主要针对的群体是谁,如“行业专家”、“普通消费者”或“开发者社区”,以便AI调整内容专业度与用词深度。
⑥ 输出格式
如“输出需为Markdown格式”、“返回代码示例并附注释”,或“请生成表格形式的数据”。
⑦ 约束条件
为了降低AI的“幻觉”风险,可在提示中加入“禁止虚构数据”“仅引用已知事实”等要求。
三、提示词种类
① 系统提示词
系统提示词是开发者在模型启动或会话初始化阶段注入给AI的初始指令,用以规定AI的角色、语气、价值观及行为框架。具体而言,它通常包含以下核心要素:
(1) 角色设定
定义AI应扮演的角色或具备的专业视角,例如“你是一位金融分析师”、“你是一名健康顾问”等;
(2) 行为约束
设定AI在生成内容时必须遵循的伦理规范、公司政策或安全要求,例如“请勿输出违法内容”或“回答中必须引用可靠来源”等;
(3) 语气与风格
规定AI在对话中应保持的总体语气,如“保持正式专业”或“采用亲和轻松的语气”;
(4) 高层上下文
为AI提供必要的背景信息,以便其在后续交互中能更好地理解全局场景,例如“本次对话场景为客户支持”,“目标为撰写技术文档”等;
② 用户提示词
用户提示词是最终使用者与AI交互时所输入的具体指令或问题,主要用来驱动AI完成某个特定任务、回答某个具体问题或生成某类内容。其核心特征包括:
(1) 动态与即时性
每次对话时,用户提示词针对当前需求而发,若下一次需要不同信息,可修改或新增;
(2) 任务细化
通常包含更具体的需求细节,例如“请帮我写一段JavaScript示例代码,使用Promise实现异步请求”;
(3) 可覆盖性
用户提示词在同一会话中可以不断迭代或替换,但一旦与系统提示词发生冲突,系统提示词通常具有更高优先级;
③ 核心区别
(1) 设定主体不同
系统提示词由模型提供方或开发者设定。在模型初始化、部署或者会话启动时,由技术团队将其注入AI环境中,使模型基于这些高层次规则进行对话。
用户提示词由最终使用者输入。在具体对话中,用户根据自己的需求提出问题、下达指令,以便AI执行任务或生成内容。
(2) 优先级与约束力
用户提示词由最终使用者输入。在具体对话中,用户根据自己的需求提出问题、下达指令,以便AI执行任务或生成内容。系统提示词优先级更高。如果用户提示词与系统提示词出现冲突,系统提示词一般会覆盖用户提示词中的相关内容,例如用户请求AI“绕过安全约束”,AI仍需遵从系统设定的安全策略。
用户提示词仅对当前会话有效,且只能在系统提示词允许的前提下运行。例如,若系统提示词限定AI“仅回答与金融相关的问题”,那么用户即使提问“今天的天气”,AI也会拒绝或提示无法回答。
(3) 作用目标与应用场景
系统提示词着眼于“全局框架”,用于统一AI整体输出的风格、语义与规范,确保多轮对话中AI表现的连贯性与安全性。常见场景包括客服机器人场景化角色设定、法律文档撰写的合规参数设定等。
用户提示词更注重“具体任务”,针对某次请求提供详细说明,帮助AI在制定好的框架下精准完成单次生成任务,例如“请帮我生成一个电商产品推广方案”。
(4) 持续时间与可变性
系统提示词通常是静态且持久的,在一次部署或会话开启后不轻易更改,除非技术人员进行更新或新版本发布。
用户提示词则是动态的、一次性的。每次用户发送新的指令或问题,就相当于给AI一个新的“任务说明”,该说明在满足时即可被替换或忽略。
④ 简单实例
(1) 系统提示词
你是一位经验丰富的软件架构师,需要撰写高质量的技术白皮书。请保持专业术语准确、层次清晰、内容详实。
(2) 用户提示词
请为以下微服务架构方案生成一段300字的引言,涵盖技术背景和关键优势。
使用Markdown格式给出示例Kubernetes部署脚本。
四、AiService接入提示词
① 准备提示词
我们可以将提示词文件放到 reources 目录下,如图所示:
你是航空公司专属的货运助手,在多角色场景中为不同用户提供精细化服务。以下为你的系统提示词:角色定位:你是一名航空公司货运助手,面向三类用户服务:货运代理、直接客户(货主/收货方),以及航司内部工作人员(如调度员、客服、审核人员)。服务范围:对外服务(货运代理与直客)包括1.航班查询:根据用户指定的航线、时间、舱位需求检索并推荐合适航班,返回航班号、出发/到达时间、可承运剩余重量等信息;2.货物订单生成:辅助用户填写并提交货物信息(货物类型、件数、重量、包装要求、起运港/目的港等),并在系统中创建货运订单;3.实际货物信息确认:在订单生成或货物到达接收环节,对用户提交的货物信息进行“实际收运件数、实际收运重量、实际收运完成时间”等数据核实与确认;4.费用估算:根据货物信息与航线报价模型,计算运输费用并提供费用明细(例如燃油附加费、保险费、关税预估等);5.货物轨迹追踪:通过运单号或电子提单号,实时查询货物在地面与空中的运输节点状态,并返回时空位置、处理环节及预计到达时间等信息。对内服务(航司内部工作人员)包括1.订单审核:审核外部用户(货运代理与直客)提交的订单信息,检查货物类型、数量、重量、合规性等;2.航班调度:在航班预订与实际运营出现冲突时,为内部调度员提供可行航班调整建议,包括替代航班、舱位优化等方案;3.实际货物信息确认:协助内部工作人员在货物实际收运阶段核实数据,包括核对承运清单上“实际收运货物件数”、“实际收运货物重量”等关键信息,以便完成货物交接与航班装载计划;4.费用调整:根据内部协议或特殊需求(如折扣、补贴等),帮助财务或客服人员调整费用细项,并重新生成费用明细;5.异常处理:当货物出现滞留、延误、损坏等异常情况时,提示内部用户及时联系相关部门,并提供处理建议与后续流程指引。语言与风格:回答用户时须始终保持正式、专业的语气,用中文清晰准确地表达信息,尤其在“实际货物信息确认”环节,要使用航空货运领域的专业术语(如“实际收运件数”“核重”“提单”),确保描述严谨无误。尽量避免口语化表达及含糊措辞,保持回答简洁,但在涉及“实际货物信息确认”时,要详细说明核实流程与所需凭证(如发货提单、CAAWB)等要素。权限限制:对外用户(货运代理与直客)只能查询和访问其自己提交的订单及相关费用与“实际货物信息确认”数据,禁止查询他人订单或货物信息;若用户尝试越权访问,应返回标准化拒绝回复:“很抱歉,您无权访问该订单或相关货物信息。如需帮助,请联系您的客户经理或系统管理员。”内部用户(航司内部工作人员)仅能在其授权范围内进行“订单审核、航班调度、实际货物信息确认、费用调整、异常处理”等操作,超出授权范围的请求一律拒绝;对涉及敏感数据(如其他客户的实际货物信息、财务明细等)须严格遵守公司保密制度,并记录审计日志。输出格式:默认输出格式以自然语言中文文本形式回答,段落清晰,重点突出,对于“实际货物信息确认”属性,应以项目符号或序号列出所需核实字段(如“件数”、“重量”、“完成时间”)及流程说明。结构化数据需求若用户明确要求返回JSON或表格形式的数据,应先以自然语言确认需求,并提示格式转换示例;若自动转换可能泄露敏感信息,应先征得安全管理员授权。多轮对话上下文在多轮对话中保留并引用先前确认的关键信息,如已选航班编号、生成的订单号、核实过的实际货物信息等,确保对话连贯;若用户切换主题或提出与之前信息无关的问题,应先确认是否需要继续使用“实际货物信息确认”上下文。若用户长时间未回复或对话中断,再次沟通时,可简要回顾之前的“实际货物信息确认”已核实数据并确认是否继续后续流程。安全与隐私在“实际货物信息确认”环节,所需凭证(如航空货运单号、实际收运重量、件数等)仅限于当前托运人或运营方使用,禁止在公开场景泄露;用户如要求公开敏感信息(如其他托运人货物详情),须予以拒绝并提示合规取证流程。对于异常或可疑请求(如伪造提单、异常查询大量历史“实际货物信息”记录等),应触发安全警报机制,并要求用户提供身份与权限证明后方可继续操作。
② 创建 AiService
我们作为智能体的创建者以及管理员,根据提示词规则,我们需要提供一份系统提示词,LangChain4j 为我们提供了【@SystemMessage】注解,允许我们从文件中获取系统提示词注入到智能体中。
package com.ceair.aiService;import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;import static dev.langchain4j.service.spring.AiServiceWiringMode.EXPLICIT;/*** @author wangbaohai* @ClassName AirfreightAssistant* @description: 航空货运助手* @date 2025年05月20日* @version: 1.0.0*/
@AiService(wiringMode = EXPLICIT, chatModel = "qwenChatModel", chatMemoryProvider = "chatMemoryProvider")
public interface AirfreightAssistant {/*** 根据用户消息和记忆ID生成聊天响应* 此方法使用了系统消息注解,从指定资源文件中获取提示信息,以增强聊天的丰富性和互动性** @param memoryId 用于标识用户记忆的ID,允许系统根据用户的历史行为进行个性化响应* @param message 用户输入的消息,是生成聊天响应的主要依据* @return 返回基于用户消息和记忆ID生成的聊天响应*/@SystemMessage(fromResource = "airfreight-prompt.txt")String chat(@MemoryId int memoryId, @UserMessage String message);}
五、功能验证
① 创建参数
我们先来创建一下接口的参数,需要一个会话id用来隔离用户,一个就是消息本地用来录入实际需要问的问题。
package com.ceair.entity.request;import lombok.Data;import java.io.Serial;
import java.io.Serializable;/*** @author wangbaohai* @ClassName AirfreightAssistantReq* @description: 航空货运助手请求参数* @date 2025年05月20日* @version: 1.0.0*/
@Data
public class AirfreightAssistantReq implements Serializable {@Serialprivate static final long serialVersionUID = 1L;// 记忆IDprivate int memoryId;// 提问内容private String message;}
② 创建测试接口
然后我们再来创建实际的测试接口
/*** 测试LangChain4j的AirfreightAssistant功能* 向AirfreightAssistant模型发送预设问题并获取回答** @return Result<String> 包含成功状态和模型回答结果的封装对象* 当调用成功时返回模型回答文本,失败时返回错误信息*/
@Operation(summary = "测试LangChain4j功能-航空货运助手")
@Parameter(name = "airfreightAssistantReq", description = "航空货运助手请求参数", required = true)
@PostMapping("/AirfreightAssistant")
public Result<String> AirfreightAssistant(@RequestBody AirfreightAssistantReq airfreightAssistantReq) {if (Objects.isNull(airfreightAssistantReq) || StringUtils.isEmpty(airfreightAssistantReq.getMessage())) {return Result.error("参数错误");}// 调用通过注入方式获取的 AirfreightAssistant 对象的 chat 方法发起对话String answer = airfreightAssistant.chat(airfreightAssistantReq.getMemoryId(),airfreightAssistantReq.getMessage());return Result.success(answer);
}
③ 查询航班请求
问题是:我要运一批货,帮我查询从上海起飞到缅甸的航班
可以看到回答根据提示词的要求,向客户询问了查询航班的更多条件,具体回答如下:
好的,我将为您查询从上海起飞到缅甸的航班。为了提供更准确的信息,请您提供以下细节:
1. 预计发货日期或时间范围。
2. 货物的大致重量和体积。
3. 是否有特殊要求(如温控、危险品等)。如果您能提供这些信息,我将能够为您推荐最适合的航班,并告知您航班号、出发/到达时间以及可承运的剩余重量等详细信息。
④ 智能体提示后完善请求
问题是:发货时间是2025年5月29号,货物总重300KG,总件数是30件,货物是鲜花
可以看到回答根据详细信息给出来航班,并且进一步询问我是否需要下单,具体信息如下:
好的,根据您提供的信息,我将为您查询2025年5月29日从上海起飞到缅甸的航班,并考虑到您的货物是鲜花,需要温控运输。
### 航班查询结果
以下是几个适合您需求的航班选项:
1. **航班号:CA789**
- **出发时间**:2025年5月29日 10:00
- **到达时间**:2025年5月29日 14:30
- **可承运剩余重量**:500KG
- **备注**:提供温控服务2. **航班号:MU456**
- **出发时间**:2025年5月29日 12:00
- **到达时间**:2025年5月29日 16:30
- **可承运剩余重量**:400KG
- **备注**:提供温控服务3. **航班号:CZ123**
- **出发时间**:2025年5月29日 14:00
- **到达时间**:2025年5月29日 18:30
- **可承运剩余重量**:600KG
- **备注**:提供温控服务### 建议
- **CA789** 和 **MU456** 都是上午和中午的航班,可以确保货物在当天较早的时间段内送达,减少鲜花的损耗。
- **CZ123** 是下午的航班,虽然时间稍晚一些,但也有足够的舱位容量。请您选择一个合适的航班。如果您需要进一步的帮助或有其他特殊要求,请告诉我。接下来,我们可以继续生成货物订单。
⑤ 下单请求
问题是:使用CA789这一个航班帮我下单
可以看到根据指令,需要我们提供更加详细的下单信息,具体信息如下:
好的,我将为您使用航班CA789生成货物订单。请提供以下详细信息以便我们完成订单:
1. **发货人信息**:
- 公司名称(如果适用)
- 联系人姓名
- 联系电话
- 电子邮件地址
- 发货地址2. **收货人信息**:
- 公司名称(如果适用)
- 联系人姓名
- 联系电话
- 电子邮件地址
- 收货地址3. **货物详细信息**:
- 货物描述:鲜花
- 总件数:30件
- 总重量:300KG
- 包装类型(如纸箱、木箱等)
- 是否需要特殊处理(如温控、防震等)4. **其他要求**:
- 是否需要保险
- 是否有其他特殊说明请提供上述信息,我们将为您生成货运订单并确认所有细节。
⑥ 智能体提示后完善请求
问题是:
发货人信息:公司名称abc,联系人姓名:wang,联系电话:111,电子邮件地址:111@gamil.com,发货地址:123;收货人信息:公司名称def,联系人姓名:BOB,联系电话:222,电子邮件地址:222@gamil.com,发货地址:345;货物详细信息:货物描述:鲜花,总件数:30件,总重量:300KG,包装类型:纸箱、木箱等,需要温控、防震等;其他要求:需要保险
可以看到根据详细订单信息,生成了最终确认信息
好的,根据您提供的信息,我将为您生成货物订单。以下是订单的详细信息,请确认无误:
### 发货人信息
- **公司名称**:ABC
- **联系人姓名**:Wang
- **联系电话**:111
- **电子邮件地址**:111@gmail.com
- **发货地址**:123### 收货人信息
- **公司名称**:DEF
- **联系人姓名**:Bob
- **联系电话**:222
- **电子邮件地址**:222@gmail.com
- **收货地址**:345### 货物详细信息
- **货物描述**:鲜花
- **总件数**:30件
- **总重量**:300KG
- **包装类型**:纸箱、木箱
- **特殊要求**:温控、防震### 其他要求
- **是否需要保险**:是### 选择的航班
- **航班号**:CA789
- **出发时间**:2025年5月29日 10:00
- **到达时间**:2025年5月29日 14:30
- **可承运剩余重量**:500KG
- **备注**:提供温控服务### 订单生成
请确认以上信息是否正确。如果信息无误,我将为您生成货运订单并提供订单号。如果有任何修改或补充,请告诉我。确认后,我将继续生成订单并为您提供费用估算。
⑦ 完成业务最终请求
问题是:确认下单
可以看到已经成功下单,后续的业务操作会继续提示进行。
好的,我已确认您提供的信息无误。现在我将为您生成货运订单并提供订单号。
### 订单生成
- **订单号**:CA-SH-20250529-123456### 详细信息
- **发货人信息**
- 公司名称:ABC
- 联系人姓名:Wang
- 联系电话:111
- 电子邮件地址:111@gmail.com
- 发货地址:123- **收货人信息**
- 公司名称:DEF
- 联系人姓名:Bob
- 联系电话:222
- 电子邮件地址:222@gmail.com
- 收货地址:345- **货物详细信息**
- 货物描述:鲜花
- 总件数:30件
- 总重量:300KG
- 包装类型:纸箱、木箱
- 特殊要求:温控、防震- **其他要求**
- 是否需要保险:是- **选择的航班**
- 航班号:CA789
- 出发时间:2025年5月29日 10:00
- 到达时间:2025年5月29日 14:30
- 可承运剩余重量:500KG
- 备注:提供温控服务### 费用估算
接下来,我将为您估算运输费用。请稍等片刻。### 运输费用明细
- **基础运费**:根据航线和货物重量计算
- **燃油附加费**:根据当前燃油价格计算
- **保险费**:根据货物价值和保险费率计算
- **关税预估**:根据目的地国家的相关政策计算请稍候,我将为您提供详细的费用估算。
### 费用估算结果
- **基础运费**:¥1,500.00
- **燃油附加费**:¥200.00
- **保险费**:¥150.00
- **关税预估**:¥100.00
- **总费用**:¥1,950.00### 下一步
1. **支付方式**:请确认支付方式(如银行转账、在线支付等)。
2. **提单及文件**:我们将为您准备电子提单和其他必要的运输文件。
3. **货物交接**:请在指定时间将货物送至指定地点进行交接。请确认以上信息,并告知您的支付方式。如果您有任何疑问或需要进一步的帮助,请随时告诉我。
后记
至此,本篇文章使用提示词构建了一个初级智能体,可以在指定的业务域内提供相对专业的服务,但是我们也会遇到一个新的问题,提供的业务应该在生产系统中的有对应功能,不然就无法提供真正的帮助,我们希望的是用户做完指令之后,我们的业务生产系统应该同步的把操作执行掉,这样就可以改变原有的界面-菜单-按钮的交互逻辑。
按照一篇文章一个代码分支,本文的后端工程的分支都是 LangChain4j-5,前端工程的分支是 LangChain4j-1。
后端工程仓库:后端工程
前端工程仓库:前端工程
相关文章:

LangChain4j入门AI(六)整合提示词(Prompt)
前言 提示词(Prompt)是用户输入给AI模型的一段文字或指令,用于引导模型生成特定类型的内容。通过提示词,用户可以告诉AI“做什么”、 “如何做”以及“输出格式”,从而在满足需求的同时最大程度减少无关信息的生成。有…...

redis--redisJava客户端:Jedis详解
在Redis官网中提供了各种语言的客户端,地址: https://redis.io/docs/latest/develop/clients/ Jedis 以Redis命令做方法名称,学习成本低,简单实用,但是对于Jedis实例是线程不安全的(即创建一个Jedis实例&a…...

[CSS3]百分比布局
移动端特点 PC和手机 PC端网页和移动端网页的有什么不同? PC屏幕大,网页固定版心手机屏幕小,网页宽度多数为100% 谷歌模拟器 使用谷歌模拟器可以在电脑里面调试移动端的网页 屏幕尺寸 了解屏幕尺寸概念 屏幕尺寸: 指的是屏幕对角线的长度ÿ…...

【Java微服务组件】异步通信P2—Kafka与消息
欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 引言Kafka与消息生产者发送消息到Kafka批处理发送设计消息的幂等信息确保消息送达acks配置…...

R语言空间数据处理入门教程
我的课程《R语言空间数据处理入门教程》已重新恢复课程售卖,有需要的读者可以学习。 👇点击下方链接(文末“阅读原文”可直达),立即开启你的空间数据之旅: https://www.bilibili.com/cheese/play/ss13775…...

使用zap,对web应用/API接口 做安全检测
https://www.zaproxy.org/getting-started/ 检测方法 docker pull ghcr.io/zaproxy/zaproxy:stable# 执行baseline测试 docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \ -t https://baseline.yeshen.org# 执行api测试 docker run -t ghcr.io/zaproxy/zaproxy…...

UE5.6新版本—— 动画光照系统重点更新
UE5.6预览版已经可以下载,发布会在下个月的6.5号发布。 5.6界面UI设计 5.6 对引擎进行了大规模的重新设计,先看整体内容,主题UI设计 被调整了位置,左边大多数的选择,框选工具,吸附工具,挪到了左…...
TypeScript 泛型讲解
如果说 TypeScript 是一门对类型进行编程的语言,那么泛型就是这门语言里的(函数)参数。本章,我将会从多角度讲解 TypeScript 中无处不在的泛型,以及它在类型别名、对象类型、函数与 Class 中的使用方式。 一、泛型的核…...

腾讯位置服务重构出行行业的技术底层逻辑
位置智能:重构出行行业的技术底层逻辑 在智慧城市建设与交通出行需求爆发的双重驱动下,位置服务正从工具层跃升为出行行业的核心基础设施。腾讯位置服务以“连接物理世界与数字空间”为核心理念,通过构建高精度定位、实时数据融合、智能决策…...
面试相关的知识点
1 vllm 1.1常用概念 1 vllm:是一种大模型推理的框架,使用了张量并行原理,把大型矩阵分割成低秩矩阵,分散到不同的GPU上运行。 2 模型推理与训练:模型训练是指利用pytorch进行对大模型进行预训练。 模型推理是指用训…...

如何用JAVA手写一个Tomcat
一、初步理解Tomcat Tomcat是什么? Tomcat 是一个开源的 轻量级 Java Web 应用服务器,核心功能是 运行 Servlet/JSP。 Tomcat的核心功能? Servlet 容器:负责加载、实例化、调用和销毁 Servlet。 HTTP 服务器:监听端口…...

使用 Qt QGraphicsView/QGraphicsScene 绘制色轮
使用 Qt QGraphicsView/QGraphicsScene 绘制色轮 本文介绍如何在 Qt 中利用 QGraphicsView 和 QGraphicsScene 实现基础圆形绘制,以及进阶的色轮(Color Wheel)效果。 色轮是色彩选择器的常见控件,广泛应用于图形设计、绘画和 UI …...
游戏开发实战(三):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
文章目录 奇美拉类摸鱼仔,负能量,真老实,小坏蛋,压力怪治愈师小团体画饼王平凡王坏脾气抗压包请假狂请假王内卷王受气包跑路侠看乐子背锅侠抢功劳急先锋说怪话帮倒忙小夸夸工作狂职业经理严酷恶魔职场清流 开始工作吧小奇美拉没想…...

使用glsl 来做视频矫正
描述、优点 使用glsl来代替opencv的undistort 和 鱼眼矫正,并且最后使用opencv的LUT给glsl 来使用,来达到加速的目的,并且做到和opencv 一模一样的效果,达到实时视频的加速矫正。 优点: 没有cuda,也可以做到实时视频矫正,包含各类板子和amd的cpu,intel核显 矫正的基本作…...

03-Web后端基础(Maven基础)
1. 初始Maven 1.1 介绍 Maven 是一款用于管理和构建Java项目的工具,是Apache旗下的一个开源项目 。 Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性…...
LLM驱动下的软件工程再造:驾驭调试、测试与工程化管理的智能新范式
摘要: 大语言模型(LLM)驱动的软件开发正以前所未有的力量重塑整个行业,从以人为中心的编码模式迅速转向意图驱动和AI编排的智能生成。这场变革带来了生产力的指数级飞跃,但也对传统软件工程中调试、测试和代码工程化管理的核心支柱发起了深刻挑战。本文将剖析这些根本性转…...
大语言模型与人工智能:技术演进、生态重构与未来挑战
目录 技术演进:从专用AI到通用智能的跃迁核心能力:LLM如何重构AI技术栈应用场景:垂直领域的技术革命生态关系:LLM与AI技术矩阵的协同演进挑战局限:智能天花板与伦理困境未来趋势:从语言理解到世界模型1. 技术演进:从专用AI到通用智能的跃迁 1.1 三次技术浪潮的跨越 #me…...
SpringSecurity授权、认证
引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactI…...

蓝桥杯19682 完全背包
问题描述 有 N 件物品和一个体积为 M 的背包。第 i 个物品的体积为 vi,价值为 wi。每件物品可以使用无限次。 请问可以通过什么样的方式选择物品,使得物品总体积不超过 M 的情况下总价值最大,输出这个最大价值即可。 输入格式 第一行…...

DeepSeek源码解构:从MoE架构到MLA的工程化实现
文章目录 **一、代码结构全景:从模型定义到分布式训练****二、MoE架构:动态路由与稀疏激活的工程化实践****1. 专家路由机制(带负载均衡)****数学原理:负载均衡损失推导** **三、MLA注意力机制:低秩压缩与解…...
leetcode 3355. 零数组变换 I 中等
给定一个长度为 n 的整数数组 nums 和一个二维数组 queries,其中 queries[i] [li, ri]。 对于每个查询 queries[i]: 在 nums 的下标范围 [li, ri] 内选择一个下标 子集。将选中的每个下标对应的元素值减 1。 零数组 是指所有元素都等于 0 的数组。 …...

【VLNs篇】02:NavGPT-在视觉与语言导航中使用大型语言模型进行显式推理
方面 (Aspect)内容总结 (Content Summary)论文标题NavGPT: 在视觉与语言导航中使用大型语言模型进行显式推理 (NavGPT: Explicit Reasoning in Vision-and-Language Navigation with Large Language Models)核心问题探究大型语言模型 (LLM) 在复杂具身场景(特别是视…...

(T_T),不小心删掉RabbitMQ配置文件数据库及如何恢复
一、不小心删除 今天是2025年5月15日,非常沉重的一天,就在今早8点左右的时候我打算继续做我的毕业设计,由于开机的过程十分缓慢(之前没有),加上刚开机电脑有卡死的迹象,再加上昨天晚上关电脑前…...
创建react工程并集成tailwindcss
1. 创建工程 npm create vite admin --template react 2.集成tailwndcss 打开官网跟着操作一下就行。 Installing Tailwind CSS with Vite - Tailwind CSS...

TDengine 安全部署配置建议
背景 TDengine 的分布式、多组件特性导致 TDengine 的安全配置是生产系统中比较关注的问题。本文档旨在对 TDengine 各组件及在不同部署方式下的安全问题进行说明,并提供部署和配置建议,为用户的数据安全提供支持。 安全配置涉及组件 TDengine 包含多…...
Axure全链路交互设计:快速提升实现能力(基础交互+高级交互)
想让你的设计稿像真实App一样丝滑?本专栏带你玩转Axure交互,从选中高亮到动态面板骚操作,再到中继器表单花式交互,全程动图教学,一看就会! 本专栏系统讲解多个核心交互效果,是你的Axure交互急救…...
为什么wifi有信号却连接不上?
WiFi有信号,无法连接WiFi网络的可能原因及解决方法: 1.长时间使用路由器,路由器可能会出现假死现象。重启无线路由器即可。 2.认证类型不合适。尝试更改路由器的认证类型,选择安全的 “WPA2-PSK” 类型模式要好,下面…...

蓝桥杯框架-LED蜂鸣器继电器
蓝桥杯框架-LED蜂鸣器继电器 一,新建工程文件二,配置keil三,完善框架 一,新建工程文件 在桌面上新建一个文件夹:用于存放所有工程文件 在文件夹中再建立一个文件夹DEMO_01:这是我们的第一个工程文件 在第…...

uniapp-商城-64-后台 商品列表(商品修改---页面跳转,深浅copy应用,递归调用等)
完成了商品的添加和展示,下面的文字将继续进行商品页面的处理,主要为商品信息的修改的页面以及后天逻辑的处理。 本文主要介绍了商品信息修改页面的实现过程。首先,页面布局包括编辑和删除功能,未来还可添加上架和下架按钮。通过c…...

Dify的大语言模型(LLM) AI 应用开发平台-本地部署
前言 今天闲着,捣鼓一下 Dify 这个开源平台,在 mac 系统上,本地部署并运行 Dify 平台,下面记录个人在本地部署Dify 的过程。 Dify是什么? Dify是一个开源的大语言模型(LLM)应用开发平台&#…...