LangChain学习:评估

文章目录

    • 1. 加载数据
    • 2. 硬编码测试样例
    • 3. LLM生成测试样例
    • 4. 评估
      • 手动评估
      • LLM评估

learn from https://learn.deeplearning.ai/langchain

1. 加载数据

import os
import pandas as pd
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env filefrom langchain.chains import RetrievalQA
from langchain.chat_models import ChatOpenAI
from langchain.document_loaders import CSVLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.vectorstores import DocArrayInMemorySearch

自己编造的数据

file = 'goods.csv'
csv_data = '''name,review
小米平衡车,这款小米平衡车的造型简洁大方,携带方便。车身采用铝合金材质,感觉很有质感。车轮较大,站在上面稳定性不错,可以平稳行驶在坚硬路面上。电池续航里程约在20公里左右,符合平衡车的标准配置。转向 precisio较高,控制敏捷,转向灵活。上手学习难度小,很快就可以自如驾驭。但是车身有些重,如果要携带乘坐地铁可能不太方便。总体而言,这款小米平衡车性价比很高,很适合城市短途出行使用。
阿迪达斯休闲鞋,这双阿迪达斯休闲鞋的款式简单大方,很适合日常休闲装扮。鞋身采用轻量 Mesh材质,保证通风性。鞋底较厚,但是轻量弹性,带来舒适的缓冲体验。穿着跑步和长时间行走也不会很疲惫。内部空间较大,不会有束缚感。款式时尚,有多种颜色可选。OEM工艺和品质都有保证。唯一不足可能是防水性能一般,不太适合在雨天长时间穿着。
保温杯,这款保温杯的保温性能非常好,一天下来冷饮依然冰冷,热饮也很滚烫。杯盖设计严密,完全防漏。杯身不透明,不太容易沾污。容量约500ml,带一点开水喝一天没问题。杯口和手柄设计合理,方便口饮。清洗也很方便。杯身磨砂处理,手感不错。比较推荐在办公室中使用。可能唯一的缺点是没有泡茶过滤功能,不太适合放茶叶。
耐克跑步鞋,这双耐克跑步鞋的底部反弹力很好,提供足够的缓冲效果。鞋面采用网眼设计,通气性好。内部空间充足,不会有局促感。全天候跑步都可以,防滑性能也不错。唯一要注意的是,由于是轻薄款式,走路时稍微有点不太稳定。建议专门用作跑步训练使用,不太适合走路或长时间站立。
华为手表,这款华为手表的屏幕显示效果很清晰,色彩还原度高。表带和表扣设计考究,戴着舒适,可以准确测量心率和血氧。支持手机控制播放音乐和相机。续航能力强,正常使用一周左右才需要充电一次。表盘样式也比较丰富。可能的缺点是防水性能一般,只能涉及短时间淋雨或者手洗,不能完全浸水。总体而言,这款手表的外观设计和智能功能表现都比较出色。
ThinkPad笔记本,这款ThinkPad笔记本的外观设计简洁大方,不会很容易沾灰指纹。屏幕视野角度广,颜色还原度高,长时间使用也不会很疲劳。内置的Placketsoft触控板灵敏度高,手感顺滑。键盘手感出色,键行间距宽,打字非常舒适。内部散热性能优异,发热量低。预装Windows系统干净流畅。唯一需要注意的可能是机身较重,不太适合频繁携带外出。
苹果iPhone手机,iPhone的工业设计一如既往的出色,背面玻璃打磨工艺精良。屏幕色彩还原性强,采用Amoled材质,展示效果明亮夺目。iOS系统流畅稳定,各种常用App兼容性强。支持无线充电,电池续航表现不俗。拍照和摄像效果优异,夜景模式拍摄清晰度高。可能唯一的遗憾是已取消耳机插孔,需要另外购买适配器或蓝牙耳机。
联想笔记本电脑,这款联想笔记本电脑的屏幕视野角度很够,色彩表现还算不错。内部散热系统设置得当,发热量低。键盘手感舒适,键位间距合理。机身较轻薄,携带出行不会觉得非常沉重。预装软件不多,比较干净。电池续航能力也可以,日常使用电量基本够用。唯一要注意的是,D盘容量只有256GB,如果存储需要大可以选择在其他位置加装硬盘。
微波炉,这款微波炉选材考究,微波炉门关闭严密,能够隔绝微波辐射。智能程序设定种类较多,操作简便。可以通过旋转盘调节火力大小。内部容积大,够一个大碗。设有除味功能。烹饪食物的效果不错。使用过程中安全可靠,没有出现过故障。'''
rows = csv_data.split('\n')
headers = rows[0].split(',')
data_rows = [row.split(',') for row in rows[1:]]
df = pd.DataFrame(data_rows, columns=headers)
print(df)
df.to_csv(file, index=False)
loader = CSVLoader(file_path=file)
data = loader.load()

在这里插入图片描述

2. 硬编码测试样例

examples = [{"query": "小米平衡车只适合短途出行","answer": "是"},{"query": "阿迪达斯休闲鞋防水性能很好","answer": "否"}
]

3. LLM生成测试样例

from langchain.evaluation.qa import QAGenerateChain
from langchain.output_parsers import RegexParser
from langchain.prompts import PromptTemplatetemplate = """请你根据文档,生成一些提问
文档格式:
<文档开始>
...
<文档结束>
QUERY: query here
ANSWER: answer here提的问题必须是文档中显而易见的,开始!<文档开始>
{doc}
<文档结束>"""
output_parser = RegexParser(regex=r"QUERY: (.*?)\n+ANSWER: (.*)", output_keys=["query", "answer"]
)
prompt = PromptTemplate(input_variables=["doc"], template=template, output_parser=output_parser
)
example_gen_chain = QAGenerateChain.from_llm(llm)
example_gen_chain.prompt = promptnew_examples = []
for d in data:res = example_gen_chain.apply_and_parse([{"doc": d}])print(res[0])new_examples.append(res[0])
print(new_examples)

自动添加了一些问题

{'query': '这款小米平衡车的特点有哪些?', 'answer': '简洁大方的造型,铝合金材质车身,稳定性不错的大车轮,20公里左右的电池续航里程,高精度的转向,上手学习难度小。'}
{'query': '这双阿迪达斯休闲鞋的鞋身采用了什么材质?', 'answer': '鞋身采用轻量 Mesh材质,保证通风性。'}
{'query': '这款保温杯的保温性能如何?', 'answer': '这款保温杯的保温性能非常好,一天下来冷饮依然冰冷,热饮也很滚烫。'}
{'query': '这双耐克跑步鞋的底部有什么特点?', 'answer': '底部反弹力很好,提供足够的缓冲效果。'}
{'query': '这款华为手表有哪些优点?', 'answer': '屏幕显示效果清晰,色彩还原度高,表带和表扣设计考究,戴着舒适,可以准确测量心率和血氧,支持手机控制播放音乐和相机,续航能力强,表盘样式丰富。'}
{'query': '这款ThinkPad笔记本的外观如何?', 'answer': '外观设计简洁大方,不会很容易沾灰指纹。'}
{'query': '这款手机的屏幕采用了什么材质? ', 'answer': '屏幕采用了Amoled材质。 '}
{'query': '这款联想笔记本电脑的屏幕表现如何?', 'answer': '屏幕视野角度很够,色彩表现还算不错。'}
{'query': '这款微波炉有哪些特点?', 'answer': '微波炉选材考究,微波炉门关闭严密,能够隔绝微波辐射。智能程序设定种类较多,操作简便。可以通过旋转盘调节火力大小。内部容积大,够一个大碗。设有除味功能。烹饪食物的效果不错。使用过程中安全可靠,没有出现过故障。'}

4. 评估

examples += new_examplesindex = VectorstoreIndexCreator(vectorstore_cls=DocArrayInMemorySearch
).from_loaders([loader])llm = ChatOpenAI(temperature = 0.0)
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=index.vectorstore.as_retriever(), verbose=True,chain_type_kwargs = {"document_separator": "<<<<>>>>>"}
)

执行 index 那行,报错了

Retrying langchain.embeddings.openai.embed_with_retry.<locals>._embed_with_retry 
in 4.0 seconds as it raised RateLimitError: exceeded quota for this month.
openai.error.InvalidRequestError: Too many inputs. The max number of inputs is 1.  
We hope to increase the number of inputs per request soon. 
Please contact us through an Azure support request at: https://go.microsoft.com/fwlink/?linkid=2213926 for further questions.

意思就是资源不够用。。。不能同时对多个文档进行操作,换了个账号,可以了

手动评估

import langchain
langchain.debug = True
qa.run(examples[0]["query"])

输出:'是的,根据评论,小米平衡车适合城市短途出行使用。它的电池续航里程约为20公里左右,所以对于长途旅行可能不太方便。但对于日常的短途出行,它是一个很好的选择。'

对比 输出answer 是否一致

LLM评估

predictions = qa.apply(examples)
from langchain.evaluation.qa import QAEvalChain
llm = ChatOpenAI(temperature=0)
eval_chain = QAEvalChain.from_llm(llm)
graded_outputs = eval_chain.evaluate(examples, predictions)for i, eg in enumerate(examples):print(f"Example {i}:")print("Question: " + predictions[i]['query'])print("Real Answer: " + predictions[i]['answer'])print("Predicted Answer: " + predictions[i]['result'])print("Predicted Grade: " + graded_outputs[i]['text'])print()

输出:

Example 0:
Question: 小米平衡车只适合短途出行
Real Answer: 是
Predicted Answer: 是的,根据评论,小米平衡车适合城市短途出行使用。它的电池续航里程约为20公里左右,所以对于长途旅行可能不太方便。但对于日常的短途出行,它是一个很好的选择。
Predicted Grade: CORRECTExample 1:
Question: 阿迪达斯休闲鞋防水性能很好
Real Answer: 否
Predicted Answer: 不好
Predicted Grade: CORRECTExample 2:
Question: 这款小米平衡车的特点有哪些?
Real Answer: 简洁大方的造型,铝合金材质车身,稳定性不错的大车轮,20公里左右的电池续航里程,高精度的转向,上手学习难度小。
Predicted Answer: 这款小米平衡车的特点包括:造型简洁大方,携带方便;车身采用铝合金材质,质感好;车轮较大,稳定性好,可以在坚硬路面上平稳行驶;电池续航里程约在20公里左右,符合平衡车的标准配置;转向精准,控制敏捷,转向灵活;上手学习难度小,很快就可以自如驾驭。但是车身有些重,如果要携带乘坐地铁可能不太方便。总体而言,这款小米平衡车性价比很高,很适合城市短途出行使用。
Predicted Grade: CORRECTExample 3:
Question: 这双阿迪达斯休闲鞋的鞋身采用了什么材质?
Real Answer: 鞋身采用轻量 Mesh材质,保证通风性。
Predicted Answer: 这双阿迪达斯休闲鞋的鞋身采用了轻量的Mesh材质。
Predicted Grade: CORRECTExample 4:
Question: 这款保温杯的保温性能如何?
Real Answer: 这款保温杯的保温性能非常好,一天下来冷饮依然冰冷,热饮也很滚烫。
Predicted Answer: 这款保温杯的保温性能非常好,一天下来冷饮依然冰冷,热饮也很滚烫。
Predicted Grade: CORRECTExample 5:
Question: 这双耐克跑步鞋的底部有什么特点?
Real Answer: 底部反弹力很好,提供足够的缓冲效果。
Predicted Answer: 这双耐克跑步鞋的底部具有很好的反弹力,可以提供足够的缓冲效果。
Predicted Grade: CORRECTExample 6:
Question: 这款华为手表有哪些优点?
Real Answer: 屏幕显示效果清晰,色彩还原度高,表带和表扣设计考究,戴着舒适,可以准确测量心率和血氧,支持手机控制播放音乐和相机,续航能力强,表盘样式丰富。
Predicted Answer: 这款华为手表的优点包括:
1. 屏幕显示效果清晰,色彩还原度高。
2. 设计考究,表带和表扣舒适。
3. 可以准确测量心率和血氧。
4. 支持手机控制播放音乐和相机。
5. 续航能力强,正常使用一周左右才需要充电一次。
6. 表盘样式丰富。
7. 外观设计和智能功能表现出色。
Predicted Grade: CORRECTExample 7:
Question: 这款ThinkPad笔记本的外观如何?
Real Answer: 外观设计简洁大方,不会很容易沾灰指纹。
Predicted Answer: 这款ThinkPad笔记本的外观设计简洁大方,不会很容易沾灰指纹。
Predicted Grade: CORRECTExample 8:
Question: 这款手机的屏幕采用了什么材质? 
Real Answer: 屏幕采用了Amoled材质。 
Predicted Answer: 这款手机的屏幕采用了Amoled材质。
Predicted Grade: CORRECTExample 9:
Question: 这款联想笔记本电脑的屏幕表现如何?
Real Answer: 屏幕视野角度很够,色彩表现还算不错。
Predicted Answer: 这款联想笔记本电脑的屏幕视野角度很够,色彩表现还算不错。
Predicted Grade: CORRECTExample 10:
Question: 这款微波炉有哪些特点?
Real Answer: 微波炉选材考究,微波炉门关闭严密,能够隔绝微波辐射。智能程序设定种类较多,操作简便。可以通过旋转盘调节火力大小。内部容积大,够一个大碗。设有除味功能。烹饪食物的效果不错。使用过程中安全可靠,没有出现过故障。
Predicted Answer: 这款微波炉的特点包括选材考究、微波炉门关闭严密、能够隔绝微波辐射、智能程序设定种类较多、操作简便、可以通过旋转盘调节火力大小、内部容积大、设有除味功能、烹饪食物的效果不错、使用过程中安全可靠,没有出现过故障。
Predicted Grade: CORRECT

使用模型进行了批量评估

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

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

相关文章

蔚来手机入网工信部,外观长这样?

相对于华为、小米等手机厂商纷纷进军新能源汽车&#xff0c;车企则瞄上了手机的“红海”&#xff0c;首当其冲的代表是吉利汽车。现在蔚来也加入了这个行列。 据报道&#xff0c;蔚来手机已于本月19日通过了工信部无线电核准&#xff0c;设备型号N2301&#xff0c;支持2G、联通…

OpenAI秘史公开:马斯克和奥特曼的战争,与钱无关

编译 | 蔓蔓周 毕昊天 首图来源&#xff1a;WIRED OpenAI 成立于2015年&#xff0c;由马斯克&#xff08;Elon Musk&#xff09;和里德霍夫曼&#xff08;Reid Hoffman&#xff09;等科技界的亿万富翁共同出资创办。 但在2018年初&#xff0c;马斯克断然撤销了一笔巨额资金后拂…

探讨GPT-4有望成为通用人工智能的基础,引领未来AI技术趋势

前言 从去年11月底至今&#xff0c;ChatGPT火爆全球&#xff0c;国内外关于ChatGPT的讨论热度持续不减&#xff0c;尤其是技术圈里面几乎每天都在讨论和使用ChatGPT&#xff0c;以及各大头部互联网巨头纷纷踏入ChatGPT产品的研发大潮中&#xff0c;大家都想从ChatGPT这个新风口…

构建无服务器 ChatGPT 支持的简历助手 - 基础(二)

之前我们制作了一个简洁的小命令行工具&#xff0c;可以用来帮助我们构建更好的简历。现在我们将该应用程序部署到云中&#xff01; 我将使用 AWS CDK&#xff0c;因为我喜欢它&#xff0c;而且它使此类事情变得相对简单。如果愿意&#xff0c;您当然可以将这些说明改编为 Ter…

巴比特 | 元宇宙每日必读:2026年,互联网上90%的内容或由AI创建,科技大公司如何阻止虚假信息?...

摘要&#xff1a;据澎湃新闻报道&#xff0c;主流的AI生成工具如ChatGPT、DALL-E、Midjourney降低了创建虚假图像、视频和文本的难度和成本&#xff0c;使网络上的AI生成内容泛滥且难以分辨。欧盟执法机构“欧洲刑警组织&#xff08;Europol&#xff09;”的一份报告预测&#…

MasterGo入选36氪「下一个百亿规模AIGC产品」,持续探索AI+界面设计的新未来

新技术带动了 AI、云计算、芯片等大模型相关的产业链各个环节的发展跃迁。热潮奔涌&#xff0c;谁能成为 AGI 时代现象级产品&#xff1f;谁将站在热潮的巅峰定义和捕捉新的机会&#xff1f; 经过大量的调研实践&#xff0c;36氪于日前公布《中国ChatGPT梦之队&下一个百亿…

Notepad++统计文本字数

Notepad简介 Notepad 是免费的、开源编辑器和支持多种语言。它运行在MS Windows环境中&#xff0c;其使用受GPL许可证约束。 基于强大的编辑组件Scintilla&#xff0c;Notepad 是用C 编写的&#xff0c;并使用纯Win32 API和STL来确保更高的执行速度和更小的程序尺寸。通过优化…

如何快速统计网站所有页面的文本字数

文章目录 前言一、WinHTTrack Website Copier是什么&#xff1f;二、WinHTTrack Website Copier使用步骤三、什么是Python?四、Python实现的功能 前言 实现快速统计网站所有页面的文本字数&#xff0c;需要具备两个条件&#xff1a; 1.获取该网站的所有页面的html文件 2.提取…

小红书代运营 ,小红书运营必备的15个模型1.0版,建议收藏

文/企飞薯 本文一共4983字 大家好&#xff0c;我是小红书代运营圈的主理人的企飞薯。我们一直在研究小红书生态营销。 近年来小红书随着用户体量壮大和平台多元化发展&#xff0c;用户的兴趣点&#xff0c;早已从美妆独大变为渗透生活领域的各个方面。 据小红书最新数据显示&a…

移动软件开发五——仿微信发现界面

2022年夏季《移动软件开发》实验报告 一、实验目标 模仿微信“发现”页创建列表布局&#xff0c;学习使用Textview imageview、LinearLayout 二、实验步骤 1. 搭建开发环境 在此之前我的电脑已经安装并使用过android studio和java sdk 详情参见我大一写的博客 安卓小白实…

用AS实现微信界面设计

提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 设计目标一、结果展示二、top.xml三、bottom.xml四、4个fragment.xml五、activity_main.xml六、java文件总结仓库 设计目标 提示&#xff1a;这里可以添加本文要记…

仿QQ聊天软件(登录界面、好友界面、聊天界面)-Java(Swing、Socket)

文章目录 一、项目结构二、项目功能三、制作界面&#xff08;一&#xff09;、登录界面的制作&#xff08;二&#xff09;、好友列表界面&#xff08;三&#xff09;、聊天界面 四、制作服务器五、设计通信协议六、项目缺点 学习了socket通信后&#xff0c;就想来制作一个类似Q…

Android仿微信气泡聊天界面设计

微信的气泡聊天是仿iPhone自带短信而设计出来的&#xff0c;不过感觉还不错可以尝试一下仿着微信的气泡聊天做一个Demo&#xff0c;给大家分享一下&#xff01;效果图如下&#xff1a; 气泡聊天最终要的是素材&#xff0c;要用到9.png文件的素材&#xff0c;这样气泡会随着聊天…

计算机系统大作业

摘 要 尽管hello程序非常简单&#xff0c;但是为了让它实现运行&#xff0c;系统的每个主要组成部分都需要协调工作&#xff0c;本篇论文就是解释说明在系统上执行hello程序时&#xff0c;系统发生了什么以及为什么会这样。 我们通过跟踪hello程序的生命周期开始系统讲解——…

程序人生-Hello’s P2P

计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 未来技术 学   号 2021112807 班 级 21WL021 学 生 马铭杨 指 导 教 师 史先俊 …

Google reCAPTCHA ----------验证码

现有验证码的产品形态调研范围如下&#xff0c;基本涵盖了比较主流的验证码平台&#xff1a; Google reCAPTCHA极验阿里云腾讯云点触网易易盾螺丝帽FunCaptcha 产品背景 ‍‍reCAPTCHA起初是由CMU&#xff08;卡耐基梅隆大学&#xff09;设计&#xff0c;将OCR&#xff08;光…

关于captcha验证码演示

转载&#xff1a;https://blog.csdn.net/dayonglove2018/article/details/106612549 import com.wf.captcha.SpecCaptcha; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springfr…

使用reCAPTCHA实现验证码

文章目录 HTML代码JS代码Java代码项目开源地址参考资料 HTML代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>登录</title><link rel"stylesheet" type"text/css" href"css/json-v…

手把手教你验证码检验的登录

在网站实际应用过程中&#xff0c;为了防止网站登录接口被机器人轻易地使用&#xff0c;产生一些没有意义的用户数据&#xff0c;所以&#xff0c;采用验证码进行一定程度上的拦截&#xff0c;当然&#xff0c;我们采用的还是一个数字与字母结合的图片验证码形式&#xff0c;后…

如何识别高级的验证码

http://sebug.net/paper/pst_WebZine/pst_WebZine_0x02/html/PSTZine_0x02_0x09.html Ph4nt0m Security TeamIssue 0x02, Phile #0x09 of 0x0A|---------------------------------------------------------------------------| |-----------------------[ 如何识别高级的验证码…