feat: multi-module iteration

This commit is contained in:
2026-08-04 21:38:49 +08:00
parent 9d96c73246
commit 71f508e02b
1366 changed files with 202004 additions and 0 deletions
@@ -0,0 +1,24 @@
/** 去掉 LLM 误输出的 JSON / API 占位,避免展示给用户 */
export function sanitizeWecomUserReply(text: string): string {
let s = text.trim();
s = s.replace(/```(?:json)?\s*[\s\S]*?```/gi, '').trim();
s = s.replace(/\{\s*"api"\s*:[\s\S]*?\}/gi, '').trim();
s = s.replace(/请稍等[,]?系统正在检索[^\n]*/gi, '').trim();
s = s.replace(/^我来帮您[^\n]*\n+/i, '').trim();
if (!s) {
return '未能生成有效回复。请使用「帮助」中的指令,或换一种问法。';
}
return s;
}
/** 解析 LLM 工具行:TOOL support_tickets_open 或 TOOL order_lookup DK123 */
export function parseWecomToolLine(raw: string): { name: string; args: string } | null {
const line = raw
.split('\n')
.map((l) => l.trim())
.find((l) => /^TOOL\s+\S+/i.test(l));
if (!line) return null;
const m = line.match(/^TOOL\s+(\S+)(?:\s+(.*))?$/i);
if (!m) return null;
return { name: m[1].toLowerCase(), args: (m[2] ?? '').trim() };
}