# OpenRouter 发布 2026 年最佳嵌入模型选型指南，覆盖 37 个目录条目

- 来源：OpenRouter：Announcements（RSS）
- 作者：OpenRouter
- 发布时间：2026-09-23 08:00
- AIHOT 分数：66
- AIHOT 标记：精选
- AIHOT 链接：https://aihot.news/items/cmude350u077jroggw7odbigk
- 原文链接：https://openrouter.ai/blog/insights/best-embedding-models-2026

## 精选理由

作者用自家 API 实测 19 个模型并按用例给出候选、价格与维度，读者可按输入类型和存储约束直接对照选型。

## AI 摘要

OpenRouter 于 2026 年 9 月 11 日核实嵌入模型目录共 37 个条目，并通过自家 embeddings API 向 19 个模型发送批量请求、共 28 项检查，确认请求与响应行为。

## 正文

嵌入向量模型决定了你的检索系统能检索到什么。它把每个输入转换为一个向量，并将相关的输入彼此靠近放置，这样你的应用就能按语义而非精确措辞来检索。

最佳选择取决于你需要检索的材料。英文知识库、多语言支持档案库、源代码仓库，以及文本加图像的集合，各自有着不同的需求。向量维度、上下文长度、公开权重和价格也会改变这一决策。

我们为英文 RAG、多语言检索、代码搜索、文本加图像检索以及低成本索引分别筛选了候选模型，然后通过我们的 embeddings 端点向每一个模型发送了实时请求。

最后验证时间： 2026 年 9 月 11 日。我们的嵌入向量模型目录在该日期返回了 37 个条目，其中包括部分模型的批量和预览变体。

提供商可能会增加或移除路由，提示词价格也可能变化。在开始大规模索引或重新索引任务之前，请查看当前的模型页面。如果模型页面与本指南不一致，请以模型页面为准。

简而言之

英文 RAG 从 openai/text-embedding-3-small 开始。

当你的输入超过 8,192 tokens，或者你想在 Voyage 4 各档之间切换而无需重建索引时，可以测试 voyageai/voyage-4-large。如果你想要一个开放权重替代方案，qwen/qwen3-embedding-8b 拥有更长的上下文窗口，且提示词价格更低。

使用 qwen/qwen3-embedding-8b 进行多语言检索，采用公开权重；使用 voyageai/voyage-code-4 进行代码搜索；使用 google/gemini-embedding-2 或 voyageai/voyage-multimodal-3.5 进行文本与图像检索。

perplexity/pplx-embed-v1-0.6b 在我们候选名单中的付费文本模型里拥有最低的提示词价格。nvidia/nemotron-3-embed-1b:free 是一个免费的文本嵌入向量路由，具有 32,768-token 的上下文窗口。

我们的 API 检查确认的是请求和响应行为，而非检索质量。在构建或重建完整索引之前，请至少用你应用中的标注查询和文档对比两个候选方案。

按使用场景划分的最佳嵌入向量模型

使用场景推荐模型入选候选名单的原因

默认英文 RAGopenai/text-embedding-3-small低提示词价格、8,192-token 上下文，以及可调整的输出维度

输入超过 8,192 tokensvoyageai/voyage-4-large32,000-token 上下文、四种可选维度，以及与其他 Voyage 4 层级兼容的嵌入向量

使用公开权重进行多语言检索qwen/qwen3-embedding-8b支持超过 100 种语言、32,768 token 的上下文窗口，以及公开权重

代码搜索voyageai/voyage-code-4专为检索代码及相关技术内容而构建

文本与图像检索google/gemini-embedding-2将文本和图像置于同一嵌入向量空间。voyageai/voyage-multimodal-3.5 是我们验证的第二个选项

价格最低的付费文本选项perplexity/pplx-embed-v1-0.6b提示词价格为每百万输入 token $0.004，上下文窗口为 32,000 token

免费文本嵌入向量nvidia/nemotron-3-embed-1b:free一条免费路由，具有 32,768 token 的上下文窗口和多语言模型卡

按输入类型选择模型

从你需要检索的素材入手。这张图表先按输入类型排序，再按你是否需要公开权重排序，最后按你的主要限制条件排序。

这张图表为你提供一个起点。在构建或重建大型索引之前，至少用你应用中的查询和文档对比两个候选模型，并跟踪每个模型检索到相关文本块的频率。

我们如何选择这些模型

我们使用实时目录来确认可用性、上下文窗口、输入类型和提示词价格。我们查阅了模型提供商的文档以了解其能力和基准测试结果，然后通过我们的嵌入向量端点发送实时请求，以确认请求和响应行为。

我们向 19 个模型发送了双字符串批量请求，共运行了 28 项检查，涵盖批量输入、可配置维度、图像输入、文本加图像输入以及错误处理。16 个付费模型每个输入返回一个向量。响应确认了下表中的默认维度，并表明 dimensions 参数适用于 OpenAI Text Embedding 3 Small、Gemini Embedding 2 和 Voyage 4 Large。对不存在的模型发起请求会返回 400 错误，并附带消息 Model openai/does-not-exist does not exist。

这三条免费路由从我们的测试账户返回了 404 错误，因为该账户的隐私设置不允许路由到可能使用免费模型提示词进行训练的提供商。我们将在下文的免费选项部分描述该设置。我们为这些模型列出的默认维度来自它们的模型卡，而非来自我们的响应。

这些请求确认了 API 兼容性。它们并未衡量检索质量。我们排除了响应时间，因为每个模型都是在不同的服务条件下接收一个较小的请求。我们将每个用例与一项有文档记录的能力进行匹配，然后使用语言覆盖范围、上下文长度、输出维度、公开权重和提示词价格来缩小候选范围。已发布的评测，包括 MTEB 和 CoIR，帮助我们确定了要测试的模型。你标注的检索结果应当决定你部署哪一个。

比较入围的嵌入向量模型

以下价格是 2026 年 9 月 11 日我们目录中列出的提示词价格，而 Gemini Embedding 2 的图像价格是 2026 年 9 月 18 日的目录值。默认维度来自我们的实时响应，唯一的例外是免费的 NVIDIA 模型，其默认值来自其模型卡。

模型输入上下文默认维度每百万 token 的提示词价格权重

openai/text-embedding-3-small文本8,1921,536$0.02已关闭

openai/text-embedding-3-large文本8,1923,072$0.13已关闭

voyageai/voyage-4-lite文本32,0001,024$0.02已关闭

voyageai/voyage-4文本32,0001,024$0.06已关闭

voyageai/voyage-4-large文本32,0001,024$0.12已关闭

voyageai/voyage-code-4文本，针对代码优化32,0001,024$0.12已关闭

voyageai/voyage-multimodal-3.5文本和图像32,0001,024$0.12已关闭

qwen/qwen3-embedding-8b文本32,7684,096$0.01开放

qwen/qwen3-embedding-4b文本32,7682,560$0.02开放

perplexity/pplx-embed-v1-0.6b文本32,0001,024$0.004开放

perplexity/pplx-embed-v1-4b文本32,0002,560$0.03开放

google/gemini-embedding-2文本和图像8,1923,072文本 $0.20，图像 token $0.45闭源

nvidia/nemotron-3-embed-1b:free文本32,7682,048免费开放

维度列会影响原始索引大小。公式和示例见下文“计算向量存储”。

我们的目录中包含的模型比表中展示的更多。baai/bge-m3 增加了另一个开放的多语言选项，mistralai/mistral-embed-2312 提供了通用文本替代方案，而 mistralai/codestral-embed-2505 则面向代码检索。这三者在我们文本请求检查中都返回了向量。目录还列出了来自 BAAI、E5、GTE 和 Sentence Transformers 的一组 512-token 开放模型，价格为每百万 token $0.005 至 $0.01，我们未在本指南中对其进行测试。

英文 RAG 的最佳默认选择

当你需要一个用于英文知识库的托管模型时，从 openai/text-embedding-3-small 开始。它的默认向量有 1,536 个值，是 openai/text-embedding-3-large 默认值的一半。在相同的数值格式下，Small 使用的原始向量存储只有一半。首次评估时保留 1,536 个值的默认设置，只有当默认设置满足检索目标但存储或搜索成本仍是制约因素时，才考虑缩减。

你可以用 dimensions 参数缩短它的向量。我们使用 "dimensions": 256 的请求返回了一个包含 256 个值的向量。更小的向量占用更少的数据库存储，并减少相似度搜索所需的工作量，但它们也可能降低检索质量。在更改现有索引之前，先测试更小的尺寸。

OpenAI 将 text-embedding-3-large 描述为其在英文和非英文任务上能力最强的嵌入模型。当 Small 遗漏相关结果时，尤其是当用户跨语言搜索时，测试它。迁移到 Large 会改变向量大小和提示词价格，因此在重新嵌入语料库之前，先在留出问题上比较两个模型。

如果你的输入超过 Small 的 8,192-token 限制，测试 Voyage 4 Large。对于较短的输入，使用相同的分块、查询和相关性标签来比较两个模型。

Voyage 4 系列，适用于更长的输入

当你需要一个托管的 32,000-token 模型，且要求维度可调、并兼容 Voyage 4 各档位时，可以测试 voyageai/voyage-4-large。它最多接受 32,000 tokens，并支持 256、512、1,024 和 2,048 维。在我们的 API 检查中，将 dimensions 设为 512 返回了一个包含 512 个值的向量。

该系列包括 voyageai/voyage-4 和 voyageai/voyage-4-lite，它们使用相同的上下文窗口。Voyage 表示，使用 4 系列创建的所有嵌入向量彼此兼容。这让你可以针对现有索引测试另一个 Voyage 4 档位。在部署前，请在具有代表性的样本上验证档位变更。兼容的向量空间免除了重建索引的要求，但并不能保证检索结果完全一致。

用 Large 和至少一个更低的 Voyage 4 档位在同一评估集上运行。如果它们在相同截断点检索到相同的相关段落，那么更低的档位可能满足你的需求。

Voyage 模型是托管服务。如果你需要公开权重以便自托管或控制部署，Qwen3 Embedding 8B 是本短名单中的开放权重替代方案。

最适合多语言检索的开放权重模型

qwen/qwen3-embedding-8b 是我们开放权重的多语言选择。它支持 100 多种语言，你可以从 Hugging Face 下载权重，或通过我们的 API 调用托管模型。我们的默认 API 请求返回了 4,096 个值。在相同的数值格式下，一个 4,096 值的向量占用的原始存储空间是一个 1,024 值向量的四倍。在估算索引大小时要把这一差异考虑进去。我们的 API 检查并不能确定 Qwen3 Embedding 8B 是否比 nvidia/nemotron-3-embed-1b:free 检索效果更好。当路由成本和向量大小会影响决策时，在最终确定之前，请在同一份标注数据集上对两者都进行测试。

Qwen 模型卡显示，截至 2025 年 6 月 5 日，其在 Massive Text Embedding Benchmark（MTEB）上的多语言得分为 70.58。这是厂商报告的公开基准测试结果。用它来把 Qwen 列入候选名单，然后测试你的应用所支持的每一种语言和领域，因为你的语料库可能得出不同的排名。

模型页面列出了 32,768 token 的上下文窗口，但该限制是按端点设置的。2026 年 9 月 11 日，Qwen3 Embedding 8B 的 DeepInfra 和 SiliconFlow 端点列出的是 32,768 token，而 Nebius 端点列出的是 32,000。如果你发送的输入超过 32,000 token，请查看 端点列表，并固定选择一个限制更大的提供商，或将输入保持在 32,000 token 及以下。

4B 版本使用相同的模型级上下文窗口，在我们的检查中返回了 2,560 个值。它自行运行所需的资源更少。托管价格取决于可用的提供商，因此在选择之前，请比较 Qwen3 Embedding 8B 和 4B 当前的模型页面。

baai/bge-m3 为你提供了第二个开放的多语言模型，可在你自己的数据集上与 Qwen3 进行对比。其 模型卡涵盖 100 多种语言，输入上限为 8,192 个 token，我们的请求返回了一个 1,024 维的向量。上游模型可以返回多种表示类型，包括稠密向量和稀疏向量。我们的标准嵌入响应返回的是稠密向量。如果你的检索设计依赖于其他表示类型，请使用上游实现。

最适合代码搜索的嵌入模型

当查询需要检索某个函数、文件或某段代码文档时，请使用 voyageai/voyage-code-4。Voyage 专为代码检索和编码智能体工作负载构建了该模型。其 32,000 token 的上下文窗口可以接受较长的文件或查询，不过索引分块仍应代表在被检索时有用的代码单元。

mistralai/codestral-embed-2505 是我们目录中主要的代码专用替代方案。在我们的文本请求检查中，它返回了 1,536 个值。其上下文窗口为 8,192 个 token，而 Voyage Code 4 为 32,000 个。请先测试 Voyage Code 4，并将 Codestral Embed 作为对比模型。

公开评测可以帮助你比较候选模型。代码信息检索基准 CoIR包含十个数据集，覆盖七个领域中的八项代码检索任务。在将最强的候选模型用于你自己代码仓库中的工作进行测试之前，可以用它来比较模型。一个有用的内部评测方式，是将 issue 描述或开发者问题映射到解决它们所需的文件和分块。

最适合文本与图像检索的模型

当同一个索引需要同时检索文本和图像时，请使用 google/gemini-embedding-2。它把两种输入类型放入同一个嵌入向量空间，因此文本查询可以检索到含义相关的图像，图像查询也可以检索到相关文本。

我们通过 embeddings 端点验证了文本、base64 编码的 PNG 图像，以及文本与图像组合的请求。每个请求都返回一个包含 3,072 个数值的向量。我们还发送了一个使用 "dimensions": 768 的文本请求，收到了一个包含 768 个数值的向量。在我们的检查中，一张 64 × 64 像素的 PNG 计为 258 个提示词 token，费用为 $0.000128。截至 2026 年 9 月 18 日，我们的目录在 模型页面上为该模型单独标注了图像输入价格，为每百万图像 token $0.45，因此在为大规模图像集合建立索引之前，请先查看模型页面。本指南将推荐范围限定为文本和图像输入，因为这些是我们验证过的请求类型。

voyageai/voyage-multimodal-3.5 是我们验证的第二个文本与图像模型。它的图像请求和文本与图像组合请求各自返回一个包含 1,024 个数值的向量，同样一张 64 × 64 像素的 PNG 计为 89 个提示词 token，费用为 $0.00003。它具有 32,000 token 的上下文窗口，提示词价格为每百万 token $0.12。Gemini Embedding 2 和 Voyage Multimodal 3.5 使用不同的向量空间，因此在建立索引之前请先选定其中一个。

google/gemini-embedding-001 是一个独立的纯文本模型，具有 20,000 token 的上下文窗口。这两个 Gemini 模型使用不同的向量空间，因此在它们之间切换需要你重新为索引生成嵌入向量。

nvidia/llama-nemotron-embed-vl-1b-v2:free 是我们目录中一个免费的文本与图像路由，上下文窗口为 131,072 个 token。由于下文所述的隐私设置原因，我们的测试账号无法调用它，因此我们将其排除在推荐之外。

最佳低成本与免费选项

perplexity/pplx-embed-v1-0.6b 在我们候选名单中拥有最低的付费文本价格，为每百万输入 token $0.004。它最多接受 32,000 个 token，并返回了一个包含 1,024 个值的向量。更大的 perplexity/pplx-embed-v1-4b 返回了 2,560 个值，其提示词价格为每百万输入 token $0.03。

Perplexity 将 0.6B 模型定位为轻量、低延迟的检索，将 4B 模型定位为更高质量的检索。我们的 API 检查确认了默认向量大小，但并未确认哪个 Perplexity 模型检索效果更好。将提供商的定位视为候选信号，并在带标注的查询上比较这两个模型。

将免费路由用于评估，而不是作为大型生产索引任务的唯一路径。当你需要一个免费的候选模型来测试时，可以从 nvidia/nemotron-3-embed-1b:free 开始。它的上下文窗口为 32,768 个 token，并且 NVIDIA 的模型卡 报告了 2,048 个值的输出向量、覆盖 34 种语言的评估，以及通过 L2 重新归一化将向量切分为更小尺寸的支持。NVIDIA 在 OpenMDW-1.1 许可下发布了权重。在将免费路由用于生产索引任务之前，请查看当前模型页面以了解可用性和速率限制。可用性和速率限制可能会在批处理期间发生变化。

我们目录中的免费路由由数据政策可能允许使用你的提示词进行训练的提供商提供服务。你的账户隐私设置中，付费模型和免费模型有各自独立的开关。当免费模型开关关闭时，向这些路由之一发出的请求会返回 404 错误，该错误会指明免费模型训练设置并列出被排除的端点。我们的测试账户关闭了该开关，这就是那三条免费路由未能通过我们检查的原因。一个禁用免费模型训练的工作区护栏，或在请求中将provider.data_collection设置为deny，会排除相同的端点并产生相同的 404 错误。关于我们如何应用这些设置，请参阅提供商日志记录与训练政策。

liquid/lfm-2.5-embedding-350m:free是候选名单中的另一条免费文本路由。其 512-token 上下文窗口将每次输入限制为一段短文本，因此较长的文档需要比本指南中其他模型更小的分块。仅当每个嵌入文本段都适合在 512 tokens 以内时使用它，例如简短的 FAQ 条目、标题或句子级片段。当你的检索单元需要更长的上下文时，请将其排除。

在你的数据上评估嵌入向量模型

对每个候选模型使用相同的语料库、查询、相关性标签、分块和检索指标。只更换模型，保持评估的其余部分固定不变，以便结果保持可比性。

评估英文 RAG

为每个候选方案使用相同的分块策略。先从约 512 到 1,024 个 token 的块开始，并设置重叠，然后根据你的文档结构和检索结果调整块大小。

从你的用户提出的问题入手，并标注包含答案的块。使用你的应用发送给生成模型的相同检索块数量来衡量召回率。当多个块都相关、但其中一些比另一些更有用时，加入归一化折损累计增益，即 nDCG。

评估多语言检索

纳入你计划支持的所有语言。如果用户可能用一种语言写查询、却检索另一种语言的文档，就加入跨语言用例。将每种语言的结果单独报告，并与总体平均值并列呈现，这样某一语言的优异结果就不会掩盖另一语言的糟糕结果。

评估代码搜索

使用开发者的问题或 issue 描述，并标注能解决它们的文件或代码块。CoIR 可以补充这一数据集。你针对自己代码仓库的标注应占更大权重，因为它们反映了你的应用实际会运行的搜索。

计算向量存储

将向量存储纳入比较。一百万个 4,096 维的 float32 向量在索引开销之前需要约 16.4 GB。一百万个 1,024 维的向量需要约 4.1 GB。你可以用以下公式估算原始存储：

vector storage in bytes = number of vectors x dimensions x bytes per value

在每一个受支持的向量维度上比较检索质量，然后选择满足你目标的最小维度。将选定的模型和维度同时用于索引和查询。

为索引和查询使用兼容的模型

来自不同模型族的向量不共享同一坐标空间。如果你用 openai/text-embedding-3-small 为文档建立索引，就必须用相同的模型和配置为每个查询生成嵌入向量。混用模型会产生不可靠的检索结果。同样的规则也适用于 google/gemini-embedding-2 和 google/gemini-embedding-001。在它们之间切换需要重建索引。

更换模型通常需要重新为整个语料库生成嵌入向量。Voyage 在设计 Voyage 4 文本模型时就使其产生兼容的向量，这在该模型族内构成了一个有文档记录的例外。在更改查询或索引路径之前，先对样本进行测试，因为所选的层级仍可能影响检索质量。

将模型 slug、输出维度、提示词格式和创建日期与索引元数据一起存储。一些嵌入模型使用 input_type 值来区分查询（例如 search_query）与索引内容（例如 search_document）。将每一侧所使用的值随索引元数据一起存储。这些字段让后续部署在查询索引之前能够核对其嵌入配置。

在我们的整个模型目录中，端点保持不变。模型 slug 和输出维度必须与构建索引时所用的配置一致。如果你用非默认维度构建了索引，那么在为查询生成嵌入向量时也要包含相同的 dimensions 值。

通过我们的 API 调用嵌入模型

向 https://openrouter.ai/api/v1/embeddings 发送请求。以下 Python 示例使用了通过我们验证的相同批量请求结构：

import os

import requests

response = requests.post( "https://openrouter.ai/api/v1/embeddings", headers={ "Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}", "Content-Type": "application/json", }, json={ "model": "openai/text-embedding-3-small", "input": [ "Reset a password from the account settings page.", "Refunds are available within 14 days of purchase.", ], }, timeout=90, )

response.raise_for_status() result = response.json() vectors = [item["embedding"] for item in result["data"]]

print(len(vectors)) print(len(vectors[0]))

响应中会按相同顺序为每个输入返回一个向量。当所选模型支持可调维度时，请在请求中添加 "dimensions": 256 或其他受支持的维度值，并将该值与索引元数据一起存储。

对于 Gemini Embedding 2 和 Voyage Multimodal 3.5，请将图像输入放入 content 数组中，该数组位于 input 列表内。我们已在两个模型上验证了这一请求结构：

payload = { "model": "google/gemini-embedding-2", "input": [ { "content": [ {"type": "text", "text": "A purple square"}, { "type": "image_url", "image_url": {"url": "data:image/png;base64,BASE64_IMAGE_DATA"}, }, ] } ], "encoding_format": "float", }

省略文本部分即可仅嵌入图像。完整的请求与响应 schema 请参阅我们的 Embeddings API 文档。

常见问题

我应该使用哪个嵌入向量模型？

根据你检索的材料以及对部署至关重要的约束条件来选择。先从支持你的输入类型、语言覆盖范围、上下文长度和权重要求的候选模型入手。在同一组标注查询上至少比较两个模型，然后选择那个在可接受的存储和索引成本下满足你检索目标的模型。

我可以在不重建索引的情况下更换嵌入向量模型吗？

切换到另一个模型系列需要重建索引，因为文档和查询必须使用来自同一模型和配置的向量。Voyage 表示，Voyage 4 Large、Voyage 4 和 Voyage 4 Lite 的嵌入向量彼此兼容。在更换档位之前，先在样本上测试检索质量。

最快的嵌入向量模型是什么？

我们没有为本指南运行受控的延迟基准测试。延迟会随输入长度、批大小、提供商负载和路由而变化。请用你的应用实际会使用的输入和批大小来测试这些端点。

我应该使用最大的嵌入维度吗？

根据你的检索结果和存储限制来选择嵌入维度。更高的维度需要更多存储，每次相似度搜索也需要更多计算。当模型支持降低维度时，使用在你的评估集上满足检索目标的最小维度。

text-embedding-ada-002 还是一个好的默认选择吗？

我们不会把 text-embedding-ada-002 作为新的基于 OpenAI 的索引的默认选择。先评估 text-embedding-3-small，然后如果你的检索结果足以证明更高的提示词价格和更大的向量是合理的，再将其与 text-embedding-3-large 进行比较。

为什么一个免费的嵌入向量模型会返回 404 错误？

我们目录中的免费嵌入向量路由由数据政策可能允许使用你的提示词进行训练的提供商提供服务。如果你的账户隐私设置、工作区护栏，或将 provider.data_collection 请求字段设置为 deny 排除了那些会使用免费模型提示词进行训练的提供商，那么就没有符合条件的端点，请求会返回 404 错误，并指明免费模型训练限制。在你认定该模型 ID 无效之前，请先检查你账户的隐私页面以及应用于该 API key 的任何护栏。
