feat(monitoring): exclude qwen from content citation resolution

Skip article alias resolution and content-citation aggregates when the
platform is qwen, and hide the content-citation badge/meta in the
tracking detail view, since qwen's source URLs are not reliable enough
to map to brand articles.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 16:48:28 +08:00
parent 19527cdf42
commit 4a7427a7f1
5 changed files with 114 additions and 38 deletions
@@ -258,7 +258,7 @@ function resolveCitationTitle(citation: MonitoringQuestionDetailCitation): strin
}
function isLinkedInlineCitationPlatform(platformId: string | null | undefined): boolean {
return platformId === "qwen" || platformId === "yuanbao";
return platformId === "yuanbao";
}
function isKimiInlineCitationPlatform(platformId: string | null | undefined): boolean {
@@ -269,6 +269,10 @@ function isDeepSeekInlineCitationPlatform(platformId: string | null | undefined)
return platformId === "deepseek";
}
function supportsContentCitationDisplay(platformId: string | null | undefined): boolean {
return platformId !== "qwen";
}
function createQwenSourceGroupPattern(): RegExp {
return /\[\[source_group_web_(\d+)\]\]/g;
}
@@ -880,6 +884,10 @@ function analyzeInlineContentCitations(
});
}
if (!isLinkedInlineCitationPlatform(platform?.ai_platform_id)) {
return [];
}
const sourceGroupIndexes = collectInlineCitationIndexes(answerText);
if (!sourceGroupIndexes.length) {
return [];
@@ -1160,7 +1168,13 @@ const contentCitationColumns = computed(() => [
<strong>{{ citation.site_name }}</strong>
<span class="tracking-question-source-card__divider" v-if="resolveCitationTitle(citation)">·</span>
<span class="tracking-question-source-card__title" :title="resolveCitationTitle(citation)">{{ resolveCitationTitle(citation) }}</span>
<a-tag v-if="citation.article_id" color="blue" class="tracking-question-source-card__badge">{{ t("tracking.contentCitationBadge") }}</a-tag>
<a-tag
v-if="citation.article_id && supportsContentCitationDisplay(activePlatform?.ai_platform_id)"
color="blue"
class="tracking-question-source-card__badge"
>
{{ t("tracking.contentCitationBadge") }}
</a-tag>
</div>
<div class="tracking-question-source-card__link">
{{ citation.cited_url }}
@@ -1199,7 +1213,10 @@ const contentCitationColumns = computed(() => [
<template v-if="column.key === 'sourcePlatform'">
<div class="cell-primary-stack">
<strong class="table-text" :title="record.site_name">{{ record.site_name }}</strong>
<small v-if="record.content_citation_count > 0" class="meta-subtext">
<small
v-if="record.content_citation_count > 0 && supportsContentCitationDisplay(record.ai_platform_id)"
class="meta-subtext"
>
{{ t("tracking.contentCitationMeta", { count: record.content_citation_count }) }}
</small>
</div>