Warning: session_start(): open(/var/lib/php/sessions/sess_97pcdghnj1cdt56br4afdea94o, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
/*sclass Interpretable {
S text;
RuleEngine_MatchedRule2 matched;
}*/
sclass Entry {
long msgID;
S originalLine;
S interpretableText;
S matchedRuleStruct;
sS _fieldOrder = "msgID originalLine interpretableText";
}
set flag DynModule.
cmodule InterpretableTest > DynObjectTable {
start {
addCountToName();
thread { scan(); }
}
visualize {
ret withCenteredButtons(super.visualize(), "Scan", rThread scan);
}
void scan enter {
new L list;
new Flag interrupted;
temp AutoCloseable action = dm_currentAction("Scanning chat", rRaiseFlag(interrupted));
F0 contextMaker = new GazelleContextCache_v2().fill();
L lines = dm_discord_allLines();
int i = 0;
for (GazelleLine line : lines) {
++i;
if (!licensed() || interrupted!) break;
Collection l = getInterpretables(line, +contextMaker);
for (S interpretableText : l)
list.add(nu Entry(originalLine := line.text, msgID := line.msgID, +interpretableText));
call(action, 'setText, "Found " + n2(list, "interpretable") + ", scanned " + i + "/" + n2(lines, "line"));
}
setList(list);
}
Collection getInterpretables(GazelleLine line, O... _) {
Set interpretables = linkedCISet(); // fancy new ordered case-insensitive set
RuleEngine2 engine = ((F0) optPar contextMaker(_)).get().engine;
for (RuleEngine2.SimplifyWithRule rule : engine.splitterRules()) pcall {
_addAll(interpretables, gazelle_executeSplitterRule(engine, rule, line.text));
}
_addAll(interpretables, collect line(
dm_gazelle_reasonAboutChatInput_v2(null, line.text,
paramsPlus(_, skipSplitters := true, acceptablePurposes := litset('preprocess)))));
interpretables.remove(line.text);
ret interpretables;
}
}