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")); + } }