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 家大模型内容管线的逆向还原。最难的不在算法,而在字段适配的体力活和对"宁空不假"的纪律坚守。把这张表做扎实,后面的五维评分、分平台策略、定期复测,才都有据可依。

← 返回行业洞察