【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 时,则每次都会获得不同的输出。
所以,您可以看到它与我们之前收到的电子邮件不同。再次执行将再次获得不同的电子邮件。
因此,我建议您自己尝试温度,以查看输出如何变化。总之,在更高的温度下,模型的输出更加随机。您几乎可以将其视为在更高的温度下,助手更易分心,但也许更有创造力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解”变分下界“

“变分下界”:在变分推断中,我们试图找到一个近似概率分布q(x)来逼近真实的概率分布p(x)。变分下界是一种用于评估近似概率分布质量的指标,通常用来求解最优的近似分布。它的计算涉及到对概率分布的积分或期望的估计

分布式搜索引擎es-3

文章目录 数据聚合聚合的种类RestAPI实现聚合 自动补全自定义拼音分词器自动补全查询案例:实现酒店搜索框自动补全自动补全的javaAPI实现搜索框自动补全 口述自动补全数据同步集群集群的分布式存储集群分布式查询集群故障转移 数据聚合 什么是聚合? 聚合…

【面试经典150 | 矩阵】旋转图像

文章目录 写在前面Tag题目来源题目解读解题思路方法一:原地旋转方法二:翻转代替旋转 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带…

【Cesium创造属于你的地球】相机系统

相机系统里面有setView,flyTo,lookAt,viewBoundingsphere这几种方法,以下是相关的使用方法,学起来!!! setView 该方法可以直接切换相机视口,从而不需要通过一个飞入的效…

ruoyi-启动

1 springboot 版本 git 地址 ruoyi-vue-pro: 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot MyBatis Plus Vue & Element 实现的后台管理系统 微信小程序,支持 RBAC 动态权限、数据权限…

深度学习(1)---卷积神经网络(CNN)

文章目录 一、发展历史1.1 CNN简要说明1.2 猫的视觉实验1.3 新认知机1.4 LeNet-51.5 AlexNet 二、卷积层2.1 图像识别特点2.2 卷积运算2.3 卷积核2.4 填充和步长2.5 卷积计算公式2.6 多通道卷积 三、池化层 一、发展历史 1.1 CNN简要说明 1. 卷积神经网络(Convolut…

基于SSM的公司项目管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

元素显示和背景调试

什么是元素显示模式 如<div>自己占一行。比如一行可以放多个<span> HTML可以分成块元素和行内元素 常见的块元素为<h1><p><div><ul><ol><li>之中<div>是最典型的块元素 < div>独自一行&#xff0c;可以设置宽和…

如何完美控制控制台输出

1 前言 正常情况下&#xff0c;我们在控制台程序中只关注程序的输入和输出&#xff0c;而不在意输出的格式、光标位置等。 因此&#xff0c;当我们想要完美控制程序的输入输出时&#xff0c;就必须要使用系统提供的操作接口&#xff0c;来实现我们的目标。 由于linux平台的控制…

ABC322刷题记

ABC322刷题记 T1.A A - First ABC 2。 妥妥的简单题…… 用find函数做就行。&#xff08;如果不存在那个子串就返回-1&#xff0c;否则返回第一次出现位置&#xff09; 注意题目中编号是从1开始的。 时间复杂度&#xff1a;O(log(n))。find函数有一定代价&#xff0c;我记…

Qt 信号和槽执行线程问题

Qt 信号和槽执行线程问题 1.QObject的thread() 函数 在Qt中QObject有一个thread() 的函数。这就说明&#xff0c;每一个QOject对象都有所属的线程。 注意&#xff1a; QThread也是一个QObject的子类&#xff0c;也有自己所在的线程每个QObject存在父子关系&#xff0c;存在…

【Java-LangChain:面向开发者的提示工程-6】文本转换

第六章 文本转换 LLM非常擅长将输入转换成不同的格式&#xff0c;典型应用包括多语种文本翻译、拼写及语法纠正、语气调整、格式转换等。 本章节将介绍如何使用编程的方式&#xff0c;调用API接口来实现“文本转换”功能。 环境配置 参考第二章的 环境配置小节内容即可。 文…

java复习回顾

文章目录 0 开发工具1. 对象和类、三大特性2. 成员/实例变量和实例变量&#xff08;this关键字&#xff09;3. 方法重载overload4. 构造方法和this关键字5. 继承6. 访问修饰符7. 方法重写8. 继承下的构造执行9. 多态9.1 向上转型9.2 向下转型9.3 多态的应用 0 开发工具 Maven是…

Acwing 907. 区间覆盖

Acwing 907. 区间覆盖 知识点题目描述思路讲解代码展示 知识点 贪心 题目描述 思路讲解 代码展示 #include <iostream> #include <algorithm>using namespace std;const int N 100010;int n;struct Range {int l, r;bool operator < (const Range &W) …

分页前后端完整代码

一、后端代码 User实体类要继承PageVo package com.like.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.like.common.PageVo; import…

借助ChatGPT的神奇力量,解锁AI无限可能!

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

计算机毕业设计 基于SSM的宿舍管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

时间序列-AR模型与MA模型的原理与实现

文章目录 1 自回归模型AR Model1.1 自回归模型 vs 多元线性回归模型1.1.1 线性回归1.1.2 AR(1)模型1.1.3 AR(p)模型 1.2 AR建模问题 2 移动平均模型 MA Model2.1 MA模型的数学表示2.1.1 MA(1)模型2.2.2 MA(q)模型 2.2 MA建模问题 ARIMA模型是AR模型&#xff08;自回归模型&…

使用 Python 给 PDF 添加目录书签

0、库的选择——pypdf 原因&#xff1a;Python Version Support Python 3.11 3.10 3.9 3.8 3.7 3.6 2.7 pypdf>3.0 YES YES YES YES YES YES PyPDF2>2.0 YES YES YES YES YES YES PyPDF2 1.20.0 - 1.28.4 YES YES YES YES YES YES P…

c语言练习74: 分割数组中数字的数位

分割数组中数字的数位 题⽬描述&#xff1a; 给你⼀个正整数数组 nums &#xff0c;请你返回⼀个数组 answer &#xff0c;你需要将 nums 中每个整数进⾏数位 分割后&#xff0c;按照 nums 中出现的 相同顺序 放⼊答案数组中。 对⼀个整数进⾏数位分割&#xff0c;指的是将整…