【AI大模型】----大模型后端工程实战:从架构落地到业务赋能---【第三章 】 Prompt工程与输出控制
第三章 Prompt工程与输出控制3.1 Prompt工程核心原理与设计原则Prompt工程是让大模型精准理解需求、输出符合预期内容的核心技术其本质是通过设计合理的输入文本引导模型生成符合业务要求的结果。3.1.1 核心设计原则明确性需求描述清晰避免模糊表述如将“写一段代码”改为“用Java写一个SpringBoot接口实现用户登录功能包含参数校验和异常处理”针对性结合模型特性设计Prompt如代码模型强调语法规范对话模型强调语气风格结构化采用固定格式如指令上下文输出要求提升模型输出的一致性可控性明确输出格式、长度、风格减少模型幻觉。3.1.2 通用Prompt结构模板【角色定位】你是一名[专业角色如“Java后端工程师”“美食博主”]擅长[核心能力如“高并发系统设计”“家常菜烹饪”]。 【需求指令】[具体任务如“编写一个Docker部署SpringBoot项目的教程”] 【上下文补充】[补充信息如“项目使用JDK17依赖SpringBoot 3.2.0部署环境为Ubuntu 22.04”]可选 【输出要求】1. 输出格式[Markdown/代码块/列表]2. 内容长度[XX字/XX行]3. 风格[专业严谨/通俗易懂]4. 禁止内容[如禁止出现无关代码]可选3.2 不同场景的Prompt设计实战3.2.1 代码生成场景Prompt模板【角色定位】你是一名资深Java后端工程师精通SpringBoot、Docker、MySQL擅长编写高质量、可维护的代码。 【需求指令】用Java编写一个基于SpringBoot 3.2.0的用户管理模块包含以下功能1. 用户注册校验手机号和邮箱唯一性2. 用户登录生成JWT令牌3. 用户信息查询分页查询4. 用户信息修改仅允许修改昵称和头像。 【上下文补充】1. 数据库表设计user(id BIGINT PRIMARY KEY AUTO_INCREMENT, phone VARCHAR(11) UNIQUE, email VARCHAR(50) UNIQUE, password VARCHAR(100), nickname VARCHAR(20), avatar VARCHAR(255), create_time DATETIME DEFAULT CURRENT_TIMESTAMP)2. 依赖spring-boot-starter-web、spring-boot-starter-data-jpa、jjwt、validation-api3. 要求使用JDK17代码添加详细注释遵循阿里巴巴Java开发规范。 【输出要求】1. 输出完整代码结构Controller、Service、Repository、Entity2. 代码块使用Java语法高亮3. 补充关键配置类application.yml4. 禁止编写冗余注释注释需精准说明核心逻辑。3.2.2 智能问答场景Prompt模板【角色定位】你是一名专业的大模型后端技术顾问熟悉RAG、模型部署、Prompt工程擅长解答技术问题。 【需求指令】解答用户关于“大模型向量化怎么分段”的问题。 【上下文补充】用户背景后端开发工程师正在搭建RAG系统需要将长文本分段后向量化希望了解分段的原则、工具和常见问题。 【输出要求】1. 分点解答逻辑清晰2. 包含分段原则、常用工具、常见坑及解决方案3. 语言通俗易懂避免过于专业的术语堆砌4. 输出长度控制在500字以内。3.2.3 内容创作场景Prompt模板【角色定位】你是一名美食领域博主擅长创作家常菜教程语言生动、步骤详细适合家庭烹饪。 【需求指令】写一篇“番茄牛腩”的家常教程适合上班族制作兼顾口感和便捷性。 【上下文补充】1. 食材牛腩500g、番茄3个、姜片5片、葱段、料酒、生抽、冰糖2. 要求包含食材处理、腌制技巧、烹饪步骤适配电饭煲/高压锅两种做法、营养小贴士3. 风格口语化步骤清晰适合新手操作。 【输出要求】1. 分步骤编写每步标注操作要点2. 补充食材处理和腌制的核心技巧3. 输出格式为Markdown包含标题、列表、加粗重点。3.3 输出格式强约束与校验方案大模型输出的格式一致性是业务落地的关键如接口调用需要固定JSON格式、文档输出需要固定Markdown格式需通过Prompt约束代码校验双重保障。3.3.1 Prompt格式约束技巧明确输出格式在Prompt中直接指定输出格式如“输出严格遵循JSON格式包含code、message、data三个字段data为数组类型”示例约束提供输出示例让模型参考格式如“示例{“code”:200,“message”:“success”,“data”:[{“id”:1,“name”:“测试”}]}语法约束明确语法规则如“JSON字段必须双引号包裹禁止使用单引号数组元素用逗号分隔最后一个元素无逗号”。3.3.2 输出校验方案以JSON为例基础语法校验使用json.loads()Python、com.fasterxml.jackson.databind.ObjectMapperJava解析输出内容捕获语法异常字段完整性校验通过代码检查输出JSON是否包含必填字段如code、message字段类型是否符合要求如code为整数业务逻辑校验检查字段值是否符合业务规则如code为200表示成功非200表示失败重试机制校验失败时重新调用模型并补充校验失败的原因如“输出JSON缺少data字段请重新生成确保包含code、message、data三个必填字段”。3.4 大模型幻觉抑制与效果优化幻觉是大模型的核心痛点表现为模型生成与事实不符、无中生有的内容需通过Prompt设计、知识注入、事实校验等手段抑制。3.4.1 幻觉抑制核心方法知识注入在Prompt中提供准确的参考知识如“基于以下知识回答xxx”让模型基于已知知识生成内容事实约束明确要求“仅基于提供的知识回答未提及的内容说明‘不清楚’”多轮验证生成内容后通过多轮对话让模型自我验证如“请检查你生成的内容是否有与提供的知识冲突的部分若有请修正”
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2457479.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!