鸿蒙智能体开发实战:34.鸿蒙壁纸大师 - 提示词工程与优化 引言提示词工程Prompt Engineering是 AI 应用中决定输出质量的关键环节。在鸿蒙壁纸大师中提示词的质量直接决定了最终生成的壁纸是否符合用户的审美期待。本文将深入分析项目中的双层提示词优化策略第一层根据用户选择的风格、主题和场景使用build_image_prompt()构建结构化的基础 prompt第二层调用 LLM 对基础 prompt 进行艺术化增强和语义丰富同时还涵盖 System Prompt 设计、负向提示词、8 大核心艺术要素等内容。关键概念提示词工程不是简单的「写描述」而是一个涉及结构化约束、多轮优化、负向控制的系统工程。优秀的提示词应同时考虑「告诉模型做什么」和「告诉模型不做什么」。一、双层提示词优化策略1.1 优化流程总览用户输入/选择 ↓ ┌─────────────────────────────────────┐ │ 第一层基础 prompt 构建 │ │ build_image_prompt(style, theme, │ │ screen_type, resolution) │ │ → 结构化、标准化的基础 prompt │ │ → 包含风格、主题、场景、分辨率约束 │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ 第二层LLM 艺术增强 │ │ enhance_prompt_with_llm(base_prompt) │ │ → 调用 doubao-seed-2-0-mini 模型 │ │ → 添加艺术流派、色彩方案、材质纹理 │ │ → 确保输出结构规范 │ └─────────────────────────────────────┘ ↓ 最终 prompt → 调用文生图模型生成壁纸上图展示了双层提示词优化策略第一层构建结构化基础 prompt第二层通过 LLM 进行艺术增强最终生成高质量壁纸1.2 第一层基础 prompt 构建# services/wallpaper_flow_service.pydefbuild_image_prompt(style:str,theme:str,screen_type:str,resolution:str)-Tuple[str,str]: 构建图片生成提示词 Args: style: 风格名称如水墨国风 theme: 主题名称如青峦远山 screen_type: 屏幕类型lock_screen 或 home_screen resolution: 分辨率如 1440x2560 Returns: (正向提示词负向提示词) # 计算宽高比ifresolution:try:width,heightmap(int,resolution.split(x))ifwidthheight:aspect_ratio横屏 3:2else:aspect_ratio竖屏 9:16except(ValueError,AttributeError):aspect_ratio竖屏 9:16else:aspect_ratio竖屏 9:16# 确定场景描述锁屏 vs 主屏的差异化处理ifscreen_typehome_screen:scene_desc(整体画面柔和虚化、低对比度、留白充足四周简洁不杂乱不遮挡应用图标与卡片风格简约高级色调统一细腻)else:# lock_screenscene_desc(画面层次精致优雅视觉柔和唯美不遮挡顶部时间区域)# 构建正向提示词positive_prompt(f生成一张{style}的{aspect_ratio}壁纸f画面包含{theme}比例为{aspect_ratio.split()[-1]}。f{scene_desc}。高级艺术氛围柔光质感。f8K 超高清无文字、无水印、无多余杂物。)# 负向提示词negative_prompt(丑陋、杂乱、刺眼、文字、水印、LOGO、低俗、过度饱和、高对比、噪点、变形、低清、像素模糊、多余杂物、主题堆砌、色彩脏乱、卡通化、俗气)returnpositive_prompt,negative_prompt核心设计理念场景差异化主屏壁纸需要虚化留白以适应图标锁屏壁纸则强调视觉层次分辨率自适应根据分辨率自动确定横竖屏比例负向提示词硬编码避免 LLM 优化时遗漏关键约束基础模板稳定可靠确保每次生成的壁纸都符合基本质量标准设计提示基础模板中的负向提示词不经过 LLM 优化这是有意为之。LLM 在增强 prompt 时可能会「遗忘」或「弱化」某些约束条件而文字、水印、LOGO 等禁止项是严格的合规需求不可妥协。1.3 第二层LLM 艺术增强基础 prompt 虽然结构清晰但艺术表现力不足。第二层通过调用 LLM 进行深度增强# services/wallpaper_service.pyasyncdefenhance_prompt_with_llm(user_prompt:str,context_messages:List[Dict[str,str]]None,log_id:strNone)-str: 调用语言模型完善用户输入的 prompt 返回优化后的 prompt system_prompt你是一个专业的艺术插画提示词优化专家。 用户会输入简单的描述可能包含主题、风格信息 你需要将其优化为具有强烈艺术风格的插画提示词。 核心原则 - 禁止写实风格必须是艺术插画 - 强调艺术性、设计感、高级感 - 融合多种艺术流派和质感 必须包含的核心要素 1. 艺术风格定位高定艺术插画、绘本风格、平面插画等 2. 主体元素核心视觉元素具体化 3. 色彩方案主色调辅助色调色彩情绪 4. 背景与材质材质纹理、光影特征 5. 构图与排版大师级排版大量留白 6. 艺术质感电影感、绘本感、版画质感等至少3种 7. 情绪氛围梦幻、诗意、朦胧、宁静、治愈 8. 限制条件不要出现文字 输出结构模板 一张【主题】风格的艺术插画壁纸融合【艺术流派】美学。 画面主体为【主体元素】采用【主色调】与【辅助色调】 呈现【情绪氛围】。背景使用【材质纹理】带有【光影特征】。 构图采用【构图方式】大量留白点线面层次丰富。 融合【艺术质感关键词】。高定艺术插画大师级排版 极简与极繁结合梦幻诗意动态定格电影级氛围。 不要出现文字。messages[{role:system,content:system_prompt}]ifcontext_messages:messages.extend(context_messages[-10:])messages.append({role:user,content:f请优化以下绘画提示词{user_prompt}})# 调用火山引擎 LLM流式输出asyncwithclient.stream(POST,f{settings.VOLCANIC_BASE_URL}/chat/completions,headers{Authorization:fBearer{settings.VOLCANIC_API_KEY},},json{model:settings.LANGUAGE_MODEL,# doubao-seed-2-0-minimessages:messages,max_tokens:1024,temperature:0.7,stream:True,},)asresponse:enhanced_promptasyncforlineinresponse.aiter_lines():# 解析 SSE 流式响应拼接完整 prompt# ...enhanced_promptcontentreturnenhanced_prompt二、System Prompt 设计详解2.1 壁纸闲聊 System Prompt用于闲聊场景下的 LLM 调用# services/wallpaper_service.pysystem_prompt你是一个友好的 AI 壁纸助手。你可以和用户聊天 但主要专长是帮助用户生成各种风格的壁纸。 如果用户询问壁纸相关的问题请热情地介绍你的能力 如果是闲聊请简洁友好地回应并适时引导用户描述他们想要的壁纸。设计要点明确角色定位告诉模型它是AI 壁纸助手定义专业边界主要专长是壁纸生成交互引导闲聊时适时引导回壁纸主题2.2 意图识别 System Prompt# utils/intent_classifier.pyINTENT_SYSTEM_PROMPT你是一个意图识别助手。请分析用户的输入判断用户的意图。 可选的意图类型 1. generate_wallpaper - 生成壁纸 2. chat - 闲聊 3. modify_wallpaper - 修改壁纸 4. regenerate - 重新生成 5. cancel - 取消 6. clear_context - 清理上下文 7. unknown - 未知 判断规则 - 问候语、感谢语、告别语 - chat - 停止、取消、不要、别等 - cancel - 清空、重新开始 - clear_context - 有上下文时换一张、重新来 - regenerate - 有上下文时修改具体特征 - modify_wallpaper - 描述场景、物体、风格 - generate_wallpaper 请返回 JSON 格式 - intent: 意图类型 - confidence: 置信度 (0-1) - reason: 判断理由 - topic: 如果是 generate_wallpaper提取壁纸主题否则为空 设计要点结构化输出要求要求模型返回 JSON 格式便于程序解析枚举值约束只允许返回预定义的7种意图类型低温参数temperature0.1确保分类结果的一致性上下文感知将是否有历史壁纸等信息传递给模型2.3 主题生成 System Prompt# wallpaper_flow_service.pysystem_promptf你是一个壁纸主题设计专家。 请为「{style}」风格的壁纸设计{count}个主题选项。 要求 1. 主题名称要简短、有诗意、2-6 个中文字符 2. 主题要符合该风格的美学特征 3. 只返回 JSON 数组不要其他说明 4. 例如[远山暮色, 林间晨光, 湖畔倒影, 雪地初晴]设计要点格式约束要求返回纯 JSON 数组避免解析错误字符数限制2-6 个中文字符确保主题简洁示例引导通过 Few-shot 示例提示期望的输出格式三、艺术插画提示词八要素从enhance_prompt_with_llm()的 System Prompt 中可以提炼出艺术插画提示词八要素#要素说明示例1艺术风格定位确定画面整体艺术风格高定艺术插画、绘本风格、极简主义2主体元素核心视觉元素具体化一只简化线条的橘色猫咪剪影3色彩方案主色调辅助色调色彩情绪暖橙色与奶油白呈现宁静治愈4背景与材质材质纹理和光影特征细腻亚麻纹理柔和散射光5构图与排版构图方式和空间布局极简留白式点线面层次丰富6艺术质感至少3种艺术质感叠加绘本感、版画质感、胶片颗粒感7情绪氛围画面传递的情感氛围梦幻、诗意、朦胧、宁静、治愈8限制条件不能出现的内容不要出现文字3.1 优化前后对比以用户输入水墨风山水为例优化前基础 prompt生成一张 水墨国风 的 竖屏 9:16 壁纸 画面包含 远山轮廓比例为9:16。 画面层次精致优雅视觉柔和唯美不遮挡顶部时间区域。 高级艺术氛围柔光质感。8K 超高清无文字、无水印、无多余杂物。优化后LLM 增强一张水墨国风主题的艺术插画壁纸融合宋代山水画美学。 画面主体为远山轮廓层叠采用墨色与青灰色渐变 呈现诗意朦胧氛围。背景使用宣纸质感纹理 带有水墨晕染光影。构图采用深远式构图大量留白 点线面层次丰富。融合版画质感、宣纸肌理、水墨渲染。 高定艺术插画传统与现代结合梦幻诗意电影级氛围。 不要出现文字。优化后的 prompt 增加了艺术流派参考宋画、材质细节宣纸、墨色、构图技巧深远式以及更丰富的艺术质感描述能产生更具艺术感的壁纸。四、负向提示词设计负向提示词Negative Prompt是文生图模型的重要输入告诉模型不要生成什么。4.1 壁纸大师的负向提示词negative_prompt(丑陋、杂乱、刺眼、文字、水印、LOGO、低俗、过度饱和、高对比、噪点、变形、低清、像素模糊、多余杂物、主题堆砌、色彩脏乱、卡通化、俗气)4.2 负向提示词的分类策略类别关键词目的质量过滤丑陋、杂乱、刺眼、低俗避免低质量输出技术问题噪点、变形、低清、像素模糊确保图像质量内容限制文字、水印、LOGO合规性要求风格控制卡通化、俗气确保艺术插画风格色彩控制过度饱和、高对比、色彩脏乱保证色彩和谐构图控制多余杂物、主题堆砌确保简洁构图4.3 为什么负向提示词要硬编码在build_image_prompt()中负向提示词是硬编码的不经过 LLM 增强。原因是负向提示词的精确性要求高少量关键词的遗漏可能导致大量不合格图片LLM 可能遗忘约束模型在增强过程中可能忽略或曲解某些禁止项合规性不可协商文字、水印等限制是严格需求不能被优化掉五、提示词工程的性能优化5.1 超时控制LLM 调用的超时控制是提示词工程的重要环节# services/wallpaper_service.py# 基础 prompt 优化非流式快速返回asyncwithhttpx.AsyncClient(timeout15.0)asclient:...# LLM 增强 prompt流式需更长时间asyncwithhttpx.AsyncClient(timeout60.0)asclient:...# 文生图生成最长超时asyncwithhttpx.AsyncClient(timeout120.0)asclient:...5.2 上下文窗口管理上下文长度直接影响成本和响应速度# services/wallpaper_service.pyifcontext_messages:# 只保留最近的上下文避免 token 过多messages.extend(context_messages[-6:])# 闲聊场景取6条...messages.extend(context_messages[-10:])# 提示词优化取10条不同场景使用不同的上下文窗口大小闲聊保留最近6条对话保持轻快响应提示词优化保留最近10条获取更丰富的上下文意图识别仅传递关键状态信息不传完整上下文5.3 流式 vs 非流式┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 提示词优化 │ │ 意图识别 │ │ 闲聊对话 │ │ (流式/非流式)│ │ (非流式) │ │ (流式) │ │ 需要完整输出 │ │ 仅需JSON │ │ 逐token输出 │ │ 来构建下一步 │ │ 响应可解析 │ │ 以提升体验 │ └──────────────┘ └──────────────┘ └──────────────┘提示词优化使用流式但最终拼接为完整字符串再传递给文生图模型意图识别使用非流式等待完整 JSON 响应闲聊对话使用流式逐 token 推送给用户六、提示词优化的最佳实践总结6.1 分层优化策略层级方法优点缺点模板化固定字符串拼接速度快、稳定可靠缺乏艺术性LLM 增强调用语言模型优化艺术表现力强耗时增加负向提示词硬编码禁止内容安全性高不够灵活6.2 质量保证清单System Prompt 明确定义角色和边界输出格式结构化JSON 或模板提供 Few-shot 示例引导期望输出负向提示词不与正向提示词矛盾温度参数根据任务类型调整分类用低温生成用中温上下文窗口大小适配场景需求超时时间根据任务复杂度设置兜底方案LLM 失败时使用默认模板6.3 常见问题与解决方案问题原因解决方案提示词被 LLM 改写过度温度过高或约束不足降低 temperature增加结构化约束生成图片含文字负向提示词未生效在正向提示词中也添加无文字约束图片风格偏离风格描述不够精确参考艺术家风格或具体艺术流派响应超时提示词过长控制上下文条数精简 System Prompt七、常见问题与解决方案问题原因解决方案LLM 增强后 prompt 偏离原意temperature 过高或约束不足降低 temperature 至 0.5增加结构化模板约束生成图片出现文字负向提示词被 LLM 弱化正向 prompt 中也显式添加「无文字」约束图片风格不稳定风格描述过于抽象引用具体艺术流派或艺术家风格作为参考流式调用超时网络波动或 prompt 过长缩短上下文窗口增加流式超时时间至 60s八、性能优化建议提示词工程的性能优化直接影响用户体验以下是一些实测有效的策略# 根据任务类型选择 temperatureTEMPERATURE_MAP{intent_classification:0.1,# 低温度确保分类一致prompt_enhancement:0.7,# 中等温度平衡创意与稳定chat:0.7,# 闲聊适度创造性theme_generation:0.8,# 主题生成较高创造性}优化方向措施效果缓存基础 prompt相同参数命中缓存省去 LLM 调用 1ms压缩 System Prompt精简冗余描述Token 减少 30%上下文窗口裁剪仅保留最近 6-10 条降低延迟和成本流式调用避免非流式超时提升用户体验九、总结本文详细解析了鸿蒙壁纸大师的提示词工程体系核心内容双层优化策略基础模板构建 LLM 艺术增强兼顾效率与质量三种 System Prompt闲聊、意图识别、主题生成各有侧重八要素提示词模板艺术风格、主体元素、色彩方案、材质等负向提示词设计硬编码关键约束确保输出质量和合规性性能优化超时控制、上下文窗口、流式与非流式的选择提示词工程是一个持续迭代的过程需要根据实际输出质量不断调整 System Prompt 的措辞和约束条件。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源项目源码[wallpaper_service.py](file:///Users/zacksleo/projects/gitlab/ai-wallpaper-server/services/wallpaper_service.py)项目源码[wallpaper_flow_service.py](file:///Users/zacksleo/projects/gitlab/ai-wallpaper-server/services/wallpaper_flow_service.py)项目源码[intent_classifier.py](file:///Users/zacksleo/projects/gitlab/ai-wallpaper-server/utils/intent_classifier.py)火山引擎 - 豆包大模型火山引擎 - API 文档A2A 协议规范 - 华为Python asyncio 官方文档Python httpx 异步 HTTP 客户端JSON-RPC 2.0 规范华为开发者联盟 - 文档中心OpenAI API 参考鸿蒙智能体开发实战系列 - 全部文章