Add aiUsePositiveSeed configuration option
Some models f.i. Mistral requires a positive random_seed.
https://docs.mistral.ai/api/#tag/chat/operation/chat_completion_v1_chat_completions_post
Change-Id: I8847ac70aede4a7698df999befc8eb32980afabd
diff --git a/README.md b/README.md
index 5a15bcf..053b31b 100644
--- a/README.md
+++ b/README.md
@@ -271,6 +271,7 @@
Configuration commands.
- `forceCreateAssistant`: In Stateful mode, forces the creation of a new assistant with each request instead of only
when configuration settings change or Changes are merged.
+- `aiUsePositiveSeed`: Only generate positive seeds, this is needed for some models, f.i Mistral. Defaults to false.
**NOTE**: This option may increase OpenAI API usage and should be used for **testing or debugging purposes only**.
diff --git a/src/main/java/com/googlesource/gerrit/plugins/aicodereview/config/Configuration.java b/src/main/java/com/googlesource/gerrit/plugins/aicodereview/config/Configuration.java
index 40a9a79..543debf 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/aicodereview/config/Configuration.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/aicodereview/config/Configuration.java
@@ -94,6 +94,7 @@
public static final String KEY_AI_RELEVANCE_RULES = "aiRelevanceRules";
public static final String KEY_AI_REVIEW_TEMPERATURE = "aiReviewTemperature";
public static final String KEY_AI_COMMENT_TEMPERATURE = "aiCommentTemperature";
+ public static final String KEY_AI_POSITIVE_SEED_ONLY = "aiUsePositiveSeed";
public static final String KEY_VOTING_MIN_SCORE = "votingMinScore";
public static final String KEY_VOTING_MAX_SCORE = "votingMaxScore";
public static final String KEY_GERRIT_USERNAME = "gerritUserName";
diff --git a/src/main/java/com/googlesource/gerrit/plugins/aicodereview/mode/common/client/api/openai/AIChatParameters.java b/src/main/java/com/googlesource/gerrit/plugins/aicodereview/mode/common/client/api/openai/AIChatParameters.java
index 7ee587d..af25f16 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/aicodereview/mode/common/client/api/openai/AIChatParameters.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/aicodereview/mode/common/client/api/openai/AIChatParameters.java
@@ -43,10 +43,17 @@
}
public int getRandomSeed() {
+ if (retrieveUsePositiveSeedOnly()) {
+ return ThreadLocalRandom.current().nextInt(0, Integer.MAX_VALUE);
+ }
return ThreadLocalRandom.current().nextInt();
}
private Double retrieveTemperature(String temperatureKey, Double defaultTemperature) {
return Double.parseDouble(config.getString(temperatureKey, String.valueOf(defaultTemperature)));
}
+
+ private boolean retrieveUsePositiveSeedOnly() {
+ return Boolean.parseBoolean(config.getString(Configuration.KEY_AI_POSITIVE_SEED_ONLY, "false"));
+ }
}