#LLM入门|Prompt#2.7_检查结果_Check_Outputs

引领你了解

  • ·如何评估系统生成的输出。
  • 确保在向用户展示输出之前,对其质量、相关性和安全性进行严格的检查,以保证我们提供的反馈是准确和适用的。
  • 如何运用审查(Moderation) API 来对输出进行评估
  • 如何通过额外的 Prompt 提升模型在展示输出之前的质量评估。

一、检查有害内容

我们主要通过 OpenAI 提供的 Moderation API 来实现对有害内容的检查。

import openai
from tool import get_completion_from_messagesfinal_response_to_customer = f"""
SmartX ProPhone 有一个 6.1 英寸的显示屏,128GB 存储、\
1200 万像素的双摄像头,以及 5G。FotoSnap 单反相机\
有一个 2420 万像素的传感器,1080p 视频,3 英寸 LCD 和\
可更换的镜头。我们有各种电视,包括 CineView 4K 电视,\
55 英寸显示屏,4K 分辨率、HDR,以及智能电视功能。\
我们也有 SoundMax 家庭影院系统,具有 5.1 声道,\
1000W 输出,无线重低音扬声器和蓝牙。关于这些产品或\
我们提供的任何其他产品您是否有任何具体问题?
"""
# Moderation 是 OpenAI 的内容审核函数,旨在评估并检测文本内容中的潜在风险。
response = openai.Moderation.create(input=final_response_to_customer
)
moderation_output = response["results"][0]
print(moderation_output)
{"categories": {"harassment": false,"harassment/threatening": false,"hate": false,"hate/threatening": false,"self-harm": false,"self-harm/instructions": false,"self-harm/intent": false,"sexual": false,"sexual/minors": false,"violence": false,"violence/graphic": false},"category_scores": {"harassment": 4.2861907e-07,"harassment/threatening": 5.9538485e-09,"hate": 2.079682e-07,"hate/threatening": 5.6982725e-09,"self-harm": 2.3966843e-08,"self-harm/instructions": 1.5763412e-08,"self-harm/intent": 5.042827e-09,"sexual": 2.6989035e-06,"sexual/minors": 1.1349888e-06,"violence": 1.2788286e-06,"violence/graphic": 2.6259923e-07},"flagged": false
}

检查输出质量
检查输出的质量对于确保聊天机器人的表现至关重要。以下是一些检查输出质量的方法:
1. 标记输出

  • 如果输出没有被标记为任何特定类别,并且在所有类别中得分都很低,说明结果评判合理。
  • 对于对内容敏感的受众,可以设定更低的阈值来标记可能存在问题的输出。

2. 采取适当措施

  • 如果某些内容被标记为有问题,可以采取适当措施,如提供替代答案或生成新的响应。
  • 随着模型的不断改进,有害输出的可能性会降低。

3. 向模型询问

  • 通过将生成的输出作为输入的一部分再次提供给模型,并要求其评估输出的质量,可以检查输出的质量。
  • 这种操作可以通过多种方式完成,例如将生成的输出提供给模型,并要求其评估输出的质量。

总结

  • 确保聊天机器人输出的质量符合预期是非常重要的。
  • 通过标记输出、采取适当措施和向模型询问来检查输出的质量。
  • 随着模型的持续改进,输出质量应该会逐渐提高。

二、检查是否符合产品信息

在下列示例中,我们要求 LLM 作为一个助理检查回复是否充分回答了客户问题,并验证助理引用的事实是否正确。

# 这是一段电子产品相关的信息
system_message = f"""
您是一个助理,用于评估客服代理的回复是否充分回答了客户问题,\
并验证助理从产品信息中引用的所有事实是否正确。 
产品信息、用户和客服代理的信息将使用三个反引号(即 ```)\
进行分隔。 
请以 Y 或 N 的字符形式进行回复,不要包含标点符号:\
Y - 如果输出充分回答了问题并且回复正确地使用了产品信息\
N - 其他情况。仅输出单个字母。
"""#这是顾客的提问
customer_message = f"""
告诉我有关 smartx pro 手机\
和 fotosnap 相机(单反相机)的信息。\
还有您电视的信息。
"""
product_information = """{ "name": "SmartX ProPhone", "category": "Smartphones and Accessories", "brand": "SmartX", "model_number": "SX-PP10", "warranty": "1 year", "rating": 4.6, "features": [ "6.1-inch display", "128GB storage", "12MP dual camera", "5G" ], "description": "A powerful smartphone with advanced camera features.", "price": 899.99 } { "name": "FotoSnap DSLR Camera", "category": "Cameras and Camcorders", "brand": "FotoSnap", "model_number": "FS-DSLR200", "warranty": "1 year", "rating": 4.7, "features": [ "24.2MP sensor", "1080p video", "3-inch LCD", "Interchangeable lenses" ], "description": "Capture stunning photos and videos with this versatile DSLR camera.", "price": 599.99 } { "name": "CineView 4K TV", "category": "Televisions and Home Theater Systems", "brand": "CineView", "model_number": "CV-4K55", "warranty": "2 years", "rating": 4.8, "features": [ "55-inch display", "4K resolution", "HDR", "Smart TV" ], "description": "A stunning 4K TV with vibrant colors and smart features.", "price": 599.99 } { "name": "SoundMax Home Theater", "category": "Televisions and Home Theater Systems", "brand": "SoundMax", "model_number": "SM-HT100", "warranty": "1 year", "rating": 4.4, "features": [ "5.1 channel", "1000W output", "Wireless subwoofer", "Bluetooth" ], "description": "A powerful home theater system for an immersive audio experience.", "price": 399.99 } { "name": "CineView 8K TV", "category": "Televisions and Home Theater Systems", "brand": "CineView", "model_number": "CV-8K65", "warranty": "2 years", "rating": 4.9, "features": [ "65-inch display", "8K resolution", "HDR", "Smart TV" ], "description": "Experience the future of television with this stunning 8K TV.", "price": 2999.99 } { "name": "SoundMax Soundbar", "category": "Televisions and Home Theater Systems", "brand": "SoundMax", "model_number": "SM-SB50", "warranty": "1 year", "rating": 4.3, "features": [ "2.1 channel", "300W output", "Wireless subwoofer", "Bluetooth" ], "description": "Upgrade your TV's audio with this sleek and powerful soundbar.", "price": 199.99 } { "name": "CineView OLED TV", "category": "Televisions and Home Theater Systems", "brand": "CineView", "model_number": "CV-OLED55", "warranty": "2 years", "rating": 4.7, "features": [ "55-inch display", "4K resolution", "HDR", "Smart TV" ], "description": "Experience true blacks and vibrant colors with this OLED TV.", "price": 1499.99 }"""q_a_pair = f"""
顾客的信息: ```{customer_message}```
产品信息: ```{product_information}```
代理的回复: ```{final_response_to_customer}```回复是否正确使用了检索的信息?
回复是否充分地回答了问题?输出 Y 或 N
"""
#判断相关性
messages = [{'role': 'system', 'content': system_message},{'role': 'user', 'content': q_a_pair}
]response = get_completion_from_messages(messages, max_tokens=1)
print(response)

Y
在上一个示例中,我们给了一个正例,LLM 很好地做出了正确的检查。而在下一个示例中,我们将提供一个负例,LLM 同样能够正确判断。

another_response = "生活就像一盒巧克力"
q_a_pair = f"""
顾客的信息: ```{customer_message}```
产品信息: ```{product_information}```
代理的回复: ```{another_response}```回复是否正确使用了检索的信息?
回复是否充分地回答了问题?输出 Y 或 N
"""
messages = [{'role': 'system', 'content': system_message},{'role': 'user', 'content': q_a_pair}
]response = get_completion_from_messages(messages)
print(response)

N
审查 API 可以提供生成输出质量的反馈,你可以根据这些反馈来决定是否展示输出给用户,或者生成新的回应。你还可以尝试为每个用户查询多个模型回应,然后从中选择最佳的回应呈现给用户。因此,你有多种可能的尝试方式。
然而,在大多数情况下,审查输出并不是必需的,特别是当你使用更先进的模型,比如 GPT-4。实际上,在真实生产环境中,我们并未看到很多人采取这种方式。这种做法也会增加系统的延迟和成本,因为你需要等待额外的 API 调用,并且需要额外的 token。如果你的应用或产品的错误率仅为 0.0000001%,那么你可能可以尝试这种策略。但总的来说,我们并不建议在实际应用中使用这种方式。
在接下来的章节中,我们将整合我们在评估输入、处理输出以及审查生成内容方面学到的知识,构建一个端到端的系统。

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

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

相关文章

redis运维

1.备份redis配置文件 cp /etc/redis.conf /etc/redis.conf.bak 2.将redis中不要的注释和空行删除 sed -i /^#/d; /^$/d /etc/redis.conf 3.redis配置文件 bing 0.0.0.0 :绑定本机所有网卡 daemonize yes:设置后台运行 requirepass redispwd…

k8s初始化错误

报错详情: you can check the kubelet logs for further clues by running: ‘journalctl -u kubelet’ Alternatively, there might be issues with your Kubernetes configuration files or maybe the necessary ports are not opened. Check the status of …

rust多个mod文件引用和文件夹mod使用注意事项

如果mod文件都在同一级目录,则直接使用就可以,因为rust文件都是一个隐藏的mod,但是如果mod文件在另外一个目录下面,就需要在目录下面声明一个mod.rs文件,这样才能将那个目录识别为一个mod,可以在mod.rs里面…

鸿蒙App开发新思路:小程序转App

国家与国家之间错综复杂,在谷歌的安卓操作系统“断供”后,鸿蒙系统的市场化&独立化的道路便显而易见了。 2024年1月18日,华为宣布,不再兼容安卓的“纯血鸿蒙”--HarmonyOS NEXT鸿蒙星河版最终面世,并与2024年Q4正…

Flutter Text 下划线

IntrinsicWidth(child: Column(mainAxisAlignment:MainAxisAlignment.center,children: [Text("工单名称",style: TextStyle(overflow: TextOverflow.fade,color: AppColors.baseColor,fontSize: 15.sp,// decorationStyle: TextDecorationStyle.dashed),),Container…

马士超:符合国际标准的沉浸式音频HOLOSOUND的发展与未来 | 演讲嘉宾公布

一、3D音频 3D 音频分论坛将于3月27日同期举办! 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验,跨越时空的限制,探索未知的世界。同时,提供更加丰富、立体的情感表达和交流方式,让人类能够更加深入地理解彼此&a…

【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:从入门到入魔》 🚀 本…

不知道RAID/SAN/NAS的小可爱来看看这个吧!

RAID RAID(冗余阵列的独立磁盘,Redundant Array of Independent Disks)是一种将多个磁盘驱动器组合成一个或多个单元的技术,目的是在提高数据可靠性和/或提升性能的同时,对操作系统隐藏底层的复杂性。简而言之&#x…

数据库之间数据迁移工具datax

简介 DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databe…

解决ODOO12 恢复数据库提示内存不够报错

1. 现象 点击 ‘restore database’ 控制台报错: 2. 解决措施 a. 进入启动脚本的文件夹 cd odoo/odoo-12.0/输入命令 ./odoo-bin --addons-pathaddons --databaseodoo --db_userodoo --db_passwordodoo --db_hostlocalhost --db_port5432 -i INITb. 刷新页面…

达梦数据库基础操作(五): 索引操作

达梦数据库基础操作(五): 索引操作 1. 索引操作 1.1 创建索引 # 使用 CREATE INDEX 语句创建普通索引。 CREATE INDEX ind_emp_salary ON employee(salary);1.2 查看创建的索引 # 通过字典表 user_indexes 查看已创建索引的名称、类型。SELECT table_name, index…

CentOS部署FastDFS+Nginx并实现远程访问本地服务器中文件

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

CHI协议学习

原始文档:https://developer.arm.com/documentation/102407/0100/?langen CHI 总线拓扑结构 CHI总线拓扑是实现自定义的,可以是RING/MESH/CROSSBAR的类型; RING 一般适用于中等规模芯片MESH 一般适用于大规模芯片CROSSBAR 一般适用于小规模…

中科数安 | 公司文档数据如何才能防止他人泄密?

为了防止公司文档数据被他人泄密,中科数安提供了一系列综合性的解决方案和服务。 www.weaem.com 以下是一些关键策略和措施: 访问控制:首先,实施严格的文件访问控制是至关重要的。中科数安提供身份验证和权限管理系统&#xff0c…

hnust 湖南科技大学 2022 数据挖掘课设 完整代码+报告+图源文件+指导书

hnust 湖南科技大学 2022 数据挖掘课设 完整代码报告图源文件指导书 目录 实验一 Apriori算法设计与应用 - 1 - 一、 背景介绍 - 1 - 二、 实验内容 - 1 - 三、 实验结果与分析 - 2 - 四、 小结与心得体会 - 3 - 实验二 KNN算法设计与应用 - 4 - 一、 背景介绍 - 4 - 二、 实…

(已解决)emoji及其特殊符号在vue中的使用

问题叙述 使用问题&#xff1a;在表情库中点击后无法展示对应的emoji表情&#xff0c;仅仅显示Unicode代码编号&#xff0c;按照vue eslint规则更改添加分号后&#xff0c;没有报错但是依旧无法正确渲染。 问题源码&#xff1a; <template><div><!-- 被点击的…

全新攻击面管理平台

首页大屏 内测阶段&#xff0c;免费试用一个月 有兴趣体验的师傅&#xff0c;来长亭云图极速版群里找我 py

AI通识教育:可能是我们领先于世界AI的关键

在人工智能时代&#xff0c;要想在全球AI竞争中占据一席之地&#xff0c;摆脱对外部先进机构如OpenAI的依赖&#xff0c;减少对英伟达等公司在GPU等硬件技术上的制约&#xff0c;以及尽快缩小与世界最前沿AI技术水平之间的差距&#xff0c;这是一项艰巨而又紧迫的任务。 实现这…

vue 安装各种问题

新下载了个项目模板&#xff0c;安装包就遇到了各种各样问题 电脑&#xff1a;mac 使用npm i 等命令一直安装项目&#xff0c;然后一直报错 2534 info run canvas2.11.2 install node_modules/canvas node-pre-gyp install --fallback-to-build --update-binary 2535 info r…

vscode + visual studio keymap插件

备注&#xff1a;主要推荐代码递归折叠代码展开单个函数折叠单个代码展开。原因&#xff1a;vscode中的visual studio keymap插件对于代码折叠支持不充分&#xff0c;查看大型项目时不方便。 一、个人快捷键推荐 1、前进&#xff1a;ctrl shift - 2、回退&#xff1a;ctrl…