mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-08 23:00:43 +08:00
feat: Refactor instructions and fields in pr_code_suggestions_prompts.toml
This commit is contained in:
@ -6,16 +6,15 @@ Example for the PR Diff format:
|
|||||||
======
|
======
|
||||||
## src/file1.py
|
## src/file1.py
|
||||||
|
|
||||||
@@ -12,3 +12,4 @@ def func1():
|
@@ ... @@ def func1():
|
||||||
__new hunk__
|
__new hunk__
|
||||||
12 code line1 that remained unchanged in the PR
|
12 code line1 that remained unchanged in the PR
|
||||||
14 +new code line1 added in the PR
|
13 +new code line2 added in the PR
|
||||||
15 +new code line2 added in the PR
|
14 code line3 that remained unchanged in the PR
|
||||||
16 code line2 that remained unchanged in the PR
|
|
||||||
__old hunk__
|
__old hunk__
|
||||||
code line1 that remained unchanged in the PR
|
code line1 that remained unchanged in the PR
|
||||||
-code line that was removed in the PR
|
-old code line2 that was removed in the PR
|
||||||
code line2 that remained unchanged in the PR
|
code line3 that remained unchanged in the PR
|
||||||
|
|
||||||
|
|
||||||
@@ ... @@ def func2():
|
@@ ... @@ def func2():
|
||||||
@ -31,13 +30,12 @@ __old hunk__
|
|||||||
|
|
||||||
|
|
||||||
Specific instructions:
|
Specific instructions:
|
||||||
- Provide up to {{ num_code_suggestions }} code suggestions. Try to provide diverse and insightful suggestions.
|
- Provide up to {{ num_code_suggestions }} code suggestions. The suggestions should be diverse and insightful.
|
||||||
- Prioritize suggestions that address major problems, issues and bugs in the code. As a second priority, suggestions should focus on enhancement, best practice, performance, maintainability, and other aspects.
|
- The suggestions should refer only to code from the '__new hunk__' sections, and focus on new lines of code (lines starting with '+').
|
||||||
- Don't suggest to add docstring, type hints, or comments.
|
- Prioritize suggestions that address major problems, issues and bugs in the PR code. As a second priority, suggestions should focus on enhancement, best practice, performance, maintainability, and other aspects.
|
||||||
- Suggestions should refer only to code from the '__new hunk__' sections, and focus on new lines of code (lines starting with '+').
|
- Don't suggest to add docstring, type hints, or comments, or to remove unused imports.
|
||||||
- Avoid making suggestions that have already been implemented in the PR code. For example, if you want to add logs, or change a variable to const, or anything else, make sure it isn't already in the '__new hunk__' code.
|
- Avoid making suggestions that have already been implemented in the PR code. For example, if you want to add logs, or change a variable to const, or anything else, make sure it isn't already in the '__new hunk__' code.
|
||||||
- Provide the exact line numbers range (inclusive) for each suggestion.
|
- Provide the exact line numbers range (inclusive) for each suggestion.
|
||||||
- Assume there is additional relevant code, that is not included in the diff.
|
|
||||||
- When quoting variables or names from the code, use backticks (`) instead of single quote (').
|
- When quoting variables or names from the code, use backticks (`) instead of single quote (').
|
||||||
{%- if summarize_mode %}
|
{%- if summarize_mode %}
|
||||||
- If needed, use abbreviations for the 'existing code' and 'improved code' snippets, to keep the output short.
|
- If needed, use abbreviations for the 'existing code' and 'improved code' snippets, to keep the output short.
|
||||||
@ -57,10 +55,15 @@ The output must be a YAML object equivalent to type PRCodeSuggestions, according
|
|||||||
class CodeSuggestion(BaseModel):
|
class CodeSuggestion(BaseModel):
|
||||||
relevant_file: str = Field(description="the relevant file full path")
|
relevant_file: str = Field(description="the relevant file full path")
|
||||||
suggestion_content: str = Field(description="an actionable suggestion for meaningfully improving the new code introduced in the PR")
|
suggestion_content: str = Field(description="an actionable suggestion for meaningfully improving the new code introduced in the PR")
|
||||||
existing_code: str = Field(description="a code snippet, showing the relevant code lines from a '__new hunk__' section. It must be contiguous, correctly formatted and indented, and without line numbers")
|
{%- if summarize_mode %}
|
||||||
|
existing_code: str = Field(description="a short code snippet from a '__new hunk__' section to illustrate the relevant existing code. Don't show the line numbers. Shorten parts of the code ('...') if needed")
|
||||||
|
improved_code: str = Field(description="a short code snippet to illustrate the improved code, after applying the suggestion. Shorten parts of the code ('...') if needed")
|
||||||
|
{%- else %}
|
||||||
|
existing_code: str = Field(description="a code snippet, demonstrating the relevant code lines from a '__new hunk__' section. It must be contiguous, correctly formatted and indented, and without line numbers")
|
||||||
|
improved_code: str = Field(description="a new code snippet, that can be used to replace the relevant lines in '__new hunk__' code. Replacement suggestions should be complete, correctly formatted and indented, and without line numbers")
|
||||||
|
{%- endif %}
|
||||||
relevant_lines_start: int = Field(description="The relevant line number, from a '__new hunk__' section, where the suggestion starts (inclusive). Should be derived from the hunk line numbers, and correspond to the 'existing code' snippet above")
|
relevant_lines_start: int = Field(description="The relevant line number, from a '__new hunk__' section, where the suggestion starts (inclusive). Should be derived from the hunk line numbers, and correspond to the 'existing code' snippet above")
|
||||||
relevant_lines_end: int = Field(description="The relevant line number, from a '__new hunk__' section, where the suggestion ends (inclusive). Should be derived from the hunk line numbers, and correspond to the 'existing code' snippet above")
|
relevant_lines_end: int = Field(description="The relevant line number, from a '__new hunk__' section, where the suggestion ends (inclusive). Should be derived from the hunk line numbers, and correspond to the 'existing code' snippet above")
|
||||||
improved_code: str = Field(description="a new code snippet, that can be used to replace the relevant lines in '__new hunk__' code. Replacement suggestions should be complete, correctly formatted and indented, and without line numbers")
|
|
||||||
label: str = Field(description="a single label for the suggestion, to help the user understand the suggestion type. For example: 'security', 'bug', 'performance', 'enhancement', 'possible issue', 'best practice', 'maintainability', etc. Other labels are also allowed")
|
label: str = Field(description="a single label for the suggestion, to help the user understand the suggestion type. For example: 'security', 'bug', 'performance', 'enhancement', 'possible issue', 'best practice', 'maintainability', etc. Other labels are also allowed")
|
||||||
|
|
||||||
class PRCodeSuggestions(BaseModel):
|
class PRCodeSuggestions(BaseModel):
|
||||||
@ -93,16 +96,6 @@ user="""PR Info:
|
|||||||
|
|
||||||
Title: '{{title}}'
|
Title: '{{title}}'
|
||||||
|
|
||||||
Branch: '{{branch}}'
|
|
||||||
|
|
||||||
{%- if description %}
|
|
||||||
|
|
||||||
Description:
|
|
||||||
======
|
|
||||||
{{ description|trim }}
|
|
||||||
======
|
|
||||||
{%- endif %}
|
|
||||||
|
|
||||||
{%- if language %}
|
{%- if language %}
|
||||||
|
|
||||||
Main PR language: '{{ language }}'
|
Main PR language: '{{ language }}'
|
||||||
|
Reference in New Issue
Block a user