Skip to content

Commit 4e0c42b

Browse files
jeremymanningclaude
andcommitted
Fix AIML converter to preserve template variables in random options
The converter was using get_element_text() for <li> elements inside <random> tags, which stripped out bot/get/set tags. Changed to use parse_template() instead. Before: "I am living in ." After: "I am living in {{BOT:location}}." Regenerated alice-patterns-full.json with complete templates. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent d7efeac commit 4e0c42b

File tree

3 files changed

+366
-365
lines changed

3 files changed

+366
-365
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,4 @@ demos/11-analogies/data/glove.6B.*.txt
171171
!demos/11-analogies/data/glove-50d.json.playwright-mcp/
172172
node_modules/
173173
package-lock.json
174+
demos/15-chatbot-evolution/alice-aiml-original/

demos/15-chatbot-evolution/convert-aiml-to-json.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ def parse_template(self, template_elem) -> str:
4848
srai_text = self.get_element_text(child)
4949
result += f"{{{{SRAI:{srai_text}}}}}"
5050
elif child.tag == 'random':
51-
# Random selection
52-
options = [self.get_element_text(li) for li in child.findall('li')]
51+
# Random selection - use parse_template to preserve bot/get/set tags
52+
options = [self.parse_template(li) for li in child.findall('li')]
5353
result += f"{{{{RANDOM:{json.dumps(options)}}}}}"
5454
elif child.tag == 'bot':
5555
# Bot property

0 commit comments

Comments
 (0)