Merge pull request #1586 from qodo-ai/tr/docs245

docs: add language configuration documentation and update changelog
This commit is contained in:
Tal
2025-02-27 11:10:20 +02:00
committed by GitHub
5 changed files with 26 additions and 16 deletions

View File

@ -53,8 +53,9 @@ PR-Agent aims to help efficiently review and handle pull requests, by providing
## News and Updates ## News and Updates
### Feb 27, 2025 ### Feb 27, 2025
- Updated the default model to `o3-mini` for all tools. You can still use the `gpt-4o` as the default model by setting the `model` parameter in the configuration file.
Important updates and bug fixes for Azure DevOps, see [here](https://github.com/qodo-ai/pr-agent/pull/1583) - Important updates and bug fixes for Azure DevOps, see [here](https://github.com/qodo-ai/pr-agent/pull/1583)
- Added support for adjusting the [response language](https://qodo-merge-docs.qodo.ai/usage-guide/additional_configurations/#language-settings) of the PR-Agent tools.
### Feb 6, 2025 ### Feb 6, 2025
New design for the `/improve` tool: New design for the `/improve` tool:

View File

@ -57,21 +57,22 @@ All Qodo Merge tools have a parameter called `extra_instructions`, that enables
/update_changelog --pr_update_changelog.extra_instructions="Make sure to update also the version ..." /update_changelog --pr_update_changelog.extra_instructions="Make sure to update also the version ..."
``` ```
## Localization ## Language Settings
The default response language for Qodo Merge is **U.S. English**. However, some development teams may prefer to display information in a different language. For example, your team's workflow might improve if PR descriptions and code suggestions are set to your country's native language. The default response language for Qodo Merge is **U.S. English**. However, some development teams may prefer to display information in a different language. For example, your team's workflow might improve if PR descriptions and code suggestions are set to your country's native language.
To configure this, set the `response_language` parameter in the configuration file. This will prompt the model to respond in the specified language. Use a **standard locale code** based on [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166) (country codes) and [ISO 639](https://en.wikipedia.org/wiki/ISO_639) (language codes) to define a language-country pair. See this [comprehensive list of locale codes](https://simplelocalize.io/data/locales/). To configure this, set the `response_language` parameter in the configuration file. This will prompt the model to respond in the specified language. Use a **standard locale code** based on [ISO 3166](https://en.wikipedia.org/wiki/ISO_3166) (country codes) and [ISO 639](https://en.wikipedia.org/wiki/ISO_639) (language codes) to define a language-country pair. See this [comprehensive list of locale codes](https://simplelocalize.io/data/locales/).
### Example: Example:
```yaml ```toml
response_language: "he-IL" [config]
response_language: "it-IT"
``` ```
This will set the response language globally for [describe](../tools/describe.md), [improve](../tools/improve.md), [add_docs](../tools/documentation.md), [update_changelog](../tools/update_changelog.md), [test](../tools/test.md) commands to Hebrew 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 have good support for the specified language.
## Working with large PRs ## Working with large PRs

View File

@ -74,14 +74,18 @@ class PRAgent:
args = update_settings_from_args(args) args = update_settings_from_args(args)
# Append the response language in the extra instructions # Append the response language in the extra instructions
response_language = get_settings().config.response_language response_language = get_settings().config.get('response_language', 'en-us')
if 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(): for key in get_settings():
setting = get_settings().get(key) setting = get_settings().get(key)
if str(type(setting)) == "<class 'dynaconf.utils.boxing.DynaBox'>": if str(type(setting)) == "<class 'dynaconf.utils.boxing.DynaBox'>":
if hasattr(setting, 'extra_instructions'): if hasattr(setting, 'extra_instructions'):
extra_instructions = get_settings()[key.lower()].extra_instructions current_extra_instructions = setting.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}" if current_extra_instructions:
setting.extra_instructions = current_extra_instructions+ f"\n======\n\nIn addition, Your response MUST be written in the language corresponding to local code: {response_language}. This is crucial."
else:
setting.extra_instructions = f"Your response MUST be written in the language corresponding to locale code: '{response_language}'. This is crucial."
action = action.lstrip("/").lower() action = action.lstrip("/").lower()
if action not in command2class: if action not in command2class:

View File

@ -232,7 +232,7 @@ class LiteLLMAIHandler(BaseAiHandler):
# Add temperature only if model supports it # Add temperature only if model supports it
if model not in self.no_support_temperature_models and not get_settings().config.custom_reasoning_model: if model not in self.no_support_temperature_models and not get_settings().config.custom_reasoning_model:
get_logger().info(f"Adding temperature with value {temperature} to model {model}.") # get_logger().info(f"Adding temperature with value {temperature} to model {model}.")
kwargs["temperature"] = temperature kwargs["temperature"] = temperature
# Add reasoning_effort if model supports it # Add reasoning_effort if model supports it

View File

@ -1,9 +1,13 @@
# 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] [config]
# models # models
model="gpt-4o-2024-11-20" model="o3-mini"
fallback_models=["gpt-4o-2024-08-06"] fallback_models=["gpt-4o-2024-11-20"]
#model_weak="gpt-4o-mini-2024-07-18" # optional, a weaker model to use for some easier tasks #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 # CLI
git_provider="github" git_provider="github"
publish_output=true publish_output=true