mirror of
https://github.com/jina-ai/node-DeepResearch.git
synced 2025-12-26 14:30:17 +08:00
fix: unnecessary eval
This commit is contained in:
parent
71157a7468
commit
023bf0ef9c
20
src/agent.ts
20
src/agent.ts
@ -31,7 +31,7 @@ import {
|
|||||||
rankURLs,
|
rankURLs,
|
||||||
filterURLs,
|
filterURLs,
|
||||||
normalizeUrl,
|
normalizeUrl,
|
||||||
weightedURLToString, getLastModified, keepKPerHostname, processURLs
|
weightedURLToString, getLastModified, keepKPerHostname, processURLs, fixBadURLMdLinks
|
||||||
} from "./utils/url-tools";
|
} from "./utils/url-tools";
|
||||||
import {
|
import {
|
||||||
buildMdFromAnswer,
|
buildMdFromAnswer,
|
||||||
@ -911,13 +911,17 @@ But unfortunately, you failed to solve the issue. You need to think out of the b
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!trivialQuestion) {
|
if (!trivialQuestion) {
|
||||||
(thisStep as AnswerAction).mdAnswer = fixCodeBlockIndentation(await fixMarkdown(
|
(thisStep as AnswerAction).mdAnswer =
|
||||||
buildMdFromAnswer((thisStep as AnswerAction)),
|
fixBadURLMdLinks(
|
||||||
allKnowledge,
|
fixCodeBlockIndentation(
|
||||||
context,
|
await fixMarkdown(
|
||||||
SchemaGen
|
buildMdFromAnswer((thisStep as AnswerAction)),
|
||||||
)
|
allKnowledge,
|
||||||
);
|
context,
|
||||||
|
SchemaGen
|
||||||
|
)
|
||||||
|
),
|
||||||
|
allURLs);
|
||||||
} else {
|
} else {
|
||||||
(thisStep as AnswerAction).mdAnswer = fixCodeBlockIndentation(
|
(thisStep as AnswerAction).mdAnswer = fixCodeBlockIndentation(
|
||||||
buildMdFromAnswer((thisStep as AnswerAction))
|
buildMdFromAnswer((thisStep as AnswerAction))
|
||||||
|
|||||||
@ -545,4 +545,49 @@ export async function processURLs(
|
|||||||
success: validResults.length > 0,
|
success: validResults.length > 0,
|
||||||
badURLs
|
badURLs
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function fixBadURLMdLinks(mdContent: string, allURLs: Record<string, SearchSnippet>): string {
|
||||||
|
// Regular expression to find markdown links with the pattern [url](url)
|
||||||
|
const mdLinkRegex = /\[([^\]]+)]\(([^)]+)\)/g;
|
||||||
|
|
||||||
|
// Replace each match with a prettier version
|
||||||
|
return mdContent.replace(mdLinkRegex, (match, text, url) => {
|
||||||
|
// Check if the text and URL are the same
|
||||||
|
if (text === url) {
|
||||||
|
// Look up the URL directly in the record using the url as key
|
||||||
|
const urlInfo = allURLs[url];
|
||||||
|
|
||||||
|
if (urlInfo) {
|
||||||
|
try {
|
||||||
|
// Extract hostname from the URL
|
||||||
|
const hostname = new URL(url).hostname;
|
||||||
|
|
||||||
|
// If title is available, use [title - hostname](url) format
|
||||||
|
if (urlInfo.title) {
|
||||||
|
return `[${urlInfo.title} - ${hostname}](${url})`;
|
||||||
|
}
|
||||||
|
// Otherwise use [hostname](url) format
|
||||||
|
else {
|
||||||
|
return `[${hostname}](${url})`;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// If URL parsing fails, return the original link
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// If URL is not in allURLs, try to extract hostname
|
||||||
|
try {
|
||||||
|
const hostname = new URL(url).hostname;
|
||||||
|
return `[${hostname}](${url})`;
|
||||||
|
} catch (e) {
|
||||||
|
// If URL parsing fails, return the original link
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// If the text and URL are not the same, leave the link as is
|
||||||
|
return match;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user