From af635650f1a189cf80cb35e66eec5e4008630f46 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Thu, 27 Feb 2025 10:50:28 +0200 Subject: [PATCH] fix: improve response language handling and configuration documentation --- docs/docs/usage-guide/additional_configurations.md | 6 +++--- pr_agent/agent/pr_agent.py | 12 ++++++++---- pr_agent/settings/configuration.toml | 10 +++++++--- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/docs/usage-guide/additional_configurations.md b/docs/docs/usage-guide/additional_configurations.md index 5ff211c6..8021bccc 100644 --- a/docs/docs/usage-guide/additional_configurations.md +++ b/docs/docs/usage-guide/additional_configurations.md @@ -67,12 +67,12 @@ Example: ```toml [config] -response_language: "ja-JP" +response_language: "it-IT" ``` -This will set the response language globally for all the commands to Japanese. +This will set the response language globally for all the commands to Italian. -> **Important:** Note that only dynamic text generated by the AI model is translated to the configured language. Static text such as labels and table headers that are not part of the AI modeles response will remain in US English. +> **Important:** Note that only dynamic text generated by the AI model is translated to the configured language. Static text such as labels and table headers that are not part of the AI models response will remain in US English. In addition, the model you are using must support the specified language. ## Working with large PRs diff --git a/pr_agent/agent/pr_agent.py b/pr_agent/agent/pr_agent.py index 5b950339..7cae3839 100644 --- a/pr_agent/agent/pr_agent.py +++ b/pr_agent/agent/pr_agent.py @@ -74,14 +74,18 @@ class PRAgent: args = update_settings_from_args(args) # Append the response language in the extra instructions - response_language = get_settings().config.response_language - if response_language != 'en-us': + response_language = get_settings().config.get('response_language', 'en-us') + if response_language.lower() != 'en-us': + get_logger().info(f'User has set the response language to: {response_language}') for key in get_settings(): setting = get_settings().get(key) if str(type(setting)) == "": if hasattr(setting, 'extra_instructions'): - extra_instructions = get_settings()[key.lower()].extra_instructions - get_settings()[key.lower()].extra_instructions = f"{extra_instructions} \n======\n\nLanguage preference from the user\n======\n In your reply only use the lanaguage with locale code: {response_language}" + current_extra_instructions = setting.extra_instructions + if current_extra_instructions: + setting.extra_instructions = current_extra_instructions+ f"\n======\n\nIn addition, in your reply the generated answers MUST be in a language equivalent to locale code: {response_language}. This is crucial." + else: + setting.extra_instructions = f"The generated answers in your reply MUST be in a language equivalent to locale code: '{response_language}'. This is crucial." action = action.lstrip("/").lower() if action not in command2class: diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml index fb4bbc4a..72ae4d35 100644 --- a/pr_agent/settings/configuration.toml +++ b/pr_agent/settings/configuration.toml @@ -1,15 +1,19 @@ +# Important: This file contains all available configuration options. +# Do not copy this entire file to your repository configuration. +# Your repository configuration should only include options you wish to override from the defaults. + [config] # models model="gpt-4o-2024-11-20" fallback_models=["gpt-4o-2024-08-06"] #model_weak="gpt-4o-mini-2024-07-18" # optional, a weaker model to use for some easier tasks -response_language="en-US" # Language locales code for PR responses in ISO 3166 and ISO 639 format (e.g., "en-US", "es-ES", "he-IL", "ar-IL", "zh-CN") +response_language="en-US" # Language locales code for PR responses in ISO 3166 and ISO 639 format (e.g., "en-US", "it-IT", "zh-CN", ...) # CLI git_provider="github" -publish_output=true +publish_output=false publish_output_progress=true publish_output_no_suggestions=true -verbosity_level=0 # 0,1,2 +verbosity_level=2 # 0,1,2 use_extra_bad_extensions=false # Configurations use_wiki_settings_file=true