Skip to content

为RAG生成合成测试集

RAG 测试集生成

这份简单的指南将帮助你使用自己的文档生成用于评估 RAG 管道的测试集。

加载示例文档

为了本教程的目的,我们将使用来自此仓库的示例文档。你可以将其替换为你自己的文档。

git clone https://huggingface.co/datasets/explodinggradients/Sample_Docs_Markdown

加载文档

现在我们将使用 DirectoryLoader 从示例数据集中加载文档,这是来自 langchain_community 的文档加载器之一。你也可以使用来自 llama_index 的任何加载器。

from langchain_community.document_loaders import DirectoryLoader

path = "Sample_Docs_Markdown/"
loader = DirectoryLoader(path, glob="**/*.md")
docs = loader.load()

选择你的 LLM

你可以选择使用任何你选择的 LLM

本指南利用OpenAI运行一些指标,因此请确保您已准备好OpenAI密钥,并在您的环境中可用。

import os
os.environ["OPENAI_API_KEY"] = "your-openai-key"
将LLMs封装在LangchainLLMWrapper
from ragas.llms import LangchainLLMWrapper
from langchain_openai import ChatOpenAI
evaluator_llm = LangchainLLMWrapper(ChatOpenAI(model="gpt-4o"))

首先,您需要设置您的AWS凭证和配置

config = {
    "credentials_profile_name": "your-profile-name",  # 例如 "default"
    "region_name": "your-region-name",  # 例如 "us-east-1"
    "model_id": "your-model-id",  # 例如 "anthropic.claude-v2"
    "model_kwargs": {"temperature": 0.4},
}
定义您的LLMs
from langchain_aws.chat_models import BedrockChat
from ragas.llms import LangchainLLMWrapper
evaluator_llm = LangchainLLMWrapper(BedrockChat(
    credentials_profile_name=config["credentials_profile_name"],
    region_name=config["region_name"],
    endpoint_url=f"https://bedrock-runtime.{config['region_name']}.amazonaws.com",
    model_id=config["model_id"],
    model_kwargs=config["model_kwargs"],
))

生成测试集

现在我们将使用加载的文档和 LLM 设置运行测试生成。如果你使用 llama_index 加载文档,请改用 generate_with_llama_index_docs 方法。

from ragas.testset import TestsetGenerator

generator = TestsetGenerator(llm=generator_llm)
dataset = generator.generate_with_langchain_docs(docs, test_size=10)

导出

你现在可以导出并检查生成的测试集。

dataset.to_pandas()