Skip to main content

概述

本概述涵盖 基于文本的嵌入模型。LangChain 目前不支持多模态嵌入。
嵌入模型将原始文本——如句子、段落或推文——转换为固定长度的数字向量,以捕捉其 语义意义。这些向量使机器能够根据意义而不是确切词语来比较和搜索文本。 在实践中,这意味着具有相似想法的文本在向量空间中会被放置在一起。例如,嵌入模型不仅可以匹配 “机器学习” 这个短语,还可以在用不同措辞的情况下,提取讨论相关概念的文档。

工作原理

  1. 向量化:模型将每个输入字符串编码为高维向量。
  2. 相似度评分:使用数学指标比较向量,以衡量底层文本的关联程度。

相似度指标

常用以下几种指标来比较嵌入:
  • 余弦相似度:测量两个向量之间的夹角。
  • 欧几里得距离:测量两点之间的直线距离。
  • 点积:测量一个向量在另一个向量上的投影程度。

接口

LangChain 通过 @[Embeddings] 接口为文本嵌入模型(例如 OpenAI、Cohere、Hugging Face)提供标准接口。 提供两种主要方法:
  • embedDocuments(documents: string[]) → number[][]:嵌入一系列文档。
  • embedQuery(text: string) → number[]:嵌入单个查询。
该接口允许使用不同的策略嵌入查询和文档,尽管在实践中大多数提供者以相同方式处理它们。

安装和使用

安装依赖项:
添加环境变量:
实例化模型:
安装依赖项
添加环境变量:
实例化模型:
安装依赖项:
添加环境变量:
实例化模型:
安装依赖项:
添加环境变量:
实例化模型:
安装依赖项:
添加环境变量:
实例化模型:
安装依赖项:
添加环境变量:
实例化模型:
安装依赖项:
添加环境变量:
实例化模型:
安装依赖项:
实例化模型:
安装依赖项:
添加环境变量:
实例化模型:

缓存

嵌入可以被存储或临时缓存,以避免需要重新计算它们。 使用 CacheBackedEmbeddings 可以缓存嵌入。这个包装器将嵌入存储在键值存储中,其中文本被哈希,哈希值用作缓存中的键。 初始化 CacheBackedEmbeddings 的主要支持方式是 fromBytesStore。它接受以下参数:
  • underlyingEmbeddings:用于嵌入的嵌入器。
  • documentEmbeddingStore:任何 BaseStore,用于缓存文档嵌入。
  • options.namespace:(可选,默认为 "") 用于文档缓存的命名空间。有助于避免冲突(例如,将其设置为嵌入模型名称)。
在生产环境中,您通常会使用更健壮的持久化存储,例如数据库或云存储。请参阅 stores integrations 获取选项。

所有集成


官方原文:src/oss/javascript/integrations/embeddings/index.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026