This commit is contained in:
luke 2025-07-17 20:08:45 +08:00
commit 674fcb4bd5

View File

@ -60,21 +60,25 @@ async function renderSources(sourceList, sources, jumpMap) {
ul.style.listStyle = "disc"; ul.style.listStyle = "disc";
ul.style.fontSize = "14px"; ul.style.fontSize = "14px";
// ====== 新增去重处理 ======
const seen = new Set();
for (const src of sources) { for (const src of sources) {
const url = jumpMap[src.title]; const url = jumpMap[src.title];
const title = src.title || "未命名文档";
const scoreText = (typeof src.score === "number") ? `(相似度:${(src.score * 100).toFixed(2)}%` : "";
const key = title + "|" + (url || "");
if (seen.has(key)) continue; // 跳过重复
seen.add(key);
const li = document.createElement("li"); const li = document.createElement("li");
li.style.marginBottom = "3px"; li.style.marginBottom = "3px";
li.style.lineHeight = "1.7"; li.style.lineHeight = "1.7";
let scoreText = "";
if (typeof src.score === "number") {
scoreText = `(相似度:${(src.score * 100).toFixed(2)}%`;
}
if (url) { if (url) {
const link = document.createElement("a"); const link = document.createElement("a");
link.href = url; link.href = url;
link.textContent = src.title || "未命名文档"; link.textContent = title;
link.target = "_blank"; link.target = "_blank";
link.style.color = "#2560de"; link.style.color = "#2560de";
link.style.textDecoration = "none"; link.style.textDecoration = "none";
@ -91,15 +95,18 @@ async function renderSources(sourceList, sources, jumpMap) {
li.appendChild(scoreSpan); li.appendChild(scoreSpan);
} }
} else { } else {
li.textContent = (src.title || "未命名文档") + (scoreText ? " " + scoreText : ""); li.textContent = title + (scoreText ? " " + scoreText : "");
li.style.color = "#666"; li.style.color = "#666";
} }
ul.appendChild(li); ul.appendChild(li);
} }
// ====== 去重处理结束 ======
sourceList.appendChild(ul); sourceList.appendChild(ul);
} }
// === 复制代码块功能 === // === 复制代码块功能 ===
function wrapHtmlWithCopyBtn(html) { function wrapHtmlWithCopyBtn(html) {
const wrapper = document.createElement('div'); const wrapper = document.createElement('div');
@ -184,6 +191,7 @@ function insertCopyFullAnswerBtn(msgBox, answerStr) {
let refArr = []; let refArr = [];
const ul = msgBox.querySelector('.llm-sources ul'); const ul = msgBox.querySelector('.llm-sources ul');
if (ul) { if (ul) {
const seen = new Set();
ul.querySelectorAll('li').forEach(li => { ul.querySelectorAll('li').forEach(li => {
let link = li.querySelector('a'); let link = li.querySelector('a');
let title = link ? link.textContent : li.textContent; let title = link ? link.textContent : li.textContent;
@ -191,7 +199,12 @@ function insertCopyFullAnswerBtn(msgBox, answerStr) {
// 分值span // 分值span
let scoreSpan = li.querySelector('span'); let scoreSpan = li.querySelector('span');
let scoreText = scoreSpan ? scoreSpan.textContent : ""; let scoreText = scoreSpan ? scoreSpan.textContent : "";
refArr.push(`- [${title}](${url})${scoreText}`); // 标识唯一性用 title+url
let key = title + '|' + url;
if (!seen.has(key)) {
refArr.push(`- [${title}](${url})${scoreText}`);
seen.add(key);
}
}); });
} }
let refText = ""; let refText = "";