126 lines
4.5 KiB
Django/Jinja
126 lines
4.5 KiB
Django/Jinja
{# Uses https://mitsuhiko.github.io/minijinja-playground/ for testing:
|
|
{
|
|
"ask": true,
|
|
"use_xml_format": true,
|
|
"question": "Refactor to include tab flow",
|
|
"code_lang": "lua",
|
|
"file_content": "local Config = require('avante.config')"
|
|
}
|
|
#}
|
|
{%- if use_xml_format -%}
|
|
{%- if selected_code -%}
|
|
<context>
|
|
```{{code_lang}}
|
|
{{file_content}}
|
|
```
|
|
</context>
|
|
|
|
<code>
|
|
```{{code_lang}}
|
|
{{selected_code}}
|
|
```
|
|
</code>
|
|
{%- else -%}
|
|
<code>
|
|
```{{code_lang}}
|
|
{{file_content}}
|
|
```
|
|
</code>
|
|
{%- endif %}{%- if project_context -%}
|
|
<project_context>
|
|
{{project_context}}
|
|
</project_context>
|
|
{%- endif %}{%- if memory_context -%}
|
|
<memory_context>
|
|
{{memory_context}}
|
|
</memory_context>
|
|
{%- endif %}
|
|
{% else %}
|
|
{%- if selected_code -%}
|
|
CONTEXT:
|
|
```{{code_lang}}
|
|
{{file_content}}
|
|
```
|
|
|
|
CODE:
|
|
```{{code_lang}}
|
|
{{selected_code}}
|
|
```
|
|
{%- else -%}
|
|
CODE:
|
|
```{{code_lang}}
|
|
{{file_content}}
|
|
```
|
|
{%- endif %}{%- if project_context -%}
|
|
PROJECT CONTEXT:
|
|
{{project_context}}
|
|
{%- endif %}{%- if memory_context -%}
|
|
MEMORY CONTEXT:
|
|
{{memory_context}}
|
|
{%- endif %}{%- endif %}{%- if ask %}
|
|
{%- if not use_xml_format %}
|
|
|
|
INSTRUCTION: {% else %}
|
|
<instruction>{% endif -%}
|
|
{% block user_prompt %}
|
|
Your primary task is to suggest code modifications with precise line number ranges. Follow these instructions meticulously:
|
|
|
|
1. Carefully analyze the original code, paying close attention to its structure and line numbers. Line numbers start from 1 and include ALL lines, even empty ones.
|
|
|
|
2. When suggesting modifications:
|
|
a. Use the language in the question to reply. If there are non-English parts in the question, use the language of those parts.
|
|
b. Explain why the change is necessary or beneficial.
|
|
c. If an image is provided, make sure to use the image in conjunction with the code snippet.
|
|
d. Provide the exact code snippet to be replaced using this format:
|
|
{% raw %}
|
|
Replace lines: {{start_line}}-{{end_line}}
|
|
```{{language}}
|
|
{{suggested_code}}
|
|
```
|
|
{% endraw %}
|
|
3. Crucial guidelines for suggested code snippets:
|
|
- The content regarding line numbers MUST strictly follow the format "Replace lines: {{start_line}}-{{end_line}}". Do not be lazy!
|
|
- Only apply the change(s) suggested by the most recent assistant message (before your generation).
|
|
- Do not make any unrelated changes to the code.
|
|
- Produce a valid full rewrite of the entire original file without skipping any lines. Do not be lazy!
|
|
- Do not arbitrarily delete pre-existing comments/empty Lines.
|
|
- Do not omit large parts of the original file for no reason.
|
|
- Do not omit any needed changes from the requisite messages/code blocks.
|
|
- If there is a clicked code block, bias towards just applying that (and applying other changes implied).
|
|
- Please keep your suggested code changes minimal, and do not include irrelevant lines in the code snippet.
|
|
- Maintain the SAME indentation in the returned code as in the source code
|
|
|
|
4. Crucial guidelines for line numbers:
|
|
- The range {{start_line}}-{{end_line}} is INCLUSIVE. Both start_line and end_line are included in the replacement.
|
|
- Count EVERY line, including empty lines and comments lines, comments. Do not be lazy!
|
|
- Use the same number for start and end lines for single-line changes.
|
|
- For multi-line changes, ensure the range covers ALL affected lines, from first to last.
|
|
- Double-check that your line numbers align perfectly with the original code structure.
|
|
|
|
5. Final check:
|
|
- Review all suggestions, ensuring each line number is correct, especially the start_line and end_line.
|
|
- Confirm that no unrelated code is accidentally modified or deleted.
|
|
- Verify that the start_line and end_line correctly include all intended lines for replacement.
|
|
- Perform a final alignment check to ensure your line numbers haven't shifted, especially the start_line.
|
|
- Double-check that your line numbers align perfectly with the original code structure.
|
|
- DO NOT return the complete modified code with applied changes!
|
|
|
|
Remember that ACCURATE line numbers are CRITICAL. The range {%raw%}{{start_line}}{%endraw%} to {%raw%}{{end_line}}{%endraw%} must include ALL LINES to be replaced. Double-check ALL RANGES before finalizing your response, and MAKE SURE THAT {%raw%}{{start_line}}{%endraw%} hasn't been shifted down. ENSURE line numbers MATCH the original code structure and indentation ARE PRESERVED.
|
|
{% endblock %}
|
|
{%- if use_xml_format -%}
|
|
</instruction>
|
|
|
|
<question>{{question}}</question>
|
|
{%- else %}
|
|
QUESTION:
|
|
{{question}}
|
|
{%- endif %}
|
|
{% else %}
|
|
{% if use_xml_format -%}
|
|
<question>{{question}}</question>
|
|
{% else %}
|
|
QUESTION:
|
|
{{question}}
|
|
{%- endif %}
|
|
{%- endif %}
|