# 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

## 相关文档
- [技术文档](doc/document.md)
- [发布信息](doc/release.md)
- [评测资料](doc/eval-doc.md)
## 介绍
:star: eval-engine 是一个基于Java的评测引擎,功能包括:评测数据加载、评测接口调用、结果评估、结果上报。

- 评测数据加载:支持加载评测数据,已实现从本地或者远程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();
}
}
```