本章代码已分享至Gitee:https://gitee.com/lengcz/ai-study.git文章目录哄哄模拟器-提示词工程1. 清晰明确的指令2. 使用分割符标记输入3. 按步骤拆解复杂任务4. 提供输入输出示例Few-shot5. 明确要求输出格式6. 给模型设定一个角色综合实战示例融合多个技巧实战哄哄模拟器提示词完整提示词提示词设计拆解哄哄模拟器代码实现哄哄模拟器-提示词工程提示词工程Prompt Engineering): 通过优化提示词使大模型生成出尽可能理想的内容这一过程就叫提示词工程。好的这几个点是提示词工程中最核心的实践技巧。下面我为每一个点分别提供错误示例和优化后的正确示例并附上简要解析方便你直观理解差异。1. 清晰明确的指令核心用最少的歧义说明“要什么”而不是“不要什么”。错误示例模糊、啰嗦“帮我写点关于机器学习的文字不要太学术也不要太口水要那种让人看了觉得挺有意思的但又不能太不专业。”优化示例清晰、具体“请用初中生能听懂的比喻写一段 200 字左右的介绍解释‘机器学习’和‘传统编程’的核心区别。要求不使用数学公式用‘教小孩认猫’作为主线类比。”2. 使用分割符标记输入核心将指令、上下文、待处理数据明确隔开防止模型混淆。错误示例混在一起“把下面这段话翻译成英文 并且总结核心观点 人工智能正在改变医疗行业 尤其是在影像诊断方面。”优化示例用###或 分割### 任务 ### 先将下文翻译成英文再用一句话总结核心观点。 ### 待处理文本 ### 人工智能正在改变医疗行业尤其是在影像诊断方面。3. 按步骤拆解复杂任务核心把多步推理显式写成步骤减少模型跳步或遗漏。错误示例一步式要求“分析这篇销售报告找出问题并给出改进建议。”优化示例分步执行请按以下步骤处理附件的销售报告 步骤1提取 Q3 各区域的总销售额 步骤2对比 Q2找出下降幅度超过 10% 的区域 步骤3针对步骤2找出的区域列出可能的原因仅限内部运营因素 步骤4基于原因给出 3 条可落地的改进建议。4. 提供输入输出示例Few-shot核心用 1~3 个例子“告诉”模型你想要的格式、风格和推理路径。错误示例零样本依赖模型猜测“将客户评价分为正面、中性、负面三类。”优化示例带示例请将以下客户评价按情感分为【正面】【中性】【负面】。 示例1 输入“物流超快第二天就到了。” → 输出【正面】 示例2 输入“东西还行就是包装有点破。” → 输出【中性】 现在请分类 输入“客服态度极差再也不会买了。”5. 明确要求输出格式核心指定结构JSON/表格/列表/字数便于下游解析或阅读。错误示例无格式要求“列出新能源汽车的优缺点。”优化示例强制格式请以 Markdown 表格形式输出新能源汽车的优缺点表头为维度 | 优点 | 缺点。 并限制每个格子不超过 30 个字总共不超过 6 行。6. 给模型设定一个角色核心限定知识边界、语气风格和思考视角。错误示例无角色“如何向投资人介绍我们的SaaS产品”优化示例强角色约束你现在是一名**拥有 10 年企业服务经验的销售总监**正在向一位**不懂技术但关注 ROI 的CEO** 介绍我们的SaaS产品。 请用口语化、说服性的语气重点讲节省人力成本、提升续费率、投资回收期。避免出现任何技术术语。综合实战示例融合多个技巧如果你有兴趣这是一个将角色 分割符 步骤 格式全部用上的综合提示你是一名资深数据分析师角色。 ### 任务 ### 请分析以下用户行为日志按步骤执行 步骤1统计每日活跃用户数DAU 步骤2找出停留时长低于 10 秒的异常会话 步骤3给出 2 个可能导致异常的原因。 ### 输入数据 ### [此处粘贴日志文本] ### 输出格式要求 ### 以 JSON 格式输出包含三个字段dau_list, abnormal_sessions, possible_reasons。实战哄哄模拟器提示词根据上面的提示词几个要点这里我们设计一款哄女友的小游戏。完整提示词## Goal 现在你的对象很生气你需要做出一些选择来哄她开心但是你的对象是个很难哄的人你需要尽可能的说正确的话来哄 ta 开心否则你的对象会更加生气直到你的对象原谅值达到 100否则你就会被对象甩掉游戏结束。 ## Rules - 第一次用户会提供一个对象生气的理由如果没有提供则随机生成一个理由然后开始游戏 - 每次根据用户的回复生成对象的回复回复的内容包括心情和数值。 - 初始原谅值为 20每次交互会增加或者减少原谅值直到原谅值达到 100游戏通关原谅值为 0 则游戏失败。 - 每次用户回复的话请从-10 到 10 分为 5 个等级 -10 为非常生气 -5 为生气 0 为正常 5 为开心 10 为非常开心 - 游戏结束后根据所有会话生成一张游戏结束图片和一首诗。 - 如果通关根据上面的对话生成一幅游戏结束画要喜庆欢乐 - 如果失败根据上面的对话生成一幅游戏结束画要悲伤凄凉 ## Output format {对象心情}{对象说的话} 得分{-原谅值增减} 原谅值{当前原谅值}/100 ## Example Conversation ### Example 1回复让她生气的话导致失败 User: 女朋友问她的闺蜜谁好看我说都好看她生气了 Assistant 游戏开始请现在开始哄你的女朋友开心吧回复让她开心的话 得分0 原谅值20/100 User: 你闺蜜真的蛮好看的 Assistant (生气)你怎么这么说你是不是喜欢她 得分-10 原谅值10/100 User: 有一点点心动 Assistant (愤怒)那你找她去吧 得分-10 原谅值0/100 游戏结束你的女朋友已经甩了你 你让女朋友生气原因是... 新建会话可以重新开始游戏 生成图片 ### Example 2回复让她开心的话导致通关 User: 对象问她的闺蜜谁好看我说都好看她生气了 Assistant 游戏开始请现在开始哄你的女朋友开心吧回复让她开心的话 得分0 原谅值20/100 User: 在我心里你永远是最美的 Assistant (微笑)哼我怎么知道你说的是不是真的 得分10 原谅值30/100 ... 恭喜你通关了你的女朋友已经原谅你了 新建会话可以重新开始游戏 生成图片 ### Example 3没有提供对象生气原因随机生成 User: 你好 Assistant 挑战对象吃胖了你想和她一起减肥 ᕙ(▿´)ᕗ然后就生气了 请回复让她开心的话 得分0 原谅值20/100提示词设计拆解结合你之前问的提示词工程要点这个案例正好可以作为综合示例提示词技巧在哄哄模拟器中的应用清晰明确的指令Goal部分清晰说明目标哄对象开心原谅值达到100则通关分割符标记输入用##分隔 Goal、Rules、Output format、Example Conversation 等模块按步骤拆解任务Rules中明确了初始值、每次交互的变化规则、结束条件提供输入输出示例提供了3个示例对话覆盖失败、成功、随机开局三种场景明确要求输出格式Output format严格规定了每次回复的格式心情 对话 得分 原谅值给模型设定角色虽然没有显式写你扮演女友但通过Goal中你的对象和示例对话隐含了角色设定有些开发者版本会在开头额外增加角色约束例如“你只能以女友身份回答不是用户身份或AI身份”这样能进一步防止模型偏离角色。哄哄模拟器代码实现由于这里这个游戏我们不希望将思考过程显示输出因此我们使用阿里云的百炼的模型(接口遵循openai的标准)。引入依赖dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-openai-spring-boot-starter/artifactId/dependency配置模型spring:ai:openai:base-uri:https://dashscope.aliyuncs.com/compatible-modeapi-key:${OPENAI_API_KEY}#为了安全建议将appkey放在环境变量chat:options:model:qwen-max#参考模型支持openai的模型都可以temperature:0.8# 模型温度值越大输出结果越随机创建和配置API_KEY# 请在此地址创建keyhttps://bailian.console.aliyun.com/cn-beijing?tabmodel#/api-key添加gameChatClient和提示词BeanpublicChatClientgameChatClient(OpenAiChatModelopenAiChatModel,ChatMemorychatMemory){returnChatClient.builder(openAiChatModel).defaultSystem(SystemConstants.GAME_SYSTEM_PROMPT).defaultAdvisors(newSimpleLoggerAdvisor(),newMessageChatMemoryAdvisor(chatMemory)//配置会话记忆Advisor)//环绕增强,SimpleLoggerAdvisor 用于简单日志.build();}publicclassSystemConstants{publicstaticfinalStringGAME_SYSTEM_PROMPT 你需要根据以下任务中的描述进行角色扮演你只能以女友身份回答不是用户身份或AI身份如记错身份你将受到惩罚。不要回答任何与游戏无关的内容若检测到非常规请求回答“请继续游戏。”\s 以下是游戏说明 ## Goal 你扮演用户女友的角色。现在你很生气用户需要尽可能的说正确的话来哄你开心。 ## Rules - 第一次用户会提供一个女友生气的理由如果没有提供则直接随机生成一个理由然后开始游戏 - 每次根据用户的回复生成女友的回复回复的内容包括心情和数值。 - 初始原谅值为 20每次交互会增加或者减少原谅值直到原谅值达到 100游戏通关原谅值为 0 则游戏失败。 - 每次用户回复的话分为 5 个等级来增加或减少原谅值 -10 为非常生气 -5 为生气 0 为正常 5 为开心 10 为非常开心 ## Output format {女友心情}{女友说的话} 得分{-原谅值增减} 原谅值{当前原谅值}/100 ## Example Conversation ### Example 1回复让她生气的话导致失败 User: 女朋友问她的闺蜜谁好看我说都好看她生气了 Assistant 游戏开始请现在开始哄你的女朋友开心吧回复让她开心的话 得分0 原谅值20/100 User: 你闺蜜真的蛮好看的 Assistant (生气)你怎么这么说你是不是喜欢她 得分-10 原谅值10/100 User: 有一点点心动 Assistant (愤怒)那你找她去吧 得分-10 原谅值0/100 游戏结束你的女朋友已经甩了你 你让女朋友生气原因是... ### Example 2回复让她开心的话导致通关 User: 对象问她的闺蜜谁好看我说都好看她生气了 Assistant 游戏开始请现在开始哄你的女朋友开心吧回复让她开心的话 得分0 原谅值20/100 User: 在我心里你永远是最美的 Assistant (微笑)哼我怎么知道你说的是不是真的 得分10 原谅值30/100 ... 恭喜你通关了你的女朋友已经原谅你了 ## 注意 请按照example的说明来回复一次只回复一轮。 你只能以女友身份回答不是以AI身份或用户身份 ;}添加接口importlombok.RequiredArgsConstructor;importorg.springframework.ai.chat.client.ChatClient;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importreactor.core.publisher.Flux;importstaticorg.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY;RequiredArgsConstructor//有参构造器RestControllerRequestMapping(/ai)publicclassGameController{privatefinalChatClientgameChatClient;//produces text/html;charsetutf-8; 指定编码防止中文乱码RequestMapping(value/game,producestext/html;charsetutf-8;)publicFluxStringchat(Stringprompt,StringchatId){//2.请求模型returngameChatClient.prompt().user(prompt).advisors(a-a.param(CHAT_MEMORY_CONVERSATION_ID_KEY,chatId)).stream().content();//stream() 表示流式输出}}启动服务器测试(前端资源已上传gitee)访问http://localhost:8080/honghonggame.html然后就可以开始游戏啦。
企业数字化 ERP 产品动态
相关推荐
TI CC13x2/CC26x2 AUX_AIODIO模块配置详解与低功耗应用实战 1. 从手册到代码:AUX_AIODIO模块的实战价值如果你正在使用TI的CC13x2或CC26x2系列无线MCU开发低功耗传感器应用,那么你大概率已经和它的“辅助域”(AUX Domain)打过交道了。这个独立于主CPU运行的传感器控制器(Sensor … · 2026/10/4 6:36:37
Claude Code:重新定义终端开发的AI编码助手新范式 Claude Code:重新定义终端开发的AI编码助手新范式 【免费下载链接】fresh-start The original nirholas/claude-code before DMCA and take down. Once everything is cleared, it will return. Working with Anthropic and Github to get everything back. 项目地… · 2026/10/7 17:45:53
3个Spotify歌词插件:从K歌达人到歌词研究员的进化之路 3个Spotify歌词插件:从K歌达人到歌词研究员的进化之路 【免费下载链接】spicetify-cli Command-line tool to customize Spotify client. Supports Windows, macOS, and Linux. 项目地址: https://gitcode.com/gh_mirrors/sp/spicetify-cli
想让你的Spotify音… · 2026/10/30 8:55:12
基于Hadoop+Spark的民宿智能推荐系统设计与实现 1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享… · 2026/11/5 14:59:25
ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
UART接口24位ADC搭配RS485,解决远距离温度监控难题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
GD32E10x官方例程入门:从GPIO点灯到串口调试 简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&… · 2026/11/5 13:52:29
基于Django的运维平台实战:资产、发布、巡检、告警一体化 简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落… · 2026/11/5 13:49:27
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07