2026-08-26 · 技术案例

拆解信源归因引擎:如何把 12 家大模型的引用源统一解析、归并、量化

信源归因引擎,简单说就是一套把 12 家大模型回答里的引用链接,经过"解析 → 归并 → 量化"三步,变成"每个来源平台在你的 AI 回答里占多少权重"这张表的系统。它解决的是一个工程问题:大模型返回的引用格式彼此不兼容,不归一就什么都算不出来。

一、整体架构:四层管线

采集层  →  解析层  →  归并层  →  量化层

12家API/UI citations字段适配 URL→平台/域名 占比/权重/缺口

(探针) (各家格式不统一) (短链/重定向/二级域名) (按企业品类)

二、真实难点(都是踩过的坑)

1. citations 字段不统一:Perplexity 是 `message.citations[].url`;ChatGPT 开浏览是 `message.source_links[].url`;文心、豆包各自有 `web_references` 之类私有字段。12 家要逐一适配。

2. 短链与重定向:`dwz.cn`、`t.cn` 这类短链不展开,归并就会漏判平台。

3. 二级域名:`baike.baidu.com` 和 `baijiahao.baidu.com` 都要归到"百度系",不能当独立站。

4. 重复计数:同一 URL 在不同题、不同引擎下会被重复引用,计数口径要先定清楚(我们是"按引用出现次数计",方便看杠杆)。

5. 宁空不假:某家没返回引用源,就标空,绝不用"兜底分"填——一次为了好看填了 0.5,整张占比表失真,误导后续优化方向。

三、核心代码(可运行片段)

from urllib.parse import urlparse

from collections import Counter

1) 各家 citations 字段不统一 → 统一抽 URL

def extract_citations(platform, resp):

msg = resp["choices"][0]["message"]

if platform == "perplexity":

return [c["url"] for c in msg.get("citations", [])]

if platform == "chatgpt":

return [s["url"] for s in msg.get("source_links", [])]

if platform in ("doubao", "wenxin"): # 国产:私有字段

return [c.get("url") or c.get("link")

for c in msg.get("web_references", [])]

# ……其余 8 家逐一适配

return []

2) URL → 来源平台 归并(含二级域名归一)

PLATFORM_MAP = {

"zhihu.com": "知乎", "baijiahao.baidu.com": "百家号",

"baike.baidu.com": "百度系", "toutiao.com": "今日头条",

"douyin.com": "抖音", "mp.weixin.qq.com": "微信公众号",

"csdn.net": "CSDN", "juejin.cn": "掘金",

}

def url_to_platform(url):

host = urlparse(url).netloc.lower()

for domain, name in PLATFORM_MAP.items():

if domain in host:

return name

return "其他/独立站"

3) 量化:按来源平台算引用占比

def compute_weights(url_list):

counter = Counter(url_to_platform(u) for u in url_list if u)

total = sum(counter.values()) or 1

return {k: round(v / total * 100, 1) for k, v in counter.most_common()}

用法

urls = extract_citations("doubao", resp)

print(compute_weights(urls))

=> {'今日头条': 34.2, '抖音': 13.5, '知乎': 21.8, '其他/独立站': 30.5}

四、用外部基准对照,但按自身品类实测

外部研究能帮我们校准"行业大致长什么样"。例如腾讯云开发者社区 2026 年 7–8 月实测显示豆包约 36% 引用来自字节系(抖音+头条),文心约 22% 来自百度系。我们引擎会把这些作为对照基线打印在报告里,但真正的权重一定用企业自己的题集跑出来——因为换一个品类,比例可能天差地别。

这也是我们和"套通用比例"的服务最根本的区别:归因必须贴近企业真实业务场景,通用比例只是地图,不是领土。

五、工程复盘

信源归因看起来是"数链接",实则是对 12 家大模型内容管线的逆向还原。最难的不在算法,而在字段适配的体力活和对"宁空不假"的纪律坚守。把这张表做扎实,后面的五维评分、分平台策略、定期复测,才都有据可依。

← 返回睿贤GEO笔记