You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Langchain的similaritySearch是否向量化并使用Token?是否依赖OpenAIEmbeddings?

关于similaritySearchWithScore的Token使用与检索流程解答

你的问题处理流程

是的,你的问题会先经过OpenAIEmbeddings处理转换成向量,再进入向量数据库进行相似性检索。
当你调用vectorStore.similaritySearchWithScore(question)时,内部逻辑会自动把传入的question交给绑定的OpenAIEmbeddings实例生成对应的向量表示,接着用这个向量在数据库里匹配存储的所有向量,最终返回相似度最高的结果及对应的分数。

如何确认是否消耗Token

有几种直接的方式可以验证:

  • 查看OpenAI账户账单:OpenAIEmbeddings生成向量依赖OpenAI的Embeddings API,每生成一次向量就会消耗对应Token。你可以登录OpenAI账户,查看账单里的Embeddings相关使用记录,只要调用检索方法时触发了向量生成,就能看到对应的Token消耗条目。
  • 添加调试代码:手动触发向量生成并观察,比如在调用检索前先单独调用Embeddings的embedQuery方法,同时打印日志确认:
const embeddings = new OpenAIEmbeddings();
// 手动生成问题向量,验证是否触发Token消耗
const testVector = await embeddings.embedQuery(question);
console.log("问题向量已生成,长度:", testVector.length);

// 再执行原检索逻辑
const simpleRes = await vectorStore.similaritySearchWithScore(question);
console.log(simpleRes);

similaritySearchWithScore内部本质就是调用了类似embedQuery的方法生成向量,所以只要这个步骤执行,就会消耗Token。

  • 检查VectorStore配置:确认你的vectorStore是和OpenAIEmbeddings绑定的,如果是使用OpenAI的Embeddings服务而非本地离线模型,那么每次检索时的输入转换都会消耗Token。

内容的提问来源于stack exchange,提问作者Uno_Count

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 19:48:18