feat: 按模型上下文自动配置智能体压缩阈值
- 从 llm.json 解析上下文与输出上限,并增强短模型 ID 匹配 - 切换模型、保存和试运行时按预算公式重算,目录缺失时回退 30K - 修复模型列表接口未返回能力元数据
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package tech.easyflow.admin.controller.ai;
|
||||
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
import tech.easyflow.ai.entity.Model;
|
||||
import tech.easyflow.ai.service.ModelService;
|
||||
import tech.easyflow.common.domain.Result;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* 模型列表控制器测试。
|
||||
*/
|
||||
public class ModelControllerTest {
|
||||
|
||||
/**
|
||||
* 验证模型列表使用包含目录能力元数据的服务查询。
|
||||
*/
|
||||
@Test
|
||||
public void listShouldReturnCapabilityDecoratedModels() {
|
||||
ModelService service = mock(ModelService.class);
|
||||
Model query = new Model();
|
||||
Model decoratedModel = new Model();
|
||||
decoratedModel.setContextWindowTokens(1_000_000L);
|
||||
decoratedModel.setMaxOutputTokens(64_000L);
|
||||
when(service.listSelectableModels(query, false, "id", "desc"))
|
||||
.thenReturn(List.of(decoratedModel));
|
||||
ModelController controller = new ModelController(service);
|
||||
|
||||
Result<List<Model>> result = controller.list(query, false, "id", "desc");
|
||||
|
||||
Assert.assertSame(decoratedModel, result.getData().get(0));
|
||||
Assert.assertEquals(Long.valueOf(1_000_000L),
|
||||
result.getData().get(0).getContextWindowTokens());
|
||||
verify(service).listSelectableModels(query, false, "id", "desc");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user