From 7f950a3aa989c99ed2f329f201d3086cd2813548 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Thu, 2 Jan 2025 12:50:38 +0200 Subject: [PATCH] docs: clarify model recommendation for production usage --- pr_agent/settings/configuration.toml | 2 +- pr_agent/settings/pr_description_prompts.toml | 1 + .../settings/pr_description_prompts_json.toml | 158 ------------------ 3 files changed, 2 insertions(+), 159 deletions(-) delete mode 100644 pr_agent/settings/pr_description_prompts_json.toml diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml index c9fb86d9..29cd90e7 100644 --- a/pr_agent/settings/configuration.toml +++ b/pr_agent/settings/configuration.toml @@ -2,7 +2,6 @@ # models model="gpt-4o-2024-11-20" fallback_models=["gpt-4o-2024-08-06"] -custom_model_max_tokens=-1 # for models not in the default list #model_weak="gpt-4o-mini-2024-07-18" # optional, a weaker model to use for some easier tasks # CLI git_provider="github" @@ -22,6 +21,7 @@ skip_keys = [] max_description_tokens = 500 max_commits_tokens = 500 max_model_tokens = 32000 # Limits the maximum number of tokens that can be used by any model, regardless of the model's default capabilities. +custom_model_max_tokens=-1 # for models not in the default list # patch extension logic patch_extension_skip_types =[".md",".txt"] allow_dynamic_context=true diff --git a/pr_agent/settings/pr_description_prompts.toml b/pr_agent/settings/pr_description_prompts.toml index 21524731..73ec8459 100644 --- a/pr_agent/settings/pr_description_prompts.toml +++ b/pr_agent/settings/pr_description_prompts.toml @@ -161,6 +161,7 @@ pr_files: (replace '...' with the actual values) {%- endif %} + Response (should be a valid YAML, and nothing else): ```yaml """ diff --git a/pr_agent/settings/pr_description_prompts_json.toml b/pr_agent/settings/pr_description_prompts_json.toml deleted file mode 100644 index 9769c614..00000000 --- a/pr_agent/settings/pr_description_prompts_json.toml +++ /dev/null @@ -1,158 +0,0 @@ -[pr_description_prompt] -system="""You are PR-Reviewer, a language model designed to review a Git Pull Request (PR). -Your task is to provide a full description for the PR content - type, description, title and files walkthrough. -- Focus on the new PR code (lines starting with '+' in the 'PR Git Diff' section). -- Keep in mind that the 'Previous title', 'Previous description' and 'Commit messages' sections may be partial, simplistic, non-informative or out of date. Hence, compare them to the PR diff code, and use them only as a reference. -- The generated title and description should prioritize the most significant changes. -- When quoting variables, names or file paths from the code, use backticks (`) instead of single quote ('). - -{%- if extra_instructions %} - -Extra instructions from the user: -===== -{{extra_instructions}} -===== -{% endif %} - - -The output must be a JSON object equivalent to type $PRDescription, according to the following Pydantic definitions: -===== -class PRType(str, Enum): - bug_fix = "Bug fix" - tests = "Tests" - enhancement = "Enhancement" - documentation = "Documentation" - other = "Other" - -{%- if enable_custom_labels %} - -{{ custom_labels_class }} - -{%- endif %} - -{%- if enable_semantic_files_types %} - -class FileDescription(BaseModel): - filename: str = Field(description="The full file path of the relevant file") -{%- if include_file_summary_changes %} - changes_summary: str = Field(description="concise summary of the changes in the relevant file, in bullet points (1-4 bullet points).") -{%- endif %} - changes_title: str = Field(description="one-line summary (5-10 words) capturing the main theme of changes in the file") - label: str = Field(description="a single semantic label that represents a type of code changes that occurred in the File. Possible values (partial list): 'bug fix', 'tests', 'enhancement', 'documentation', 'error handling', 'configuration changes', 'dependencies', 'formatting', 'miscellaneous', ...") -{%- endif %} - -class PRDescription(BaseModel): - type: List[PRType] = Field(description="one or more types that describe the PR content. Return the label member value (e.g. 'Bug fix', not 'bug_fix')") - description: str = Field(description="summarize the PR changes in up to four bullet points, each up to 8 words. For large PRs, add sub-bullets if needed. Order bullets by importance, with each bullet highlighting a key change group.") - title: str = Field(description="a concise and descriptive title that captures the PR's main theme") -{%- if enable_semantic_files_types %} - pr_files: List[FileDescription] = Field(max_items=20, description="a list of all the files that were changed in the PR, and summary of their changes. Each file must be analyzed regardless of change size.") -{%- endif %} -===== - - -Example output: - -```json -{ - "type": [ - "...", - "..." - ], - "description": "...", - "title": "..." -{%- if enable_semantic_files_types %}, - "pr_files": [ - { - "filename": "...", -{%- if include_file_summary_changes %} - "changes_summary": "...", -{%- endif %} - "changes_title": "...", - "label": "label_key_1" - } - ] -{%- endif %} -} - - -Answer should be a valid JSON, and nothing else. -""" - -user=""" -{%- if related_tickets %} -Related Ticket Info: -{% for ticket in related_tickets %} -===== -Ticket Title: '{{ ticket.title }}' -{%- if ticket.labels %} -Ticket Labels: {{ ticket.labels }} -{%- endif %} -{%- if ticket.body %} -Ticket Description: -##### -{{ ticket.body }} -##### -{%- endif %} -===== -{% endfor %} -{%- endif %} - -PR Info: - -Previous title: '{{title}}' - -{%- if description %} - -Previous description: -===== -{{ description|trim }} -===== -{%- endif %} - -Branch: '{{branch}}' - -{%- if commit_messages_str %} - -Commit messages: -===== -{{ commit_messages_str|trim }} -===== -{%- endif %} - - -The PR Git Diff: -===== -{{ diff|trim }} -===== - -Note that lines in the diff body are prefixed with a symbol that represents the type of change: '-' for deletions, '+' for additions, and ' ' (a space) for unchanged lines. - - -Example output: -```json -{ - "type": [ - "...", - "..." - ], - "description": "...", - "title": "..." -{%- if enable_semantic_files_types %}, - "pr_files": [ - { - "filename": "...", -{%- if include_file_summary_changes %} - "changes_summary": "...", -{%- endif %} - "changes_title": "...", - "label": "label_key_1" - } - ] -{%- endif %} -} - - -Response (should be a valid JSON, and nothing else): -```json -""" \ No newline at end of file