|
|
|
|
@ -25,6 +25,26 @@ public class MlflowController {
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Operation(summary = "Experiment 조회", description = "Experiment 이름으로 MLflow Experiment 정보를 조회합니다.")
|
|
|
|
|
@GetMapping(value = "/experiment", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
|
|
|
public Map<String, Object> getExperimentByName(@RequestParam String experimentName) {
|
|
|
|
|
Map response = webClient.get()
|
|
|
|
|
.uri(uriBuilder -> uriBuilder
|
|
|
|
|
.path("/experiments/get-by-name")
|
|
|
|
|
.queryParam("experiment_name", experimentName)
|
|
|
|
|
.build())
|
|
|
|
|
.retrieve()
|
|
|
|
|
.bodyToMono(Map.class)
|
|
|
|
|
.block();
|
|
|
|
|
|
|
|
|
|
if (response == null || !response.containsKey("experiment")) {
|
|
|
|
|
throw new RuntimeException("Experiment not found: " + experimentName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (Map<String, Object>) response.get("experiment");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Operation(summary = "Experiment의 Run 목록 조회", description = "주어진 Experiment ID의 Run을 최대 1000개까지 조회합니다.")
|
|
|
|
|
@GetMapping(value = "/runs", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
|
|
|
public Mono<ResponseEntity<String>> getRuns(@RequestParam String experimentId) {
|
|
|
|
|
|