camel.benchmarks 包

本页内容

camel.benchmarks 包#

子模块#

camel.benchmarks.apibank 模块#

class camel.benchmarks.apibank.APIBankBenchmark(save_to: str, processes: int = 1)[来源]#

基础类: BaseBenchmark

API-Bank基准测试改编自API-Bank: 一个用于工具增强型大语言模型的综合基准 <AlibabaResearch/DAMO-ConvAI>。

Parameters:
  • save_to (str) - 用于保存结果的文件。

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

从Github下载APIBank数据集和代码。

load(level: str, force_download: bool = False)[来源]#

加载APIBank基准测试数据集。

Parameters:
  • level (str) – 运行基准测试的级别。

  • force_download (bool, optional) – 是否强制下载数据。

run(agent: ChatAgent, level: Literal['level-1', 'level-2'], api_test_enabled=True, randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 运行基准测试的代理。

  • level (Literal['level-1', 'level-2']) - 运行基准测试的级别。

  • randomize (bool, optional) – 是否随机化数据。

  • api_test_enabled (bool) - 是否进行测试

  • 调用 (API) – (默认值: False)

  • subset (可选[int], 可选)

  • 运行. (数据的子集) – (默认值: None)

Returns:

基准测试的结果。

Return type:

字典[字符串, 任意类型]

class camel.benchmarks.apibank.APIBankSample(chat_history, apis, ground_truth)[来源]#

基类:object

用于加载数据集的APIBank示例。

classmethod from_chat_history(chat_history)[来源]#
class camel.benchmarks.apibank.Evaluator(samples: List[APIBankSample])[来源]#

基类:object

APIBank基准测试的评估器。

evaluate(sample_id, model_output)[来源]#
get_all_sample_ids()[来源]#
get_api_description(api_name)[来源]#
get_model_input(sample_id: int)[来源]#
camel.benchmarks.apibank.agent_call(messages: List[Dict], agent: ChatAgent)[来源]#

向代理内存添加消息并获取响应。

camel.benchmarks.apibank.calculate_rouge_l_score(reference, hypothesis)[来源]#

计算假设文本与参考文本之间的rouge l分数。

camel.benchmarks.apibank.get_api_call(model_output)[来源]#

从模型输出中解析API调用。

camel.benchmarks.apibank.process_messages(chat_history: List[Dict[str, Any]], prompt: str) List[Dict[str, str]][来源]#

将聊天历史处理为结构化格式以供进一步使用。

Parameters:
  • chat_history (List[Dict[str, Any]) - 表示聊天历史的字典列表。

  • prompt (str) - 要设置为系统消息的提示词。

Returns:

表示处理过的消息的字典列表

其中每个字典包含:

  • 'role': 消息的角色('system'、'user'或'assistant')

  • 'content': 消息内容,包括格式化后的

    API响应(如适用)

Return type:

List[Dict[str, str]]

camel.benchmarks.apibench 模块#

class camel.benchmarks.apibench.APIBenchBenchmark(data_dir: str, save_to: str, processes: int = 1)[来源]#

基础类: BaseBenchmark

APIBench基准测试改编自Gorilla: Large Language Model Connected with Massive APIs <https://huggingface.co/datasets/gorilla-llm/APIBench>。

Parameters:
  • data_dir (str) - 保存数据的目录。

  • save_to (str) - 用于保存结果的文件。

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

下载APIBench数据集。

load(dataset_name: str, force_download: bool = False)[来源]#

加载APIBench基准测试数据集。

Parameters:
  • dataset_name (str) - 要加载的特定数据集的名称。

  • force_download (bool, optional) – 是否强制下载数据。(默认: False)

run(agent: ChatAgent, dataset_name: Literal['huggingface', 'tensorflowhub', 'torchhub'], randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 运行基准测试的代理。

  • (Literal["huggingface" (dataset_name) – “tensorflowhub”, “torchhub”]): 用于运行基准测试的数据集。

:param“tensorflowhub”, “torchhub”]):

运行基准测试的数据集。

Parameters:
  • randomize (bool, optional) – 是否随机化数据。 (默认: False)

  • subset (可选[int], optional) – 要运行的数据子集。 (默认: None)

camel.benchmarks.apibench.ast_check(candidate_subtree_list, base_tree_list, dataset_name)[来源]#
camel.benchmarks.apibench.ast_parse(candidate)[来源]#
camel.benchmarks.apibench.encode_question(question: str, dataset_name: str) str[来源]#

将多个提示指令编码为单个字符串。

camel.benchmarks.apibench.evaluate_response(response, question_id, dataset_name, api_database, qa_pairs, ast_database)[来源]#
camel.benchmarks.apibench.get_all_sub_trees(root_node)[来源]#
camel.benchmarks.apibench.get_args(node, dataset_name)[来源]#

camel.benchmarks.base 模块#

class camel.benchmarks.base.BaseBenchmark(name: str, data_dir: str, save_to: str, processes: int = 1)[来源]#

基类: ABC

基准测试的基类。

name#

基准测试的名称。

Type:

字符串

data_dir#

数据目录的路径。

Type:

字符串

save_to#

保存结果的路径。

Type:

字符串

processes#

用于并行处理的进程数量。:(默认值: 1)

Type:

int

abstract download() BaseBenchmark[来源]#

下载基准测试数据。

Returns:

基准测试实例。

Return type:

BaseBenchmark

abstract load(force_download: bool = False) BaseBenchmark[来源]#

加载基准测试数据。

Parameters:

force_download (bool) - 是否强制下载数据。

Returns:

基准测试实例。

Return type:

BaseBenchmark

property results: List[Dict[str, Any]]#

获取结果。

Returns:

结果。

Return type:

List[Dict[str, Any]]

abstract run(agent: ChatAgent, on: Literal['train', 'valid', 'test'], randomize: bool = False, subset: int | None = None, *args, **kwargs) BaseBenchmark[来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 聊天代理。

  • on (str) – 运行基准测试所使用的数据分割。

  • randomize (bool) - 是否对数据进行随机化处理。

  • subset (int) – 运行基准测试的数据子集。

Returns:

基准测试实例。

Return type:

BaseBenchmark

property test: List[Dict[str, Any]]#

获取测试数据。

Returns:

测试数据。

Return type:

List[Dict[str, Any]]

property train: List[Dict[str, Any]]#

获取训练数据。

Returns:

训练数据。

Return type:

List[Dict[str, Any]]

property valid: List[Dict[str, Any]]#

获取验证数据。

Returns:

验证数据。

Return type:

List[Dict[str, Any]]

camel.benchmarks.gaia 模块#

class camel.benchmarks.gaia.DefaultGAIARetriever(url_and_api_key: Tuple[str, str] | None = None, vector_storage_local_path: str | None = None, storage_type: StorageType | None = None, embedding_model: BaseEmbedding | None = None)[来源]#

基类:AutoRetriever

GAIA基准测试的默认检索器。 该检索器使用camel中的AutoRetriever根据查询检索内容。

reset(**kwargs: Any) bool[来源]#

重置检索器。

Parameters:

**kwargs (Any) – 传递给检索器的关键字参数。

Returns:

重置是否成功。

Return type:

布尔值

retrieve(query: str, contents: List[str], **kwargs: Any) Dict[str, Any][来源]#

根据查询检索内容。

Parameters:
  • query (str) – 要搜索的查询语句。

  • contents (List[str]) – 要搜索的内容列表。

  • **kwargs (Any) – 传递给检索器的关键字参数。

Returns:

检索到的内容。

Return type:

字典[字符串, 任意类型]

class camel.benchmarks.gaia.GAIABenchmark(data_dir: str, save_to: str, retriever: RetrieverProtocol | None = None, processes: int = 1)[来源]#

基础类: BaseBenchmark

GAIA基准测试改编自“GAIA: a benchmark for General AI Assistants”

Parameters:
  • data_dir (str) - 保存数据的目录。

  • save_to (str) - 用于保存结果的文件。

  • retriever (可选[RetrieverProtocol]) – 要使用的检索器。 (默认值: None)

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

下载GAIA数据集。

get_final_answer(content: str) str[来源]#

从内容中获取最终答案。

Parameters:

内容 (str) – 需要从中提取最终答案的内容。

Returns:

最终答案。

Return type:

字符串

load(force_download=False)[来源]#

加载GAIA数据集。

Parameters:

force_download (bool, optional) - 是否强制下载数据。

normalize_number_str(number_str: str) float[来源]#
normalize_str(input_str, remove_punct=True) str[来源]#

规范化字符串。

Parameters:
  • input_str – 需要标准化的输入字符串。

  • remove_punct – 是否移除标点符号。

Returns:

标准化后的字符串。

Return type:

字符串

question_scorer(model_answer: str, ground_truth: str) bool[来源]#

GAIA基准测试的评分器。 https://huggingface.co/spaces/gaia-benchmark/leaderboard/blob/main/ scorer.py

Parameters:
  • model_answer (str) – 模型答案。

  • ground_truth (str) – 真实答案。

Returns:

模型的评分

Return type:

布尔值

run(agent: ChatAgent, on: Literal['train', 'valid', 'test'], level: int | List[int] | Literal['all'], randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 用于运行基准测试的代理。

  • on (Literal["valid", "test"]) – 运行基准测试的数据集。

  • level (Union[int, List[int], Literal["all"]]) – 运行基准测试的级别。

  • randomize (bool, optional) – 是否随机化数据。 (默认: False)

  • subset (可选[int], optional) – 要运行的数据子集。 (默认: None)

Returns:

基准测试的结果。

Return type:

字典[字符串, 任意类型]

split_string(s: str, char_list: List[str] | None = None) list[str][来源]#

根据字符列表分割字符串。

Parameters:
  • s (str) – 要分割的字符串。

  • char_list (可选[列表[字符串]], 可选) – 用于分割的字符列表。 (默认值: None)

property train#

获取训练集。

class camel.benchmarks.gaia.RetrieverProtocol(*args, **kwargs)[来源]#

基类: Protocol

检索器类的协议。任何实现此协议的检索器类都可以在基准测试类中使用。

reset(**kwargs) bool[来源]#

重置检索器。 某些基准测试可能需要在每次查询后重置检索器。

Parameters:

**kwargs – 额外的关键字参数。

Returns:

如果重置成功则为True,否则为False。

Return type:

布尔值

retrieve(query: str, contents: List[str], **kwargs: Dict[str, Any]) Dict[str, Any][来源]#

检索与查询相关的内容。

Parameters:
  • query (str) – 用于检索内容的查询语句。

  • contents (List[str]) – 要搜索的内容列表。

  • **kwargs (Dict[str, Any]) - 额外的关键字参数。

Returns:

查询相关内容。

Return type:

字典[字符串, 任意类型]

camel.benchmarks.nexus 模块#

class camel.benchmarks.nexus.NexusBenchmark(data_dir: str, save_to: str, processes: int = 1)[来源]#

基础类: BaseBenchmark

Nexus Function Calling Benchmark 改编自 NexusRaven V2 函数调用基准测试 <https://huggingface.co/collections/Nexusflow/nexusraven-v2-function-calling-benchmark-657a597fb84dbe7a09ebfc3e>.

Parameters:
  • data_dir (str) - 保存数据的目录。

  • save_to (str) - 用于保存结果的文件。

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

下载Nexus功能调用基准测试数据集。

load(dataset_name: str, force_download: bool = False)[来源]#

加载Nexus基准测试数据集。

Parameters:
  • dataset_name (str) - 要加载的特定数据集的名称。

  • force_download (bool) - 是否强制下载数据。

run(agent: ChatAgent, task: Literal['NVDLibrary', 'VirusTotal', 'OTX', 'PlacesAPI', 'ClimateAPI', 'VirusTotal-ParallelCalls', 'VirusTotal-NestedCalls', 'NVDLibrary-NestedCalls'], randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 用于运行基准测试的代理。

  • (字面量["NVDLibrary" (任务)

  • "VirusTotal"

  • "OTX"

:param : :param “PlacesAPI”: :param “ClimateAPI”: :param “VirusTotal-ParallelCalls”: :param : :param “VirusTotal-NestedCalls”: :param : :param “NVDLibrary-NestedCalls”]): 运行基准测试的任务。 :param randomize: 是否随机化数据。

(默认值: False)

Parameters:

subset (可选[int], 可选) – 要运行的数据子集。 (默认: None)

Returns:

基准测试的结果。

Return type:

字典[字符串, 任意类型]

property train#

获取训练集。

class camel.benchmarks.nexus.NexusSample(input: str, output: str)[来源]#

基类:object

Nexus基准测试数据集样本。

input: str#
output: str#
class camel.benchmarks.nexus.NexusTool(function_calls: str, descriptions: str)[来源]#

基类:object

Nexus基准测试工具

descriptions: str#
function_calls: str#
camel.benchmarks.nexus.compare_function_calls(agent_call: str, ground_truth_call: str) bool[来源]#

比较agent_call和ground_truth_call的函数名称和参数。 :param agent_call: 代理调用的函数。 :type agent_call: str :param ground_truth_call: 真实函数调用。 :type ground_truth_call: str

Returns:

  • True 如果函数名称和参数匹配。

  • False 否则。

camel.benchmarks.nexus.construct_prompt(input: str, tools: str) str[来源]#

根据工具和输入构建提示。

camel.benchmarks.nexus.construct_tool_descriptions(dataset_name: str) str[来源]#

从函数定义和描述中构建工具描述。

camel.benchmarks.nexus.parse_function_call(call: str) Tuple[str | None, List[Any] | None, Dict[str, Any] | None][来源]#

解析函数调用字符串以提取函数名称、位置参数和关键字参数,包括嵌套函数调用。

Parameters:

call (str) – 一个格式为func(arg1, arg2, kwarg=value)的字符串。

Returns:

(函数名 (str), 位置参数 (list), 关键字参数 (dict)) 或 (None, None, None).

Return type:

元组

camel.benchmarks.ragbench 模块#

class camel.benchmarks.ragbench.RAGBenchBenchmark(processes: int = 1, subset: Literal['covidqa', 'cuad', 'delucionqa', 'emanual', 'expertqa', 'finqa', 'hagrid', 'hotpotqa', 'msmarco', 'pubmedqa', 'tatqa', 'techqa'] = 'hotpotqa', split: Literal['train', 'test', 'validation'] = 'test')[来源]#

基础类: BaseBenchmark

RAGBench 用于评估RAG性能的基准测试。

该基准测试使用rungalileo/ragbench数据集来评估检索增强生成(RAG)系统。它测量了https://arxiv.org/abs/2407.11005中描述的上下文相关性和忠实度指标。

Parameters:
  • processes (int, optional) – 并行处理的进程数量。

  • subset (str, optional) – 要使用的数据集子集(例如:"hotpotqa")。

  • split (str, optional) – 要使用的数据集分割(例如:"test")。

download()[来源]#

下载RAGBench数据集。

load(force_download: bool = False)[来源]#

加载RAGBench数据集。

Parameters:

force_download (bool, optional) – 是否强制下载数据。

run(agent: ChatAgent, auto_retriever: AutoRetriever) Dict[str, float | None][来源]#

运行基准评估。

Parameters:
  • agent (ChatAgent) – 用于生成答案的聊天代理。

  • auto_retriever (AutoRetriever) – 用于查找相关上下文的检索器。

Returns:

评估指标字典。

Return type:

字典[字符串, 可选[浮点数]]

class camel.benchmarks.ragbench.RagasFields[来源]#

基类:object

RAGAS评估字段名称的常量。

INPUT_ANSWER = 'answer'#
INPUT_CONTEXT = 'contexts'#
INPUT_QUESTION = 'question'#
camel.benchmarks.ragbench.annotate_dataset(dataset: Dataset, context_call: Callable[[Dict[str, Any]], List[str]] | None, answer_call: Callable[[Dict[str, Any]], str] | None) Dataset[来源]#

通过使用提供的函数添加上下文和答案来标注数据集。

Parameters:
  • dataset (Dataset) – 需要标注的输入数据集。

  • context_call (可选[Callable[[Dict[str, Any]], List[str]]]) - 用于为每个示例生成上下文的函数。

  • answer_call (Optional[Callable[[Dict[str, Any]], str]]) - 用于为每个示例生成答案的函数。

Returns:

带有添加上下文和/或答案的标注数据集。

Return type:

数据集

camel.benchmarks.ragbench.auroc(trues: Sequence[bool], preds: Sequence[float]) float[来源]#

计算接收者操作特征曲线下面积(AUROC)。

Parameters:
  • trues (Sequence[bool]) – 真实二元值。

  • preds (Sequence[float]) - 预测概率值。

Returns:

AUROC分数。

Return type:

浮点数

camel.benchmarks.ragbench.ragas_calculate_metrics(dataset: Dataset, pred_context_relevance_field: str | None, pred_faithfulness_field: str | None, metrics_to_evaluate: List[str] | None = None, ground_truth_context_relevance_field: str = 'relevance_score', ground_truth_faithfulness_field: str = 'adherence_score') Dict[str, float | None][来源]#

计算RAGAS评估指标。

Parameters:
  • dataset (Dataset) – 包含预测值和真实值的数据集。

  • pred_context_relevance_field (可选[str]) - 用于预测上下文相关性的字段名称。

  • pred_faithfulness_field (可选[str]) - 用于预测忠实度的字段名称。

  • metrics_to_evaluate (Optional[List[str]]) - 需要评估的指标列表。

  • ground_truth_context_relevance_field (str) – 用于真实相关性评估的字段名称。

  • ground_truth_faithfulness_field (str) – 用于真实情况遵循度的字段名称。

Returns:

计算指标的字典。

Return type:

字典[字符串, 可选[浮点数]]

camel.benchmarks.ragbench.ragas_evaluate_dataset(dataset: Dataset, contexts_field_name: str | None, answer_field_name: str | None, metrics_to_evaluate: List[str] | None = None) Dataset[来源]#

使用RAGAS指标评估数据集。

Parameters:
  • dataset (Dataset) - 要评估的输入数据集。

  • contexts_field_name (Optional[str]) - 包含上下文的字段名称。

  • answer_field_name (可选[str]) - 包含答案的字段名称。

  • metrics_to_evaluate (可选[列表[字符串]]) - 需要评估的指标列表。

Returns:

添加了评估指标的数据集。

Return type:

数据集

camel.benchmarks.ragbench.rmse(input_trues: Sequence[float], input_preds: Sequence[float]) float | None[来源]#

计算均方根误差(RMSE)。

Parameters:
  • input_trues (Sequence[float]) - 真实值。

  • input_preds (Sequence[float]) - 预测值。

Returns:

RMSE值,如果输入长度不同则为None。

Return type:

可选[浮点数]

模块内容#

class camel.benchmarks.APIBankBenchmark(save_to: str, processes: int = 1)[来源]#

基础类: BaseBenchmark

API-Bank基准测试改编自API-Bank: 一个用于工具增强型大语言模型的综合基准 <AlibabaResearch/DAMO-ConvAI>。

Parameters:
  • save_to (str) - 用于保存结果的文件。

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

从Github下载APIBank数据集和代码。

load(level: str, force_download: bool = False)[来源]#

加载APIBank基准测试数据集。

Parameters:
  • level (str) – 运行基准测试的级别。

  • force_download (bool, optional) – 是否强制下载数据。

run(agent: ChatAgent, level: Literal['level-1', 'level-2'], api_test_enabled=True, randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 运行基准测试的代理。

  • level (Literal['level-1', 'level-2']) - 运行基准测试的级别。

  • randomize (bool, optional) – 是否随机化数据。

  • api_test_enabled (bool) - 是否进行测试

  • 调用 (API) – (默认值: False)

  • subset (可选[int], 可选)

  • 运行. (数据的子集) – (默认值: None)

Returns:

基准测试的结果。

Return type:

字典[字符串, 任意类型]

class camel.benchmarks.APIBenchBenchmark(data_dir: str, save_to: str, processes: int = 1)[来源]#

基础类: BaseBenchmark

APIBench基准测试改编自Gorilla: Large Language Model Connected with Massive APIs <https://huggingface.co/datasets/gorilla-llm/APIBench>。

Parameters:
  • data_dir (str) - 保存数据的目录。

  • save_to (str) - 用于保存结果的文件。

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

下载APIBench数据集。

load(dataset_name: str, force_download: bool = False)[来源]#

加载APIBench基准测试数据集。

Parameters:
  • dataset_name (str) - 要加载的特定数据集的名称。

  • force_download (bool, optional) – 是否强制下载数据。(默认: False)

run(agent: ChatAgent, dataset_name: Literal['huggingface', 'tensorflowhub', 'torchhub'], randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 运行基准测试的代理。

  • (Literal["huggingface" (dataset_name) – “tensorflowhub”, “torchhub”]): 用于运行基准测试的数据集。

:param“tensorflowhub”, “torchhub”]):

运行基准测试的数据集。

Parameters:
  • randomize (bool, optional) – 是否随机化数据。 (默认: False)

  • subset (可选[int], optional) – 要运行的数据子集。 (默认: None)

class camel.benchmarks.BaseBenchmark(name: str, data_dir: str, save_to: str, processes: int = 1)[来源]#

基类: ABC

基准测试的基类。

name#

基准测试的名称。

Type:

字符串

data_dir#

数据目录的路径。

Type:

字符串

save_to#

保存结果的路径。

Type:

字符串

processes#

用于并行处理的进程数量。:(默认值: 1)

Type:

int

abstract download() BaseBenchmark[来源]#

下载基准测试数据。

Returns:

基准测试实例。

Return type:

BaseBenchmark

abstract load(force_download: bool = False) BaseBenchmark[来源]#

加载基准测试数据。

Parameters:

force_download (bool) - 是否强制下载数据。

Returns:

基准测试实例。

Return type:

BaseBenchmark

property results: List[Dict[str, Any]]#

获取结果。

Returns:

结果。

Return type:

List[Dict[str, Any]]

abstract run(agent: ChatAgent, on: Literal['train', 'valid', 'test'], randomize: bool = False, subset: int | None = None, *args, **kwargs) BaseBenchmark[来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 聊天代理。

  • on (str) – 运行基准测试所使用的数据分割。

  • randomize (bool) - 是否对数据进行随机化处理。

  • subset (int) – 运行基准测试的数据子集。

Returns:

基准测试实例。

Return type:

BaseBenchmark

property test: List[Dict[str, Any]]#

获取测试数据。

Returns:

测试数据。

Return type:

List[Dict[str, Any]]

property train: List[Dict[str, Any]]#

获取训练数据。

Returns:

训练数据。

Return type:

List[Dict[str, Any]]

property valid: List[Dict[str, Any]]#

获取验证数据。

Returns:

验证数据。

Return type:

List[Dict[str, Any]]

class camel.benchmarks.DefaultGAIARetriever(url_and_api_key: Tuple[str, str] | None = None, vector_storage_local_path: str | None = None, storage_type: StorageType | None = None, embedding_model: BaseEmbedding | None = None)[来源]#

基类:AutoRetriever

GAIA基准测试的默认检索器。 该检索器使用camel中的AutoRetriever根据查询检索内容。

reset(**kwargs: Any) bool[来源]#

重置检索器。

Parameters:

**kwargs (Any) – 传递给检索器的关键字参数。

Returns:

重置是否成功。

Return type:

布尔值

retrieve(query: str, contents: List[str], **kwargs: Any) Dict[str, Any][来源]#

根据查询检索内容。

Parameters:
  • query (str) – 要搜索的查询语句。

  • contents (List[str]) – 要搜索的内容列表。

  • **kwargs (Any) – 传递给检索器的关键字参数。

Returns:

检索到的内容。

Return type:

字典[字符串, 任意类型]

class camel.benchmarks.GAIABenchmark(data_dir: str, save_to: str, retriever: RetrieverProtocol | None = None, processes: int = 1)[来源]#

基础类: BaseBenchmark

GAIA基准测试改编自“GAIA: a benchmark for General AI Assistants”

Parameters:
  • data_dir (str) - 保存数据的目录。

  • save_to (str) - 用于保存结果的文件。

  • retriever (可选[RetrieverProtocol]) – 要使用的检索器。 (默认值: None)

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

下载GAIA数据集。

get_final_answer(content: str) str[来源]#

从内容中获取最终答案。

Parameters:

内容 (str) – 需要从中提取最终答案的内容。

Returns:

最终答案。

Return type:

字符串

load(force_download=False)[来源]#

加载GAIA数据集。

Parameters:

force_download (bool, optional) - 是否强制下载数据。

normalize_number_str(number_str: str) float[来源]#
normalize_str(input_str, remove_punct=True) str[来源]#

规范化字符串。

Parameters:
  • input_str – 需要标准化的输入字符串。

  • remove_punct – 是否移除标点符号。

Returns:

标准化后的字符串。

Return type:

字符串

question_scorer(model_answer: str, ground_truth: str) bool[来源]#

GAIA基准测试的评分器。 https://huggingface.co/spaces/gaia-benchmark/leaderboard/blob/main/ scorer.py

Parameters:
  • model_answer (str) – 模型答案。

  • ground_truth (str) – 真实答案。

Returns:

模型的评分

Return type:

布尔值

run(agent: ChatAgent, on: Literal['train', 'valid', 'test'], level: int | List[int] | Literal['all'], randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 用于运行基准测试的代理。

  • on (Literal["valid", "test"]) – 运行基准测试的数据集。

  • level (Union[int, List[int], Literal["all"]]) – 运行基准测试的级别。

  • randomize (bool, optional) – 是否随机化数据。 (默认: False)

  • subset (可选[int], optional) – 要运行的数据子集。 (默认: None)

Returns:

基准测试的结果。

Return type:

字典[字符串, 任意类型]

split_string(s: str, char_list: List[str] | None = None) list[str][来源]#

根据字符列表分割字符串。

Parameters:
  • s (str) – 要分割的字符串。

  • char_list (可选[列表[字符串]], 可选) – 用于分割的字符列表。 (默认值: None)

property train#

获取训练集。

class camel.benchmarks.NexusBenchmark(data_dir: str, save_to: str, processes: int = 1)[来源]#

基础类: BaseBenchmark

Nexus Function Calling Benchmark 改编自 NexusRaven V2 函数调用基准测试 <https://huggingface.co/collections/Nexusflow/nexusraven-v2-function-calling-benchmark-657a597fb84dbe7a09ebfc3e>.

Parameters:
  • data_dir (str) - 保存数据的目录。

  • save_to (str) - 用于保存结果的文件。

  • processes (int, optional) – 要使用的进程数量。 (默认值: 1)

download()[来源]#

下载Nexus功能调用基准测试数据集。

load(dataset_name: str, force_download: bool = False)[来源]#

加载Nexus基准测试数据集。

Parameters:
  • dataset_name (str) - 要加载的特定数据集的名称。

  • force_download (bool) - 是否强制下载数据。

run(agent: ChatAgent, task: Literal['NVDLibrary', 'VirusTotal', 'OTX', 'PlacesAPI', 'ClimateAPI', 'VirusTotal-ParallelCalls', 'VirusTotal-NestedCalls', 'NVDLibrary-NestedCalls'], randomize: bool = False, subset: int | None = None) Dict[str, Any][来源]#

运行基准测试。

Parameters:
  • agent (ChatAgent) – 用于运行基准测试的代理。

  • (字面量["NVDLibrary" (任务)

  • "VirusTotal"

  • "OTX"

:param : :param “PlacesAPI”: :param “ClimateAPI”: :param “VirusTotal-ParallelCalls”: :param : :param “VirusTotal-NestedCalls”: :param : :param “NVDLibrary-NestedCalls”]): 运行基准测试的任务。 :param randomize: 是否随机化数据。

(默认值: False)

Parameters:

subset (可选[int], 可选) – 要运行的数据子集。 (默认: None)

Returns:

基准测试的结果。

Return type:

字典[字符串, 任意类型]

property train#

获取训练集。

class camel.benchmarks.RAGBenchBenchmark(processes: int = 1, subset: Literal['covidqa', 'cuad', 'delucionqa', 'emanual', 'expertqa', 'finqa', 'hagrid', 'hotpotqa', 'msmarco', 'pubmedqa', 'tatqa', 'techqa'] = 'hotpotqa', split: Literal['train', 'test', 'validation'] = 'test')[来源]#

基础类: BaseBenchmark

RAGBench 用于评估RAG性能的基准测试。

该基准测试使用rungalileo/ragbench数据集来评估检索增强生成(RAG)系统。它测量了https://arxiv.org/abs/2407.11005中描述的上下文相关性和忠实度指标。

Parameters:
  • processes (int, optional) – 并行处理的进程数量。

  • subset (str, optional) – 要使用的数据集子集(例如:"hotpotqa")。

  • split (str, optional) – 要使用的数据集分割(例如:"test")。

download()[来源]#

下载RAGBench数据集。

load(force_download: bool = False)[来源]#

加载RAGBench数据集。

Parameters:

force_download (bool, optional) – 是否强制下载数据。

run(agent: ChatAgent, auto_retriever: AutoRetriever) Dict[str, float | None][来源]#

运行基准评估。

Parameters:
  • agent (ChatAgent) – 用于生成答案的聊天代理。

  • auto_retriever (AutoRetriever) – 用于查找相关上下文的检索器。

Returns:

评估指标字典。

Return type:

字典[字符串, 可选[浮点数]]