Skip to content

Commit 47c4105

Browse files
authored
OPIK-1130: Fix AutomationRuleEvaluator Fern (#1670)
* OPIK-1130: Fix AutomationRuleEvaluator Fern * Rev1: updated Open API spec and code
1 parent 53fa20c commit 47c4105

File tree

59 files changed

+2276
-126
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+2276
-126
lines changed

apps/opik-backend/src/main/java/com/comet/opik/api/AutomationRuleEvaluator.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.comet.opik.api;
22

3+
import com.fasterxml.jackson.annotation.JsonIgnore;
34
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
45
import com.fasterxml.jackson.annotation.JsonSubTypes;
56
import com.fasterxml.jackson.annotation.JsonTypeInfo;
@@ -54,7 +55,7 @@ public abstract sealed class AutomationRuleEvaluator<T> implements AutomationRul
5455
@JsonView({View.Public.class, View.Write.class})
5556
private final Float samplingRate;
5657

57-
@JsonView({View.Public.class, View.Write.class})
58+
@JsonIgnore
5859
@NotNull private final T code;
5960

6061
@JsonView({View.Public.class})

apps/opik-backend/src/main/java/com/comet/opik/api/AutomationRuleEvaluatorLlmAsJudge.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,19 @@ public AutomationRuleEvaluatorLlmAsJudge(UUID id, UUID projectId, String project
7575
super(id, projectId, projectName, name, samplingRate, code, createdAt, createdBy, lastUpdatedAt, lastUpdatedBy);
7676
}
7777

78+
/**
79+
* Two purposes:
80+
* - Makes the polymorphic T code available for serialization.
81+
* - Provides the specific type T for Open API and Fern.
82+
*/
83+
@JsonView({View.Public.class, View.Write.class})
84+
@Override
85+
public LlmAsJudgeCode getCode() {
86+
return super.getCode();
87+
}
88+
7889
@Override
7990
public AutomationRuleEvaluatorType getType() {
8091
return AutomationRuleEvaluatorType.LLM_AS_JUDGE;
8192
}
82-
8393
}

apps/opik-backend/src/main/java/com/comet/opik/api/AutomationRuleEvaluatorUpdate.java

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.comet.opik.api;
22

3+
import com.fasterxml.jackson.annotation.JsonIgnore;
34
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
45
import com.fasterxml.jackson.annotation.JsonSubTypes;
56
import com.fasterxml.jackson.annotation.JsonTypeInfo;
@@ -36,6 +37,7 @@ public abstract sealed class AutomationRuleEvaluatorUpdate<T> implements Automat
3637

3738
private final float samplingRate;
3839

40+
@JsonIgnore
3941
@NotNull private final T code;
4042

4143
// TODO: add @NotNull after deprecated endpoint is removed

apps/opik-backend/src/main/java/com/comet/opik/api/AutomationRuleEvaluatorUpdateLlmAsJudge.java

+12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.comet.opik.api;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.fasterxml.jackson.annotation.JsonView;
45
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
56
import com.fasterxml.jackson.databind.annotation.JsonNaming;
67
import jakarta.validation.constraints.NotBlank;
@@ -28,6 +29,17 @@ public AutomationRuleEvaluatorUpdateLlmAsJudge(
2829
super(name, samplingRate, code, projectId);
2930
}
3031

32+
/**
33+
* Two purposes:
34+
* - Makes the polymorphic T code available for serialization.
35+
* - Provides the specific type T for Open API and Fern.
36+
*/
37+
@JsonView
38+
@Override
39+
public LlmAsJudgeCode getCode() {
40+
return super.getCode();
41+
}
42+
3143
@Override
3244
public AutomationRuleEvaluatorType getType() {
3345
return AutomationRuleEvaluatorType.LLM_AS_JUDGE;

apps/opik-backend/src/main/java/com/comet/opik/api/AutomationRuleEvaluatorUpdateUserDefinedMetricPython.java

+12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.comet.opik.api;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.fasterxml.jackson.annotation.JsonView;
45
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
56
import com.fasterxml.jackson.databind.annotation.JsonNaming;
67
import jakarta.validation.constraints.NotBlank;
@@ -30,6 +31,17 @@ public AutomationRuleEvaluatorUpdateUserDefinedMetricPython(
3031
super(name, samplingRate, code, projectId);
3132
}
3233

34+
/**
35+
* Two purposes:
36+
* - Makes the polymorphic T code available for serialization.
37+
* - Provides the specific type T for Open API and Fern.
38+
*/
39+
@JsonView
40+
@Override
41+
public UserDefinedMetricPythonCode getCode() {
42+
return super.getCode();
43+
}
44+
3345
@Override
3446
public AutomationRuleEvaluatorType getType() {
3547
return AutomationRuleEvaluatorType.USER_DEFINED_METRIC_PYTHON;

apps/opik-backend/src/main/java/com/comet/opik/api/AutomationRuleEvaluatorUserDefinedMetricPython.java

+11
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ public AutomationRuleEvaluatorUserDefinedMetricPython(
6363
super(id, projectId, projectName, name, samplingRate, code, createdAt, createdBy, lastUpdatedAt, lastUpdatedBy);
6464
}
6565

66+
/**
67+
* Two purposes:
68+
* - Makes the polymorphic T code available for serialization.
69+
* - Provides the specific type T for Open API and Fern.
70+
*/
71+
@JsonView({View.Public.class, View.Write.class})
72+
@Override
73+
public UserDefinedMetricPythonCode getCode() {
74+
return super.getCode();
75+
}
76+
6677
@Override
6778
public AutomationRuleEvaluatorType getType() {
6879
return AutomationRuleEvaluatorType.USER_DEFINED_METRIC_PYTHON;

0 commit comments

Comments
 (0)