首页 > 其他分享 >评估链判定正确答案和模型答案是否一致

评估链判定正确答案和模型答案是否一致

时间:2024-04-07 16:55:32浏览次数:30  
标签:llm chain question langchain 判定 答案 answer import 评估

from langchain.chains import RetrievalQA
from langchain.evaluation import QAEvalChain
from langchain_community.document_loaders import TextLoader
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.llms.ollama import Ollama
from langchain_community.vectorstores.faiss import FAISS    #使用 vectorstore 进行存储
from langchain_text_splitters import RecursiveCharacterTextSplitter

llm = Ollama(model="qwen:7b")

loader = TextLoader("/home/cmcc/server/file/测试文档.txt", encoding="utf-8")

doc = loader.load()

text_splitter = RecursiveCharacterTextSplitter(chunk_size=3000, chunk_overlap=400)

docs = text_splitter.split_documents(doc)

#向量搜索引擎
embeddings = OllamaEmbeddings()

docsearch = FAISS.from_documents(docs, embeddings)
# FAISS.save_local("Ver", "index")

#创建你的检索引擎  retriever 设置检索的数据库是那个
chain = RetrievalQA.from_chain_type(llm = llm, chain_type="stuff", retriever=docsearch.as_retriever(), input_key = "question")

question_answers = [
    {"question":"小明的哥哥是谁", "answer":"小雄"},
    {"question":"小刘的哥哥是谁", "answer":"小蓝"},
    {"question":"小张的姐姐是谁", "answer":"小红"},

]

predictions = chain.apply(question_answers)
print(predictions)
#启动评估链
eval_chain = QAEvalChain.from_llm(llm)

#让模型自己评分,下面代码帮助 eval_chain 指导不同部分在哪里
graed_outputs = eval_chain.evaluate(question_answers,
                                    predictions,
                                    question_key="question",
                                    prediction_key="result",
                                    answer_key="answer"
                                    )
print(graed_outputs)

# query = "小张的姐姐是谁"
# response = chain.run(query)
# print(response)

 

标签:llm,chain,question,langchain,判定,答案,answer,import,评估
From: https://www.cnblogs.com/redhat0019/p/18119404

相关文章

  • 本地知识库解锁答案
    fromlangchain.chainsimportRetrievalQAfromlangchain_community.document_loadersimportTextLoaderfromlangchain_community.embeddingsimportOllamaEmbeddingsfromlangchain_community.llms.ollamaimportOllamafromlangchain_community.vectorstores.faiss......
  • 中国电子学会(CEIT)2021年12月真题C语言软件编程等级考试四级(含详细解析答案)
    中国电子学会(CEIT)考评中心历届真题(含解析答案)C语言软件编程等级考试四级2021年12月编程题五道 总分:100分一、移动路线(25分)桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格......
  • 软件系统质量属性_2.面向架构评估的质量属性
        为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。1.性能     性能(Performance)是......
  • 【Mathematical Model】基于Python实现随机森林回归算法&特征重要性评估&线性拟合
    ​    前段时间在做遥感的定量反演,所以研究了一下回归算法,由于之前发的几篇博文都是定义好基础方程进行拟合的,不太满足我的需求。所以研究了一下随机森林回归的算法,之前使用随机森林都是做分类,这次做了回归算法也算是补全了RF算法的空缺了。今天抽空给大家分享一下使用P......
  • 【2024年5月备考新增】《软考真题分章练习(含答案解析) - 15 合同管理和法律法规(高项)》
    1题目合同管理_法律法规1、甲公司因业务开展需要,拟购买10部手机,便向乙公司发出传真,要求以2000元/台的价格购买10部手机,并要求乙公司在一周内送货上门。根据《中华人民共和国合同法》,甲公司向乙公司发出传真的行为属于()。A.邀请B.要约C.承诺D.要约邀请2、根据《......
  • 中国电子学会(CEIT)2021年09月真题C语言软件编程等级考试三级(含详细解析答案)
    中国电子学会(CEIT)考评中心历届真题(含解析答案)C语言软件编程等级考试三级2021年09月编程题五道 总分:100分一、菲波那契数列(20分)菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a......
  • 计算机毕业设计-基于Java+Springboot架构的学生心理咨询评估系统项目开发实战(附论文+
    大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。......
  • 二分答案跳石头游戏
    步骤: 输入:用户输入了三个整数,分别表示石头的总长度l,石头的数量n,以及最多可以撤去的石头数量m。初始化石头位置数组:创建一个长度为n+2的数组arr,用于存储每块石头的位置。数组的第一项和最后一项分别表示起点和终点的位置,因此初始化为0和l。计算最小相邻石头间距:循环......
  • CMT313个人投资组合评估方法
    课程评估形式模块代码:CMT313课程名称:软件工程评估题目:个人投资组合评估编号:第3个,共3个日期设置:19/02/2024提交日期和时间:春季工作周,2024年5月2日上午9:30反馈返回日期:2024年6月5日如果您因情有可原的情况获得延期,那么提交截止日期和返回日期将晚于上述日期。当您的延期获得批准时,......
  • 谷歌(Google)技术面试——在线评估问题(一)
    谷歌(Google)面试过程的第一步,你可能会收到一个在线评估链接。评估有效期为7天,包含两个编码问题,需要在一小时内完成。以下是一些供你练习的在线评估问题。在本章结尾处,还提供了有关Google面试不同阶段的更多详细信息。重复叠加字符串匹配给定两个字符串a和b,寻找重......