CMDCRAGArcana.Eval.ArcanaAdapter (cmdc_rag_arcana v0.5.0)

Copy Markdown View Source

Arcana Evaluation 与 cmdc_eval 的适配层。

本模块不重写 Arcana 的 evaluation 引擎,只做三件事:

  • 把 Arcana test case 转成 CMDCEval.Case
  • 调用 Arcana.Evaluation.run/1,并把 run / metrics 归一化成可放入 CMDCEval.Run.metadata 的 map。
  • 生成可传给 Arcana :retriever 的 search / ask / pipeline retriever。

Summary

Functions

返回 Arcana Evaluation retriever callback。

调用 Arcana Evaluation 并返回归一化 metadata。

把 Arcana Evaluation run 归一化为 CMDCEval.Run.metadata 友好 map。

把 Arcana test case 转成 CMDCEval.Case

批量转换 Arcana test cases。

Types

target()

@type target() ::
  :search | :ask | {:pipeline, keyword()} | (String.t(), keyword() -> term())

Functions

retriever(fun, opts)

@spec retriever(
  target(),
  keyword()
) :: (String.t(), keyword() -> term())

返回 Arcana Evaluation retriever callback。

该 callback 符合 Arcana Evaluation.run/1 的契约: (question, opts) -> {:ok, chunks} | {:ok, chunks, answer} | {:error, reason}

run(opts)

@spec run(keyword()) :: {:ok, map()} | {:error, term()}

调用 Arcana Evaluation 并返回归一化 metadata。

:target 可设为 :search:ask{:pipeline, opts} 或自定义 retriever。 测试中可传 evaluation: MyFakeEvaluation 替换 Arcana.Evaluation

run_metadata(run)

@spec run_metadata(map()) :: map()

把 Arcana Evaluation run 归一化为 CMDCEval.Run.metadata 友好 map。

to_cmdc_case(test_case, opts \\ [])

@spec to_cmdc_case(
  map(),
  keyword()
) :: CMDCEval.Case.t()

把 Arcana test case 转成 CMDCEval.Case

to_cmdc_cases(test_cases, opts \\ [])

@spec to_cmdc_cases(
  [map()],
  keyword()
) :: [CMDCEval.Case.t()]

批量转换 Arcana test cases。