Skip to content
Merged
45 changes: 44 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.judgmentlabs</groupId>
<artifactId>judgeval-java</artifactId>
<version>0.2.0</version>
<version>0.2.1</version>
<packaging>jar</packaging>
<name>Judgeval Java</name>
<description>Java SDK for Judgeval</description>
Expand Down Expand Up @@ -61,6 +61,36 @@
<version>5.10.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-testing</artifactId>
<version>1.39.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock-jre8</artifactId>
<version>2.35.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>4.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
Expand Down Expand Up @@ -109,6 +139,19 @@
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<archive>
<manifestEntries>
<Implementation-Version>${project.version}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/judgmentlabs/judgeval/Env.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ private Env() {}
public static final String JUDGMENT_DEFAULT_GPT_MODEL =
getEnvVar("JUDGMENT_DEFAULT_GPT_MODEL", "gpt-4.1");
public static final String JUDGMENT_NO_COLOR = getEnvVar("JUDGMENT_NO_COLOR");
public static final String JUDGMENT_LOG_LEVEL = getEnvVar("JUDGMENT_LOG_LEVEL", "warn");

private static String getEnvVar(String varName) {
return getEnvVar(varName, null);
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/com/judgmentlabs/judgeval/Version.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.judgmentlabs.judgeval;

public final class Version {

private Version() {}

/**
* Gets the current SDK version.
*
* @return the version string
*/
public static String getVersion() {
Package pkg = Version.class.getPackage();
return (pkg != null && pkg.getImplementationVersion() != null)
? pkg.getImplementationVersion()
: "unknown";
}
}
63 changes: 0 additions & 63 deletions src/main/java/com/judgmentlabs/judgeval/data/Example.java
Original file line number Diff line number Diff line change
@@ -1,32 +1,10 @@
package com.judgmentlabs.judgeval.data;

import java.time.Instant;
import java.util.Map;
import java.util.UUID;

public class Example extends com.judgmentlabs.judgeval.internal.api.models.Example {

public enum ExampleParams {
INPUT("input"),
ACTUAL_OUTPUT("actual_output"),
EXPECTED_OUTPUT("expected_output"),
CONTEXT("context"),
RETRIEVAL_CONTEXT("retrieval_context"),
TOOLS_CALLED("tools_called"),
EXPECTED_TOOLS("expected_tools"),
ADDITIONAL_METADATA("additional_metadata");

private final String value;

ExampleParams(String value) {
this.value = value;
}

public String getValue() {
return value;
}
}

public Example() {
super();
setExampleId(UUID.randomUUID().toString());
Expand All @@ -45,47 +23,6 @@ private Builder() {
this.example = new Example();
}

public Builder input(String input) {
example.setAdditionalProperty(ExampleParams.INPUT.getValue(), input);
return this;
}

public Builder actualOutput(String actualOutput) {
example.setAdditionalProperty(ExampleParams.ACTUAL_OUTPUT.getValue(), actualOutput);
return this;
}

public Builder expectedOutput(String expectedOutput) {
example.setAdditionalProperty(ExampleParams.EXPECTED_OUTPUT.getValue(), expectedOutput);
return this;
}

public Builder context(String context) {
example.setAdditionalProperty(ExampleParams.CONTEXT.getValue(), context);
return this;
}

public Builder retrievalContext(String retrievalContext) {
example.setAdditionalProperty(
ExampleParams.RETRIEVAL_CONTEXT.getValue(), retrievalContext);
return this;
}

public Builder toolsCalled(Object toolsCalled) {
example.setAdditionalProperty(ExampleParams.TOOLS_CALLED.getValue(), toolsCalled);
return this;
}

public Builder expectedTools(Object expectedTools) {
example.setAdditionalProperty(ExampleParams.EXPECTED_TOOLS.getValue(), expectedTools);
return this;
}

public Builder additionalMetadata(Map<String, Object> metadata) {
example.setAdditionalProperty(ExampleParams.ADDITIONAL_METADATA.getValue(), metadata);
return this;
}

public Builder property(String key, Object value) {
example.setAdditionalProperty(key, value);
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,9 @@ public String getOrganizationId() {

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || getClass() != obj.getClass())
return false;
if (!super.equals(obj))
return false;
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
if (!super.equals(obj)) return false;
TraceEvaluationRun other = (TraceEvaluationRun) obj;
return Objects.equals(organizationId, other.organizationId);
}
Expand All @@ -96,8 +93,7 @@ public static final class Builder {
private String organizationId;
private List<List<String>> traceAndSpanIds;

private Builder() {
}
private Builder() {}

private Builder(String projectName, String evalName) {
this.projectName = projectName;
Expand Down
28 changes: 25 additions & 3 deletions src/main/java/com/judgmentlabs/judgeval/scorers/APIScorer.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@
import com.judgmentlabs.judgeval.data.APIScorerType;
import com.judgmentlabs.judgeval.internal.api.models.ScorerConfig;

public class APIScorer extends BaseScorer {
public class APIScorer extends com.judgmentlabs.judgeval.internal.api.models.BaseScorer
implements BaseScorer {
private APIScorerType scoreType;

@JsonIgnore private List<String> requiredParams;
Expand All @@ -19,6 +20,9 @@ public APIScorer(APIScorerType scoreType) {
setName(scoreType.toString());
setScoreType(scoreType.toString());
this.requiredParams = new java.util.ArrayList<>();
if (Boolean.TRUE.equals(getStrictMode())) {
setThreshold(1.0);
}
}

public void setThreshold(double threshold) {
Expand All @@ -42,12 +46,30 @@ public void setRequiredParams(List<String> requiredParams) {
}

@Override
public ScorerConfig toTransport() {
public Double getThreshold() {
Double threshold = super.getThreshold();
return threshold != null ? threshold : 0.5;
}

@Override
public String getName() {
Object name = super.getName();
return name != null ? name.toString() : null;
}

@Override
public Boolean getStrictMode() {
Boolean strictMode = super.getStrictMode();
return strictMode != null ? strictMode : false;
}

@Override
public ScorerConfig getScorerConfig() {
ScorerConfig cfg = new ScorerConfig();
cfg.setScoreType(getScoreType());
cfg.setThreshold(getThreshold());
cfg.setName(getName());
cfg.setStrictMode(isStrictMode());
cfg.setStrictMode(getStrictMode());
cfg.setRequiredParams(getRequiredParams());
Map<String, Object> kwargs = new HashMap<>();
if (getAdditionalProperties() != null) kwargs.putAll(getAdditionalProperties());
Expand Down
Loading