Skip to content

Commit 9f07458

Browse files
committed
Create clear delimiters for LLM sections
1 parent 7ba9c53 commit 9f07458

File tree

2 files changed

+35
-14
lines changed

2 files changed

+35
-14
lines changed

.github/templates/personalize_gemini_cell.py.j2

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ activity_dir = 'activities/'
4444

4545
from pathlib import Path
4646
def load_persona_file(filename):
47-
"""Load a persona template file"""
47+
"""Load a persona template file with clear section markers"""
4848
try:
4949
# First check if we're in a cloned pyimagej repo
5050
persona_path = Path('/content/pyimagej/doc/llms/personas') / filename
@@ -53,30 +53,39 @@ def load_persona_file(filename):
5353
persona_path = Path('./personas') / filename
5454

5555
if persona_path.exists():
56-
return persona_path.read_text(encoding='utf-8')
56+
content = persona_path.read_text(encoding='utf-8')
57+
# Add clear section markers for LLM parsing
58+
base_name = filename.replace('.md', '')
59+
# For activity files, remove experience level suffix and add "ACTIVITIES"
60+
if '_beginner' in base_name or '_intermediate' in base_name or '_advanced' in base_name:
61+
# Strip the last underscore and everything after it, then add "ACTIVITIES"
62+
activity_name = base_name.rsplit('_', 1)[0].replace('_', ' ').upper()
63+
section_name = f"{activity_name} ACTIVITIES"
64+
else:
65+
# Other files: use as-is
66+
section_name = base_name.replace('_', ' ').upper()
67+
return f"\n===== START OF {section_name} =====\n{content}\n===== END OF {section_name} =====\n"
5768
else:
5869
return f"# Template not found: {filename}\n(Using basic fallback)"
5970
except Exception as e:
6071
return f"# Error loading {filename}: {e}\n(Using basic fallback)"
6172

62-
# Load base persona
63-
persona_text = "===START OF PERSONA TEXT===\n"
73+
# Load base persona with section markers
74+
persona_text = "===== START OF PERSONA TEXT =====\n"
6475
persona_text += load_persona_file('base_persona.md')
65-
persona_text += "\n===END OF PERSONA TEXT===\n\n"
76+
persona_text += "===== END OF PERSONA TEXT =====\n\n"
6677

6778
# Get experience levels
6879
{% for category in categories.keys() %}
6980
{{ category }}_level = experience_mapping[{{ category }}_experience]
7081
{% endfor %}
7182

7283
# Add activities based on experience levels
73-
persona_text = "===START OF ACTIVITY TEXT===\n"
7484
{% for category in categories.keys() %}
7585
if {{ category }}_level in {{ category }}_activities:
76-
persona_text += "\n" + load_persona_file({{ category }}_activities[{{ category }}_level])
86+
persona_text += load_persona_file({{ category }}_activities[{{ category }}_level])
7787

7888
{% endfor %}
79-
persona_text += "\n===END OF ACTIVITY TEXT===\n\n"
8089

8190
# Register the persona with the LLM
8291
print(persona_text)

.github/templates/set_coding_rules_cell.py.j2

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ environment_mapping = {
2525
from pathlib import Path
2626

2727
def load_ruleset_template(filename):
28-
"""Load a ruleset template file"""
28+
"""Load a ruleset template file with clear section markers"""
2929
try:
3030
# First check if we're in a cloned pyimagej repo
3131
ruleset_path = Path('/content/pyimagej/doc/llms/rulesets') / filename
@@ -34,19 +34,31 @@ def load_ruleset_template(filename):
3434
ruleset_path = Path('./rulesets') / filename
3535

3636
if ruleset_path.exists():
37-
return ruleset_path.read_text(encoding='utf-8')
37+
content = ruleset_path.read_text(encoding='utf-8')
38+
# Add clear section markers for LLM parsing
39+
base_name = filename.replace('.md', '')
40+
if base_name.startswith('env_'):
41+
# Environment files: strip "env_" prefix and add "ENVIRONMENT"
42+
env_name = base_name[4:].replace('_', ' ').upper()
43+
section_name = f"{env_name} ENVIRONMENT"
44+
else:
45+
# Other files: use as-is
46+
section_name = base_name.replace('_', ' ').upper()
47+
return f"\n===== START OF {section_name} RULES =====\n{content}\n===== END OF {section_name} RULES =====\n"
3848
else:
3949
return f"# Ruleset not found: {filename}\n(Using basic fallback)"
4050
except Exception as e:
4151
return f"# Error loading {filename}: {e}\n(Using basic fallback)"
4252

43-
# Load core PyImageJ ruleset (always included)
44-
ruleset_text = load_ruleset_template('pyimagej_core.md')
53+
# Load core PyImageJ ruleset with section markers
54+
ruleset_text = "===== START OF PyImageJ RULES =====\n"
55+
ruleset_text += load_ruleset_template('pyimagej_core.md')
56+
ruleset_text += "===== END OF PyImageJ RULES =====\n\n"
4557

46-
# Get environment-specific ruleset
58+
# Get environment-specific ruleset with section markers
4759
env_key = environment_mapping[environment]
4860
env_filename = f"{env_key}.md"
49-
ruleset_text += "\n" + load_ruleset_template(env_filename)
61+
ruleset_text += load_ruleset_template(env_filename)
5062

5163
# Register the rulesets with the LLM
5264
print(ruleset_text)

0 commit comments

Comments
 (0)