# eval-engine **Repository Path**: skeletron2011/eval-engine ## Basic Information - **Project Name**: eval-engine - **Description**: 基于Java的评测引擎 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2025-07-11 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: testing **Tags**: 评测, AI评测, 执行引擎, 大模型评测 ## README # eval-engine ![eval-engine-logo.jpg](doc/images/eval-engine-logo.jpg) ## 相关文档 - [技术文档](doc/document.md) - [发布信息](doc/release.md) - [评测资料](doc/eval-doc.md) ## 介绍 :star: eval-engine 是一个基于Java的评测引擎,功能包括:评测数据加载、评测接口调用、结果评估、结果上报。 ![img.png](doc/images/img.png) - 评测数据加载:支持加载评测数据,已实现从本地或者远程Excel文件加载数据,也可以扩展DataLoader类实现自定义的评测数据加载。 - 评测接口调用:支持调用评测接口,获取评测结果,已实现调用Http流式&非流式接口调用,也可扩展ApiCompletion类实现自定义的接口调用。 - 结果评估:支持对评测结果进行评估,没有实现任何评估其,需要扩展Scorer类实现自定义的评估器。 - 结果上报:支持将评测结果上报到指定的数据源,已实现导出结果到本地Excel,可扩展Reporter类实现自定义的结果上报。 ## 快速入门 ### 引入依赖 ```xml io.gitee.skeletron2011 eval-engine 0.0.5 ``` ### 快速实现一个评测代码 ```java import org.evaltool.evalengine.eval.model.ApiCompletionResult; import org.evaltool.evalengine.eval.model.DataItem; import org.evaltool.evalengine.eval.model.InputData; import org.evaltool.evalengine.eval.model.ScorerResult; import org.evaltool.evalengine.eval.node.api.ApiCompletion; import org.evaltool.evalengine.eval.node.dataloader.DataLoader; import org.evaltool.evalengine.eval.node.reporter.Reporter; import org.evaltool.evalengine.eval.node.scorer.Scorer; import org.evaltool.evalengine.workflow.WorkflowBuilder; import org.testng.annotations.Test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class EvalTest { @Test public void test() { WorkflowBuilder builder = new WorkflowBuilder(); // 评测数据集加载器 DataLoader dataLoader = new DataLoader() { @Override public List prepareDataList() { List inputDatas = new ArrayList<>(); inputDatas.add(new InputData(new HashMap<>(Map.of("query", "hello, world!")))); return inputDatas; } }; // 接口调用器 ApiCompletion apiCompletion = new ApiCompletion() { @Override protected ApiCompletionResult invoke(DataItem dataItem) { return new ApiCompletionResult(new HashMap<>(Map.of("reply", "hi!"))); } }; // 评估器 Scorer scorer = new Scorer("评估器测试") { @Override public ScorerResult eval(DataItem dataItem) { return new ScorerResult("评估指标1", 1.0, "通过", null); } }; // 结果上报器 Reporter reporter = new Reporter() { @Override protected void report(List items) { items.forEach(System.out::println); } }; // 构建&执行评测工作流 builder.addNodes(dataLoader, apiCompletion, scorer, reporter) .addDependency(dataLoader, apiCompletion) .addDependency(apiCompletion, scorer) .addDependency(scorer, reporter).build().execute(); } } ```