dev.to #ai短讯
如何检查 AI 助手是否推荐本地商家(法、荷、英)
dev.to作者:VectorGap评测AI评分:50/100
作者通过在蒙特利尔、布鲁塞尔、卢森堡和巴黎测试,发现仅改变提问语言(法语、荷兰语、英语),AI 助手推荐的本地商家结果存在显著差异。
我在卢森堡工作多年,那里的客户可以在同一场会议中从法语切换到德语再切换到英语(而无人对此感到惊讶)。因此,当我开始衡量 AI 助手推荐哪些企业时,我首先想知道的问题很简单:当仅改变提问语言时,答案会发生变化吗?
我所测量的内容
2026 年 9 月底,我在四个城市向同一类买家提出问题:蒙特利尔、布鲁塞尔、卢森堡和巴黎。城市相同,需求相同,模型相同。唯一变化的是语言。
- 7 款具备网页搜索功能的 AI 模型:ChatGPT、Claude、Gemini、Perplexity、Grok、Mistral 以及当时的 DeepSeek(Muse Spark 随后取代了 DeepSeek)。
- 8 个关于“提及角度”(即是否提及该企业名称)的买家问题,这些问题是按照各城市、各语言下买家的实际口吻撰写的,而非逐字翻译。
- 每个企业一个数据点:在收到的回答中,有多少个回答提到了该企业。
结果回顾
| 城市 | 企业 | 提及该企业的回答数 |
|---|---|---|
| 蒙特利尔 | Qubit Insurance | 英语 56 次中有 16 次提及,法语 52 次中有 0 次提及 |
| 布鲁塞尔 | Yago | 法语 56 次中有 29 次提及,荷兰语 53 次中有 8 次提及,英语 56 次中有 2 次提及 |
| 卢森堡 | Weicker & Co | 法语 50 次中有 20 次提及,德语 53 次中有 7 次提及,英语 50 次中有 6 次提及 |
| 巴黎 | Laforêt | 法语 50 次中有 18 次提及,英语 54 次中有 6 次提及 |
| 巴黎 | Paris Property Group | 英语 54 次中有 13 次提及,法语 50 次中有 0 次提及 |
有三点令我惊讶:
- 在同一座城市中,一家企业可能在一种语言中领先,而在另一种语言中却完全缺席。在蒙特利尔,那家被英语回答提及 16 次的保险经纪商,在法语回答中从未被提及。
- 在巴黎,情况是双向的。Laforêt 在法语中占优。Paris Property Group 在英语中占优,且在法语中缺席。
- 在卢森堡,每种语言都将不同的经纪商排在首位:Weicker & Co 在法语中第一,OCA 在英语中第一,IBG 在德语中第一。
如果你的客户使用多种语言进行销售,仅检查一种语言只能告诉你故事的一半(有时甚至不到一半)。
自己动手做
API 调用只是简单部分。协议才是让数据具有意义的关键。
- 用每种语言以买家口吻撰写问题。直译往往听起来不自然,而不自然的问题会得到不同的回答。如果可能,请教母语人士。
- 绝不要在问题中放入企业名称。你想了解的是模型是否会自行提及该企业。
- 询问多个模型,并开启网页搜索功能。每个模型都有自己的信息来源,因此单个模型的回答仅是个例。
- 统计回答数量,而非排名。“在 56 个回答中有 16 次被提及”易于核查且易于复现。
- 在宣称任何变化之前,先测量噪音。10 月 8 日,我在蒙特利尔同一天两次向相同的模型提出相同的问题,并开启网页搜索。某企业的提及次数在 56 次回答中最多变动了 5 次。因此,当我在 30 天后重新测量时,只有当变动幅度超过这一范围,且该企业至少被提及 5 次时,我才将其视为变化。
- 记录所有日期。AI 的回答每天都可能变化。没有日期的数字只是谣言。
以下是步骤 1 至 3 基于 OpenRouter 的最小化版本(每种语言一个模型、一个问题):
import os
import requests
API = "https://openrouter.ai/api/v1/chat/completions"
KEY = os.environ["OPENROUTER_API_KEY"]
MODEL = "your-model-id:online" # ":online" 在 OpenRouter 上开启网页搜索
QUESTIONS = {
"fr": "Quel courtier en assurance me conseillez-vous à Bruxelles ?",
"nl": "Welke verzekeringsmakelaar raad je aan in Brussel?",
"en": "Which insurance broker would you recommend in Brussels?",
}
BUSINESS = "Yago"
for lang, question in QUESTIONS.items():
response = requests.post(
API,
headers={"Authorization": f"Bearer {KEY}"},
json={"model": MODEL, "messages": [{"role": "user", "content": question}]},
timeout=120,
)
answer = response.json()["choices"][0]["message"]["content"]
print(lang, BUSINESS.lower() in answer.lower())多运行几次,你就能亲眼看到第 5 步中的噪音。然后乘以模型、问题和语言的数量,你就明白为什么我停止手动操作了 ;-)
局限性
- 为期一个月(2026 年 9 月),四个城市,少数几个行业。这些数字描述的是那个时刻的情况,而非普遍规则。
- 收到的答案因模型和语言而异(这就是为什么总数是 50 到 56,而不是总是 56)。
- 网络搜索取决于每个模型当天找到的内容。我会重新测量相同的问题,以观察变化。
数据
我发布了完整的表格,包含每次测量的日期:vectorgap.ai/multilingual-ai-visibility。如果你撰写关于多语言 AI 可见性的文章,可以复用这些数据,但需附上链接。
如果你与使用两种语言销售的客户合作,我很想知道:你是否也看到了同样的差距?请在评论区告诉我。
译文已达到本站中文翻译的字数上限,剩余内容请查看原文。