Spaces:
Running
Running
Commit
·
2e33030
1
Parent(s):
7493f69
Fix reasoning trace parsing for incomplete XML tags
Browse files- Update detectReasoningTrace to require both opening AND closing tags
- Add console warning when incomplete reasoning traces are detected
- Skip malformed reasoning traces to avoid confusing partial content
- Maintains full functionality for well-formed reasoning traces
- js/reasoning-parser.js +16 -7
js/reasoning-parser.js
CHANGED
@@ -12,15 +12,18 @@ class ReasoningParser {
|
|
12 |
static detectReasoningTrace(text) {
|
13 |
if (!text || typeof text !== 'string') return false;
|
14 |
|
15 |
-
// Check for
|
16 |
-
const
|
17 |
-
/<think>/i,
|
18 |
-
/<thinking>/i,
|
19 |
-
/<reasoning>/i,
|
20 |
-
/<thought>/i
|
21 |
];
|
22 |
|
23 |
-
return
|
|
|
|
|
|
|
24 |
}
|
25 |
|
26 |
/**
|
@@ -77,6 +80,12 @@ class ReasoningParser {
|
|
77 |
}
|
78 |
}
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
// If no patterns match, return original text as answer
|
81 |
return {
|
82 |
reasoning: null,
|
|
|
12 |
static detectReasoningTrace(text) {
|
13 |
if (!text || typeof text !== 'string') return false;
|
14 |
|
15 |
+
// Check for complete reasoning trace patterns (both opening and closing tags)
|
16 |
+
const completePatterns = [
|
17 |
+
{ start: /<think>/i, end: /<\/think>/i },
|
18 |
+
{ start: /<thinking>/i, end: /<\/thinking>/i },
|
19 |
+
{ start: /<reasoning>/i, end: /<\/reasoning>/i },
|
20 |
+
{ start: /<thought>/i, end: /<\/thought>/i }
|
21 |
];
|
22 |
|
23 |
+
// Only return true if we find BOTH opening and closing tags
|
24 |
+
return completePatterns.some(pattern =>
|
25 |
+
pattern.start.test(text) && pattern.end.test(text)
|
26 |
+
);
|
27 |
}
|
28 |
|
29 |
/**
|
|
|
80 |
}
|
81 |
}
|
82 |
|
83 |
+
// Check if there are incomplete reasoning tags (opening but no closing)
|
84 |
+
const hasOpeningTag = /<think>|<thinking>|<reasoning>|<thought>/i.test(text);
|
85 |
+
if (hasOpeningTag) {
|
86 |
+
console.warn('Incomplete reasoning trace detected - missing closing tags');
|
87 |
+
}
|
88 |
+
|
89 |
// If no patterns match, return original text as answer
|
90 |
return {
|
91 |
reasoning: null,
|