-
-
- `
+
${result.location}·${result.companyName}
+
+
+
${result.education}
+
${result.experience}
+
+
+
+
+ `
+ if (result.data) {
+ jobMoreMap.set(jobId, result.data)
+ domContext +=
+ `
查看更多岗位`
+ }
+ return domContext
+ }
}
//
${result.location}
//
${result.salary}
@@ -68,18 +77,54 @@ const md = new MarkdownIt({
}
})
+function extractFirstJson(text) {
+ let stack = [];
+ let startIndex = -1;
+ let endIndex = -1;
+
+ for (let i = 0; i < text.length; i++) {
+ const char = text[i];
+
+ if (char === '{') {
+ if (stack.length === 0) startIndex = i; // 记录第一个 '{' 的位置
+ stack.push(char);
+ } else if (char === '}') {
+ stack.pop();
+ if (stack.length === 0) {
+ endIndex = i; // 找到配对的 '}'
+ break;
+ }
+ }
+ }
+
+ if (startIndex !== -1 && endIndex !== -1) {
+ const jsonString = text.slice(startIndex, endIndex + 1);
+ try {
+ const jsonObject = JSON.parse(jsonString);
+ return jsonObject;
+ } catch (e) {
+ return null; // 如果不是有效的 JSON
+ }
+ }
+
+ return null; // 如果没有找到有效的 JSON 对象
+}
+
+
function safeExtractJson(text) {
try {
- const match = text.match(/\{[\s\S]*?\}/); // 提取第一个完整的 JSON 块
- if (match) {
- return JSON.parse(match[0]);
- }
+ const jsonObject = extractFirstJson(text);
+ return jsonObject
} catch (e) {
console.error('JSON 解析失败:', e);
}
return null;
}
+export function clearJobMoreMap() { // 切换对话清空
+ jobMoreMap.clear()
+}
+
export function parseMarkdown(content) {
if (!content) {
return //处理特殊情况,比如网络异常导致的响应的 content 的值为空