【Java-LangChain:面向开发者的提示工程-7】文本扩展
第七章 文本扩展
扩展是将短文本(例如一组说明或主题列表)输入到大型语言模型中,让模型生成更长的文本(例如基于某个主题的电子邮件或论文)。这种应用是一把双刃剑,好处例如将大型语言模型用作头脑风暴的伙伴;但也存在问题,例如某人可能会使用它来生成大量垃圾邮件。
因此,当你使用大型语言模型的这些功能时,请仅以负责任 (responsible) 和有益于人们 (helps people) 的方式使用它们。
在本章中,你将学会如何基于 OpenAI API 生成针对每位客户评价优化的客服电子邮件。我们还将利用模型的另一个输入参数称为温度,这种参数允许您在模型响应中变化探索的程度和多样性。
环境配置
参考第二章的 环境配置小节内容即可。
定制客户邮件
我们将根据客户评价和情感,针对性写自动回复邮件。因此,我们将给定客户评价和情感,使用 LLM 针对性生成响应,即根据客户评价和评论情感生成定制电子邮件。
我们首先给出一个示例,包括一个评论及对应的情感。
//我们可以在推理那章学习到如何对一个评论判断其情感倾向private String sentiment = "negative";//一个产品的评价private String review = "他们在11月份的季节性销售期间以约49美元的价格出售17件套装,折扣约为一半。但由于某些原因(可能是价格欺诈),到了12月第二周,同样的套装价格全都涨到了70美元到89美元不等。11件套装的价格也上涨了大约10美元左右。虽然外观看起来还可以,但基座上锁定刀片的部分看起来不如几年前的早期版本那么好。不过我打算非常温柔地使用它," +"例如,我会先在搅拌机中将像豆子、冰、米饭等硬物研磨,然后再制成所需的份量,切换到打蛋器制作更细的面粉,或者在制作冰沙时先使用交叉切割刀片,然后使用平面刀片制作更细/不粘的效果。制作冰沙时,特别提示:将水果和蔬菜切碎并冷冻(如果使用菠菜,则轻轻煮软菠菜,然后冷冻直到使用;如果制作果酱,则使用小到中号的食品处理器),这样可以避免在制作冰沙时添加太多冰块。" +"大约一年后,电机发出奇怪的噪音,我打电话给客服,但保修已经过期了,所以我不得不再买一个。" +"总的来说,这些产品的总体质量已经下降,因此它们依靠品牌认可和消费者忠诚度来维持销售。货物在两天内到达。";
我们已经使用推断课程中所学方法提取了情感,这是一个关于搅拌机的客户评价,现在我们将根据情感定制回复。
以下述 Prompt 为例:假设你是一个客户服务 AI 助手,你的任务是为客户发送电子邮件回复,根据通过三个反引号分隔的客户电子邮件,生成一封回复以感谢客户的评价。
String prompt = "你是一位客户服务的AI助手。\n" +"你的任务是给一位重要客户发送邮件回复。\n" +"根据客户通过“```”分隔的评价,生成回复以感谢客户的评价。提醒模型使用评价中的具体细节\n" +"用简明而专业的语气写信。\n" +"作为“AI客户代理”签署电子邮件。\n" +"客户评论:\n" +"```{" + review + "}```\n" +"评论情感:{sentiment}";String message = this.getCompletion(prompt);log.info("iterative1:\n{}", message);
尊敬的客户,非常感谢您对我们产品的评价和反馈。我们非常重视您的意见,并对您在11月份季节性销售期间购买的套装价格上涨的情况表示歉意。我们一直致力于为客户提供高质量的产品和优惠的价格。对于价格上涨的情况,我们会进一步调查并采取相应的措施,以确保类似情况不再发生。您对产品的使用方式和功能的详细描述非常有帮助。我们将会将您的建议和使用技巧传达给我们的产品团队,以便改进和提升产品的性能和质量。对于电机发出奇怪噪音的问题,我们深感抱歉。由于保修已过期,我们无法提供免费维修或更换。然而,我们的客服团队将会尽力为您提供技术支持和解决方案,以确保您的满意度。我们非常重视您作为我们的重要客户,并将继续努力提供优质的产品和卓越的客户服务。如果您有任何其他问题或需求,请随时与我们联系。再次感谢您的评价和支持。祝您度过愉快的一天!AI客户代理
引入温度系数
接下来,我们将使用语言模型的一个称为“温度” (Temperature) 的参数,它将允许我们改变模型响应的多样性。您可以将温度视为模型探索或随机性的程度。
例如,在一个特定的短语中,“我的最爱食品”最有可能的下一个词是“比萨”,其次最有可能的是“寿司”和“塔可”。因此,在温度为零时,模型将总是选择最有可能的下一个词,而在较高的温度下,它还将选择其中一个不太可能的词,在更高的温度下,它甚至可能选择塔可,而这种可能性仅为五分之一。
您可以想象,随着模型继续生成更多单词的最终响应,“我的最爱食品是比萨”将会与第一个响应“我的最爱食品是塔可”产生差异。随着模型的继续,这两个响应也将变得越来越不同。
一般来说,在构建需要可预测响应的应用程序时,我建议设置温度为零。在所有课程中,我们一直设置温度为零,如果您正在尝试构建一个可靠和可预测的系统,我认为您应该选择这个温度。如果您尝试以更具创意的方式使用模型,可能需要更广泛地输出不同的结果,那么您可能需要使用更高的温度。
同一段来信,我们提醒模型使用用户来信中的详细信息,并设置温度:
String prompt = "你是一名客户服务的AI助手。\n" +" 你的任务是给一位重要的客户发送邮件回复。\n" +" 根据通过“```”分隔的客户电子邮件生成回复,以感谢客户的评价。\n" +" 如果情感是积极的或中性的,感谢他们的评价。\n" +" 如果情感是消极的,道歉并建议他们联系客户服务。\n" +" 请确保使用评论中的具体细节。\n" +" 以简明和专业的语气写信。\n" +" 以“AI客户代理”的名义签署电子邮件。\n" +" 客户评价:```{" + review + "}```\n" +" 评论情感:{" + sentiment + "}";String message = this.getCompletion(prompt);log.info("iterative2:\n{}", message);
尊敬的客户,非常感谢您对我们产品的评价和反馈。我们非常重视您的意见,并对您在11月份季节性销售期间购买的套装价格上涨以及产品质量下降表示诚挚的歉意。我们深感遗憾,您在12月第二周发现同样的套装价格涨到了70美元到89美元不等,并且11件套装的价格也上涨了大约10美元左右。我们理解这对您来说是一个令人失望的经历。我们会进一步调查此事,并确保类似情况不再发生。关于产品质量方面的问题,我们对您提到的基座上锁定刀片的部分不如早期版本好表示歉意。我们将与生产团队合作,以改进产品的设计和质量控制,以确保我们的产品能够满足客户的期望。您提到的使用方法和技巧对我们非常有帮助,我们将会将这些信息传达给我们的研发团队,以便改进我们的产品和用户体验。如果您对我们的产品有任何其他问题或需要进一步的帮助,请随时联系我们的客户服务团队。我们将竭诚为您提供支持和解决方案。
在温度为零时,每次执行相同的 Prompt ,您获得的回复理应相同。而使用温度为 0.7 时,则每次都会获得不同的输出。
所以,您可以看到它与我们之前收到的电子邮件不同。再次执行将再次获得不同的电子邮件。
因此,我建议您自己尝试温度,以查看输出如何变化。总之,在更高的温度下,模型的输出更加随机。您几乎可以将其视为在更高的温度下,助手更易分心,但也许更有创造力。
Java快速转换到大模型开发:
配套课程的所有代码已经发布在:https://github.com/Starcloud-Cloud/java-langchain
相关文章:
【Java-LangChain:面向开发者的提示工程-7】文本扩展
第七章 文本扩展 扩展是将短文本(例如一组说明或主题列表)输入到大型语言模型中,让模型生成更长的文本(例如基于某个主题的电子邮件或论文)。这种应用是一把双刃剑,好处例如将大型语言模型用作头脑风暴的伙…...
竞赛 基于设深度学习的人脸性别年龄识别系统
文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习机器视觉的…...
从技能需求到就业前景,了解前端和后端开发的优缺点和个人选择
文章目录 每日一句正能量一、引言前端开发后端开发 二、两者的对比分析三、技能转换和跨领域工作四:介绍全栈开发后记 每日一句正能量 命运决定的不是你的人生,能决定你人生的只有自己。 一、引言 前端和后端是Web开发中两个不可或缺的领域。前端开发主…...
Flutter笔记:AnimationMean、AnimationMax 和 AnimationMin 三个类的用法
Flutter笔记 AnimationMean、AnimationMax 和 AnimationMin三个类的用法 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/…...
华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gogs服务器
华为云云耀云服务器L实例评测|云耀云服务器L实例部署Gogs服务器 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、Gogs介绍2.1 Gogs简介2.2 Gogs特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、远程登录华为云云耀云…...
操作系统--分页存储管理
一、概念介绍 分页存储:一是分内存地址,二是分逻辑地址。 1.分内存地址 将内存空间分为一个个大小相等的分区。比如,每个分区4KB。 每个分区就是一个“页框”,每个页框有个编号,即“页框号”,“页框号”…...
【算法练习Day10】有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 有效的括号删除字符串中的所…...
10.1 校招 实习 内推 面经
绿泡*泡: neituijunsir 交流裙 ,内推/实习/校招汇总表格 1、自动驾驶一周资讯 - 苹果汽车项目泡汤?纵目科技IPO终止,腾讯与岚图汽车合作升级,158亿元现金收购比亚迪“史上最大”并购案 自动驾驶一周资讯 - 苹果汽车…...
Redis中Set类型的操作
Set的结构与list相似,但底层存储结构是hashtable,因此它的值是唯一的,同时添加的顺序与保存的顺序并不一致。每一个Set类型的key中可以存储2^32-1个元素。 一、应用场景 1、保存用户的收藏 在小说网站中保存用户的收藏,收藏 的小…...
正确完成实时 AI
发表于 构建真实世界的实时 AI 一、说明 我们知道,当前的AI进展是扎根于历史数据,这就造成一个事实,模型总是赶不上实时进展,模型的洞察力不够尖锐,或者,时间损失等,本篇对这一系列AI的短板展开…...
深度学习笔记之线性代数
深度学习笔记之线性代数 一、向量 在数学表示法中,向量通常记为粗体小写的符号(例如,x,y,z)当向量表示数据集中的样本时,它们的值具有一定的现实意义。例如研究医院患者可能面临的心脏病发作风…...
Python与Scrapy:构建强大的网络爬虫
网络爬虫是一种用于自动化获取互联网信息的工具,在数据采集和处理方面具有重要的作用。Python语言和Scrapy框架是构建强大网络爬虫的理想选择。本文将分享使用Python和Scrapy构建强大的网络爬虫的方法和技巧,帮助您快速入门并实现实际操作价值。 一、Pyt…...
kind 安装 k8s 集群
在某些时候可能需要快速的部署一个k8s集群用于测试,不想部署复杂的k8s集群环境,这个时候我们就可以使用kind来部署一个k8s集群了,下面是使用kind部署的过程 一、安装单节点集群 1、下载kind二进制文件 [rootlocalhost knid]# curl -Lo ./kin…...
Leetcode 2871. Split Array Into Maximum Number of Subarrays
Leetcode 2871. Split Array Into Maximum Number of Subarrays 1. 解题思路2. 代码实现 题目链接:2871. Split Array Into Maximum Number of Subarrays 1. 解题思路 这一题实现上其实还是比较简单的,就是一个贪婪算法,主要就是思路上需要…...
Java基础---第十三篇
系列文章目录 文章目录 系列文章目录一、有数组了为什么还要搞个 ArrayList 呢?二、说说什么是 fail-fast?三、说说Hashtable 与 HashMap 的区别一、有数组了为什么还要搞个 ArrayList 呢? 通常我们在使用的时候,如果在不明确要插入多少数据的情况下,普通数组就很尴尬了,…...
Java 文档注释
Java 文档注释 目录 Java 文档注释 javadoc 标签 文档注释 javadoc输出什么 实例 Java只是三种注释方式。前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束。 说明注释允许你在程序中嵌入关于程序的信息。你可以使…...
【多媒体技术与实践】多媒体计算机系统概述
数码相机是利用___感受光信号, 使转换为电信号,再经模/数转换变成数字信号,存储在相机内部的存储器中。 选择一项: a. RGB b. OCR c. CCD d. MPEG 正确答案是:CCD 最基本的多媒体计算机是指安装了_部件的计算机。…...
DirectX 3D C++ 圆柱体的渲染(源代码)
作业内容 请勿抄袭 代码功能:渲染一个绕中心轴自转的圆柱体。要求该圆柱体高度为3.0,半径为0.5。 #include <windows.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dcompiler.h> #include <xnamath.h> #incl…...
搭建前端框架
在终端进入web目录,然后创建vuecrud工程 创建工程并引入ElementUI和axios手把手教学>传送门:VueCLI脚手架搭建...
2310C++构造对象
原文 本文展示一个构造对象方式,用户无需显式调用构造器.对有参构造器类,该实现在构造改对象时传递默认值来构造. 当然用户也可指定(绑定)某个参数的值.实现思路参考boost-ext/di的实现.看下示例: 构 成员{整 x10; }; 构 成员1{整 x11; }; 类 例子1{ 公:例子1(成员 x,成员1 x…...
MobaXterm中文版:一站式远程管理工具的高效配置指南
MobaXterm中文版:一站式远程管理工具的高效配置指南 【免费下载链接】Mobaxterm-Chinese Mobaxterm simplified Chinese version. Mobaxterm 的简体中文版. 项目地址: https://gitcode.com/gh_mirrors/mo/Mobaxterm-Chinese MobaXterm中文版是一个集成了SSH客…...
用Keras从零搭建一个图像去噪CNN模型:保姆级代码详解与避坑指南
用Keras从零搭建图像去噪CNN模型:实战详解与性能优化 老照片修复、低光照摄影增强、医学影像清晰化——这些场景背后都离不开图像去噪技术的支持。传统滤波方法往往在去除噪声的同时模糊了细节,而基于深度学习的方案却能更智能地区分噪声与真实内容。本文…...
Win10 22H2 Oct版安装全攻略:DISM++ vs 传统ISO安装,哪种更适合你?
Win10 22H2 Oct版安装方案深度对比:DISM与ISO传统安装的实战解析 当我们需要为电脑安装Windows 10 22H2 Oct版时,通常会面临两种主流选择:使用DISM工具进行安装或采用传统的ISO镜像安装方式。这两种方法各有特点,适用于不同场景和…...
手把手教你用昇腾910B部署Qwen3-Reranker-8B,并接入Dify/RAGFlow(附完整代码)
昇腾910B实战:Qwen3-Reranker-8B国产化部署与RAGFlow/Dify集成指南 在国产化AI基础设施加速落地的背景下,华为昇腾NPU正成为替代传统GPU的重要选择。本文将完整演示如何在昇腾910B上部署Qwen3-Reranker-8B重排序模型,并将其无缝集成到Dify和R…...
PlugY插件:暗黑破坏神2单机模式的终极增强指南
PlugY插件:暗黑破坏神2单机模式的终极增强指南 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 还在为暗黑破坏神2单机模式的种种限制而烦恼吗?…...
AI编程新范式:用Nomic-Embed-Text-V2-MoE生成代码语义描述与检索
AI编程新范式:用Nomic-Embed-Text-V2-MoE生成代码语义描述与检索 1. 引言 你有没有过这样的经历?面对一个庞大的代码库,想找一个“处理用户登录验证”的函数,却记不清它具体叫什么名字,只能靠模糊的记忆在文件间来回…...
新手福音:用快马ai生成交互式mysql安装教程,边看边练轻松入门
最近在帮朋友入门数据库开发时,发现很多新手卡在MySQL安装配置这一步。命令行操作对初学者确实不太友好,于是我尝试用InsCode(快马)平台做了个交互式学习项目,效果出乎意料的好。这里分享下具体实现思路,或许能帮到同样想学MySQL的…...
3大维度解析memtest_vulkan:让GPU用户轻松解决显存稳定性难题
3大维度解析memtest_vulkan:让GPU用户轻松解决显存稳定性难题 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 在图形渲染、科学计算和深度学习等关键…...
Visual C++运行库修复工具:彻底解决DLL依赖故障的全方位方案
Visual C运行库修复工具:彻底解决DLL依赖故障的全方位方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 当启动专业设计软件时弹出"无法定位程…...
12345网络平台网址
1 下载 湘易办app2 登录3 选择 永州市4 12345热线5 发布诉求6 可以通过事发位置来定位,这样就不用描述位置了。...
