input_type 为什么重要
Cohere 的托管 embedding 接口区分 input_type:入库文档用 search_document,检索查询用 search_query,分类与聚类任务另有取值。模型按不同类型分别训练过,类型用错会让查询向量与文档向量落在不匹配的位置,检索质量明显下降,而这类问题不会有任何报错,只能靠评测发现。
基本信息
| 类型取值 | search_document、search_query、classification、clustering |
|---|---|
| 使用规则 | 文档入库与用户查询分别使用对应类型 |
| 接口特征 | 一次请求可提交多条文本,返回等长向量列表 |
| 注意 | 批量上限与计费口径以官方文档为准 |
典型使用场景
- 文档入库:整批切片用 search_document 一次性向量化
- 在线检索:用户查询用 search_query 生成查询向量
- 离线评测:构造 gold 时查询与文档两侧类型都不能写错
- 多语言语料:多语言模型在同一接口下按类型区分调用
- 迁移核对:从其他厂商迁移时确认类型语义是否一一对应
查询与文档分别调用
查询与文档分别调用
import cohere
co = cohere.Client()
resp = co.embed(
texts=["超时配置说明…"],
model="embed-multilingual-v3.0",
input_type="search_document", # 查询侧必须改为 search_query
)
print(len(resp.embeddings[0])) # 维度与集合配置保持一致
# 大批量请求分批发送更稳妥,便于重试与计费控制
input_type 与场景
| input_type | 用在什么侧 | 写错的后果 |
|---|---|---|
| search_document | 入库的文档片段 | 与查询向量不匹配,召回下降 |
| search_query | 用户查询 | 最常见的低级错误 |
| classification | 文本分类训练 | 分类特征质量下降 |
| clustering | 聚类任务 | 簇划分与预期差异较大 |
批量上限与计费口径以官方文档为准;大批量请求分批发送更稳妥,便于失败重试与用量控制。
类型写错不会报错,只会让指标悄悄变差:把「文档侧与查询侧类型」写进代码评审清单,比事后排查便宜得多。
调用前先确认模型与集合维度一致:托管接口换模型时维度可能变化,而集合维度一旦建成通常要重建才能修改,事先核对能避免一次昂贵的重灌。
请求要处理限流与重试:批量入库时突发流量容易触发限流,按返回的限流信息退避重试,并把失败批次记录下来,避免重跑时整批重复计费。