十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LLM Universe 文本扩展实战:基于 Prompt Engineering 的客户邮件自动生成与 temperature 温度系数调优

LLM Universe 文本扩展实战:基于 Prompt Engineering 的客户邮件自动生成与 temperature 温度系数调优 LLM Universe 文本扩展实战基于 Prompt Engineering 的客户邮件自动生成与 temperature 温度系数调优【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程在线阅读地址https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe导读本文围绕 llm-universe 课程中Prompt Engineering 的文本扩展Expanding方向展开以根据客户评价自动生成定制化客服回复邮件为实战载体完整讲解输入构造、Prompt 设计与get_completion调用封装并深入剖析temperature 温度系数对生成随机性与多样性的影响。读完本文你将掌握文本扩展类应用的标准开发套路、不同大模型 API 对 temperature 的取值范围差异以及在实际项目中如何选择合适温度以平衡可复现性与创造性。文本扩展是大语言模型的重要应用方向输入一段简短文本模型即可生成内容更丰富的长文。它为创作提供强大支持但也存在被滥用的风险开发者必须审慎使用避免大规模自动生成垃圾内容或有害文本坚持扩展功能辅助人类创作的边界。一、定制客户邮件从情感分析到个性化回复文本扩展的典型落地场景之一是根据客户评价及其情感倾向自动生成针对性的客服回复邮件。整个流程可以拆解为三个步骤准备输入一段客户评论文本 该评论的情感倾向正面/负面构造 Prompt明确模型角色客户服务 AI 助手、任务撰写邮件回复、输入格式用反引号定界与输出要求语气、署名调用 LLM 生成通过统一封装的get_completion函数完成推理并打印结果。1.1 输入准备客户评价与情感标签在上一章推断 Inferring中我们已经学会如何让大语言模型判断一段文本的情感倾向。这里直接复用该结果作为邮件生成的输入# 我们可以在推理那章学习到如何对一个评论判断其情感倾向 sentiment 消极的 # 一个产品的评价 review f 他们在11月份的季节性销售期间以约49美元的价格出售17件套装折扣约为一半。\ 但由于某些原因可能是价格欺诈到了12月第二周同样的套装价格全都涨到了70美元到89美元不等。\ 11件套装的价格也上涨了大约10美元左右。\ 虽然外观看起来还可以但基座上锁定刀片的部分看起来不如几年前的早期版本那么好。\ 不过我打算非常温柔地使用它例如\ 我会先在搅拌机中将像豆子、冰、米饭等硬物研磨然后再制成所需的份量\ 切换到打蛋器制作更细的面粉或者在制作冰沙时先使用交叉切割刀片然后使用平面刀片制作更细/不粘的效果。\ 制作冰沙时特别提示\ 将水果和蔬菜切碎并冷冻如果使用菠菜则轻轻煮软菠菜然后冷冻直到使用\ 如果制作果酱则使用小到中号的食品处理器这样可以避免在制作冰沙时添加太多冰块。\ 大约一年后电机发出奇怪的噪音我打电话给客服但保修已经过期了所以我不得不再买一个。\ 总的来说这些产品的总体质量已经下降因此它们依靠品牌认可和消费者忠诚度来维持销售。\ 货物在两天内到达。 这条评论包含丰富的信息点价格波动11 月促销价 vs 12 月涨价、产品质量刀片锁定部件做工下降、电机一年后异响、保修过期、使用技巧分享以及物流体验两天送达。这些细节正是后续生成有针对性回复的关键素材——Prompt 要求模型使用评价中的具体细节模型就能在邮件中逐一回应这些关切而非输出千篇一律的模板话术。1.2 构造 Prompt角色、任务与格式约束邮件生成 Prompt 遵循标准的角色设定 任务描述 输入定界 输出要求结构from tool import get_completion prompt f 你是一位客户服务的AI助手。 你的任务是给一位重要客户发送邮件回复。 根据客户通过分隔的评价生成回复以感谢客户的评价。提醒模型使用评价中的具体细节 用简明而专业的语气写信。 作为AI客户代理签署电子邮件。 客户评论 {review} 评论情感{sentiment} response get_completion(prompt) print(response)角色设定你是一位客户服务的AI助手约束模型以客服身份而非其他身份作答任务与细节要求生成回复以感谢客户的评价并显式提醒使用评价中的具体细节这是个性化回复的关键输出约束限定简明而专业的语气并要求以AI客户代理署名保证输出格式可控输入定界用三个反引号包裹客户评论并用评论情感{sentiment}显式传入情感标签避免模型自己猜测。1.3 底层调用链get_completion 封装解析示例中的from tool import get_completion是本仓库对 LLM API 调用的统一封装。在notebook/C2 使用 LLM API 开发应用/C2.ipynb中可以看到 GPT 版get_completion的完整实现C2.ipynb 中 get_completion 定义def get_completion(prompt, modelgpt-4o, temperature 0): 获取 GPT 模型调用结果 请求参数 prompt: 对应的提示词 model: 调用的模型默认为 gpt-4o也可以按需选择 gpt-o1 等其他模型 temperature: 模型输出的温度系数控制输出的随机程度取值范围是 0~2。温度系数越低输出内容越一致。 response client.chat.completions.create( modelmodel, messagesgen_gpt_messages(prompt), temperaturetemperature, ) if len(response.choices) 0: return response.choices[0].message.content return generate answer error从源码可以看出该封装的两个关键设计messages 细节被隐藏gen_gpt_messages(prompt)内部将字符串 prompt 包装成[{role: user, content: prompt}]的消息结构调用方只需关注提示词本身无需关心 OpenAI 的对话消息格式temperature 默认值 0默认参数将温度设为 0保证默认场景下输出可预测、可复现——这一点与后文温度系数一节呼应。1.4 生成结果与分析在给定上述评论与情感消极后模型生成的回复邮件如下尊敬的客户 非常感谢您对我们产品的评价。我们非常抱歉您在购买过程中遇到了价格上涨的问题。我们一直致力于为客户提供最优惠的价格但由于市场波动价格可能会有所变化。我们深表歉意如果您需要任何帮助请随时联系我们的客户服务团队。 我们非常感谢您对我们产品的详细评价和使用技巧。我们将会把您的反馈传达给我们的产品团队以便改进我们的产品质量和性能。 再次感谢您对我们的支持和反馈。如果您需要任何帮助或有任何疑问请随时联系我们的客户服务团队。 祝您一切顺利 AI客户代理注意这封邮件的细节还原度它捕捉到了价格上涨问题对应评论中 12 月涨价、提到了详细评价和使用技巧对应评论中的搅拌机使用心得、语气克制专业且以AI客户代理署名——这正是提醒模型使用评价中的具体细节这条指令的效果。这种依据具体客户评价的个性化回复方式能够显著提升客户体验与满意度也是文本扩展以少生多、定向扩展能力的体现。二、温度系数 temperature控制生成的随机性与多样性2.1 原理temperature 如何影响输出大语言模型生成文本时会在每一步根据概率分布采样下一个 token。temperature 参数用于调节这个概率分布的陡峭程度temperature 越小高概率词被选中的倾向越强输出越稳定、越可预测趋向最可能文本temperature 越大低概率词也有机会被选中输出越随机、越多样甚至可能产生意外惊喜。原文档给出一个直观例子在某上下文中模型认为比萨是接下来最可能的词其次是寿司和塔可。若 temperature 为 0则每次都生成比萨当 temperature 越接近 1 时生成寿司或塔可的概率越大文本变得更加多样。应用原则当任务需要可预测、可靠的输出如客服邮件、代码、数据抽取时将 temperature 设为 0当任务需要创造性、多样性的文本如文案创作、头脑风暴时适当提高 temperature 更有帮助。2.2 不同模型的 temperature 取值范围差异这里有一个实践中的重要坑点temperature 的取值范围并非所有模型统一在 llm-universe 中针对不同大模型 API 的封装在get_completion的 docstring 中明确了各自的约束见 notebook/C2 使用 LLM API 开发应用/C2.ipynb 与 docs/C2/C2.md模型默认 temperature取值范围特殊约束OpenAI GPTgpt-4o00 ~ 2无百度文心ERNIE-Bot0.01因模型而异如 ERNIE-4.0-8K 为 0~1.0不能设置为 0讯飞星火v3.50.10 ~ 1.0不能设置为 0智谱 GLMglm-4-plus0.950.0 ~ 1.0无也就是说若将文心或星火的 temperature 直接传 0可能触发参数校验错误而 GPT 模型允许到 2 的上限。跨模型迁移 Prompt 时必须同步核对 temperature 的合法区间这是从本仓库源码中可以直接确认的实现事实。此外在 notebook/C4 构建 RAG 应用/zhipuai_llm.py 的自定义ZhipuaiLLM类中temperature被声明为Optional[float] None的字段并通过ZhipuAI(api_key...).chat.completions.create(..., temperatureself.temperature, ...)透传给智谱 API说明温度参数同样适用于将 LLM 封装进 LangChain 的 RAG 场景LangChain 自定义 LLM 讲解。2.3 实战对比temperature0.7 的两次运行下面针对同一段客户来信同样是前面的搅拌机评论设置较高的 temperature 并连续运行两次观察输出差异。注意这个版本的 Prompt 增加了情感分支逻辑# 第一次运行 prompt f 你是一名客户服务的AI助手。 你的任务是给一位重要的客户发送邮件回复。 根据通过分隔的客户电子邮件生成回复以感谢客户的评价。 如果情感是积极的或中性的感谢他们的评价。 如果情感是消极的道歉并建议他们联系客户服务。 请确保使用评论中的具体细节。 以简明和专业的语气写信。 以AI客户代理的名义签署电子邮件。 客户评价{review} 评论情感{sentiment} response get_completion(prompt, temperature0.7) print(response)第一次运行输出节选要点尊敬的客户 感谢您对我们产品的评价。我们非常重视您的意见并对您在使用过程中遇到的问题表示诚挚的道歉。 我们对价格的变动深感抱歉。根据您的描述我们了解到在12月第二周套装的价格出现了不同程度的上涨。我们会进一步调查此事并确保我们的定价策略更加透明和一致。 您提到了产品部分的质量下降特别是锁定刀片的部分。我们对此感到非常遗憾并将反馈给我们的研发团队以便改进产品的设计和质量控制。…… AI客户代理第二次运行输出节选要点亲爱的客户 非常感谢您对我们产品的评价和反馈。我们非常重视您的意见并感谢您对我们产品的支持。 首先我们对价格的变动感到非常抱歉给您带来了困扰。我们会认真考虑您提到的情况并采取适当的措施来改进我们的价格策略以避免类似情况再次发生。 关于产品质量的问题我们深感抱歉。我们一直致力于提供高质量的产品并且我们会将您提到的问题反馈给我们的研发团队以便改进产品的设计和制造过程。…… AI客户代理对比结论两次运行在道歉 提及价格问题 反馈产品质量 署名 AI客户代理等核心事实上保持了一致因为 Prompt 中的情感分支与细节要求约束了内容框架但措辞、句式、段落组织明显不同——第一次强调调查定价策略第二次强调改进价格策略开头称呼也从尊敬的客户变为亲爱的客户。这正是 temperature0.7 带来的多样性在同一 Prompt 下每次执行都可能生成不同的文本。作为对照温度设为 0 时同样的 Prompt 每次运行结果完全一致。建议读者自行修改 temperature如 0、0.3、0.7、1.0运行多轮观察输出的稳定程度与创意程度如何随温度变化。2.4 项目中的温度实践何时必须用 0在 llm-universe 的实际项目中温度并非总是越高越好RAG 问答与系统评估场景在 docs/C5/C5.md 中可以看到llm ChatOpenAI(model_name gpt-4o, temperature 0)以及get_completion(prompt, modelgpt-4o, temperature 0)的使用——系统评估章节为了确保评估结果可复现、可比对一律将温度设为 0检索问答链构建场景构建基于 LangChain 的知识库问答链时同样倾向低温度避免同一问题得到不同答案导致体验不一致文本扩展/创作场景如本文的邮件回复如果希望每个客户得到风格统一的回复客服场景建议保持低温度0~0.3如果希望文案更有创意营销场景可上调至 0.7~1.0。从源码结构看这一应用场景决定温度的模式正是本仓库在多个 notebook 中反复出现的实践惯例。三、英文版示例跨语言复现为便于对照与国际化场景使用原文档提供了英文版完整示例。核心输入英文评论与 Prompt 结构如下# given the sentiment from the lesson on inferring, # and the original customer message, customize the email sentiment negative # review for a blender review f So, they still had the 17 piece system on seasonal \ sale for around $49 in the month of November, about \ half off, but for some reason (call it price gouging) \ around the second week of December the prices all went \ up to about anywhere from between $70-$89 for the same \ system. And the 11 piece system went up around $10 or \ so in price also from the earlier sale price of $29. \ So it looks okay, but if you look at the base, the part \ where the blade locks into place doesnt look as good \ as in previous editions from a few years ago, but I \ plan to be very gentle with it (example, I crush \ very hard items like beans, ice, rice, etc. in the \ blender first then pulverize them in the serving size \ I want in the blender then switch to the whipping \ blade for a finer flour, and use the cross cutting blade \ first when making smoothies, then use the flat blade \ if I need them finer/less pulpy). Special tip when making \ smoothies, finely cut and freeze the fruits and \ vegetables (if using spinach-lightly stew soften the \ spinach then freeze until ready for use-and if making \ sorbet, use a small to medium sized food processor) \ that you plan to use that way you can avoid adding so \ much ice if at all-when making your smoothie. \ After about a year, the motor was making a funny noise. \ I called customer service but the warranty expired \ already, so I had to buy another one. FYI: The overall \ quality has gone done in these types of products, so \ they are kind of counting on brand recognition and \ consumer loyalty to maintain sales. Got it in about \ two days. 英文版 Prompttemperature0 与 temperature0.7 两个版本仅最后一个调用参数不同prompt f You are a customer service AI assistant. Your task is to send an email reply to a valued customer. Given the customer email delimited by , \ Generate a reply to thank the customer for their review. If the sentiment is positive or neutral, thank them for \ their review. If the sentiment is negative, apologize and suggest that \ they can reach out to customer service. Make sure to use specific details from the review. Write in a concise and professional tone. Sign the email as AI customer agent. Customer review: {review} Review sentiment: {sentiment} response get_completion(prompt, temperature0.7) print(response)温度 0 时输出稳定一致的邮件例如Dear Valued Customer, Thank you for taking the time to share your review with us. We appreciate your feedback and apologize for any inconvenience you may have experienced. We are sorry to hear about the price increase you noticed in December. We strive to provide competitive pricing for our products, and we understand your frustration. If you have any further concerns regarding pricing or any other issues, we encourage you to reach out to our customer service team. They will be more than happy to assist you. …… Best regards, AI customer agent而 temperature0.7 时每次运行都会产生不同措辞的邮件例如开头变为 Thank you for taking the time to share your feedback with us正文措辞也相应变化。跨语言对比中可以确认temperature 控制的是采样随机性而非语言内容情感分支逻辑与细节使用指令在不同语言下同样生效。四、延伸从邮件扩展到更多文本生成场景文本扩展的能力边界远不止客服邮件。基于本仓库的实践脉络同样适用于营销文案输入产品卖点要点扩展为完整的宣传文案摘要扩展将短摘要扩展为详细说明与第四章文本概括形成逆向对照——概括是长文变短文扩展是短文变长文RAG 上下文增强在高级 RAG 技巧中可用 LLM 对检索片段进行扩写弥补上下文信息密度不足的问题。同时需要再次强调扩展功能应只用于辅助人类创作而非大规模自动生成内容。开发者应审慎使用避免对个体客户或公共舆论产生负面影响只有以负责任和有益的方式应用语言模型才能发挥其最大价值。总结本文以 llm-universe 课程第七章为核心完整演示了文本扩展的典型应用——客户邮件自动生成并深入解析了 temperature 温度系数的原理与实战调优定制客户邮件通过客户评价 情感标签 结构化 Prompt三步构造即可让 LLM 生成利用评论细节、语气专业、署名规范的个性化回复温度系数temperature 越低输出越可复现、越高越多样不同模型取值范围不同GPT 0~2、文心/星火不可为 0 且上限 1.0、智谱 0~1.0跨模型迁移需核对约束客服、评估等追求稳定性的场景用 0创作场景可上调至 0.7 左右源码佐证get_completion的完整封装实现见 notebook/C2 使用 LLM API 开发应用/C2.ipynb自定义 LangChain LLM 的温度透传见 notebook/C4 构建 RAG 应用/zhipuai_llm.py评估场景的温度设定见 docs/C5/C5.md。建议读者动手修改 temperature 参数并多次运行示例代码亲身体验可预测与多样性之间的权衡曲线这将为你在不同业务场景中选择合适的生成策略打下坚实基础。【免费下载链接】llm-universe本项目是一个面向小白开发者的大模型应用开发教程在线阅读地址https://datawhalechina.github.io/llm-universe/项目地址: https://gitcode.com/GitHub_Trending/ll/llm-universe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表