Current description: __SKILL_DESCRIPTION_PLACEHOLDER__
+ +| Query | +Should Trigger | +Actions | +
|---|
Original: {html.escape(data.get('original_description', 'N/A'))}
+Best: {html.escape(data.get('best_description', 'N/A'))}
+Best Score: {data.get('best_score', 'N/A')} {'(test)' if best_test_score else '(train)'}
+Iterations: {data.get('iterations_run', 0)} | Train: {data.get('train_size', '?')} | Test: {data.get('test_size', '?')}
+| Iter | +Train | +Test | +Description | +""") + + # Add column headers for train queries + for qinfo in train_queries: + polarity = "positive-col" if qinfo["should_trigger"] else "negative-col" + html_parts.append(f'{html.escape(qinfo["query"])} | \n') + + # Add column headers for test queries (different color) + for qinfo in test_queries: + polarity = "positive-col" if qinfo["should_trigger"] else "negative-col" + html_parts.append(f'{html.escape(qinfo["query"])} | \n') + + html_parts.append("""
|---|---|---|---|---|---|
| {iteration} | +{train_correct}/{train_runs} | +{test_correct}/{test_runs} | +{html.escape(description)} | +""") + + # Add result for each train query + for qinfo in train_queries: + r = train_by_query.get(qinfo["query"], {}) + did_pass = r.get("pass", False) + triggers = r.get("triggers", 0) + runs = r.get("runs", 0) + + icon = "✓" if did_pass else "✗" + css_class = "pass" if did_pass else "fail" + + html_parts.append(f'{icon}{triggers}/{runs} | \n') + + # Add result for each test query (with different background) + for qinfo in test_queries: + r = test_by_query.get(qinfo["query"], {}) + did_pass = r.get("pass", False) + triggers = r.get("triggers", 0) + runs = r.get("runs", 0) + + icon = "✓" if did_pass else "✗" + css_class = "pass" if did_pass else "fail" + + html_parts.append(f'{icon}{triggers}/{runs} | \n') + + html_parts.append("