1
1
import 'dart:convert' ;
2
+ import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_run.dart' ;
2
3
import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_step_request_body.dart' ;
3
4
import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_task_request_body.dart' ;
4
5
import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_task_status.dart' ;
@@ -8,6 +9,7 @@ import 'package:auto_gpt_flutter_client/models/step.dart';
8
9
import 'package:auto_gpt_flutter_client/models/task.dart' ;
9
10
import 'package:auto_gpt_flutter_client/models/test_suite.dart' ;
10
11
import 'package:auto_gpt_flutter_client/services/benchmark_service.dart' ;
12
+ import 'package:auto_gpt_flutter_client/services/leaderboard_service.dart' ;
11
13
import 'package:auto_gpt_flutter_client/viewmodels/chat_viewmodel.dart' ;
12
14
import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart' ;
13
15
import 'package:collection/collection.dart' ;
@@ -19,6 +21,8 @@ class SkillTreeViewModel extends ChangeNotifier {
19
21
// TODO: Potentially move to task queue view model when we create one
20
22
final BenchmarkService benchmarkService;
21
23
// TODO: Potentially move to task queue view model when we create one
24
+ final LeaderboardService leaderboardService;
25
+ // TODO: Potentially move to task queue view model when we create one
22
26
bool isBenchmarkRunning = false ;
23
27
// TODO: Potentially move to task queue view model when we create one
24
28
Map <SkillTreeNode , BenchmarkTaskStatus > benchmarkStatusMap = {};
@@ -37,7 +41,7 @@ class SkillTreeViewModel extends ChangeNotifier {
37
41
final Graph graph = Graph ()..isTree = true ;
38
42
BuchheimWalkerConfiguration builder = BuchheimWalkerConfiguration ();
39
43
40
- SkillTreeViewModel (this .benchmarkService);
44
+ SkillTreeViewModel (this .benchmarkService, this .leaderboardService );
41
45
42
46
Future <void > initializeSkillTree () async {
43
47
try {
@@ -206,6 +210,13 @@ class SkillTreeViewModel extends ChangeNotifier {
206
210
await benchmarkService.triggerEvaluation (task.id);
207
211
print ("Evaluation response: $evaluationResponse " );
208
212
213
+ // Decode the evaluationResponse into a BenchmarkRun object
214
+ BenchmarkRun benchmarkRun = BenchmarkRun .fromJson (evaluationResponse);
215
+
216
+ // TODO: We should only trigger this if the user has designated they want to submit
217
+ // Submit the BenchmarkRun object to the leaderboard
218
+ await leaderboardService.submitReport (benchmarkRun);
219
+
209
220
// Update the benchmarkStatusList based on the evaluation response
210
221
bool successStatus = evaluationResponse['metrics' ]['success' ];
211
222
benchmarkStatusMap[node] = successStatus
0 commit comments