概述
本概述涵盖 基于文本的嵌入模型。LangChain 目前不支持多模态嵌入。
工作原理
- 向量化:模型将每个输入字符串编码为高维向量。
- 相似度评分:使用数学指标比较向量,以衡量底层文本的关联程度。
相似度指标
常用以下几种指标来比较嵌入:- 余弦相似度:测量两个向量之间的夹角。
- 欧几里得距离:测量两点之间的直线距离。
- 点积:测量一个向量在另一个向量上的投影程度。
接口
LangChain 通过 @[Embeddings] 接口为文本嵌入模型(例如 OpenAI、Cohere、Hugging Face)提供标准接口。 提供两种主要方法:embedDocuments(documents: string[]) → number[][]:嵌入一系列文档。embedQuery(text: string) → number[]:嵌入单个查询。
该接口允许使用不同的策略嵌入查询和文档,尽管在实践中大多数提供者以相同方式处理它们。
安装和使用
OpenAI
OpenAI
安装依赖项:添加环境变量:实例化模型:
Azure
Azure
安装依赖项添加环境变量:实例化模型:
AWS
AWS
安装依赖项:添加环境变量:实例化模型:
Google Gemini
Google Gemini
安装依赖项:添加环境变量:实例化模型:
Gemini Enterprise Agent Platform
Gemini Enterprise Agent Platform
安装依赖项:添加环境变量:实例化模型:
MistralAI
MistralAI
安装依赖项:添加环境变量:实例化模型:
Cohere
Cohere
安装依赖项:添加环境变量:实例化模型:
Ollama
Ollama
安装依赖项:实例化模型:
Voyage AI
Voyage AI
安装依赖项:添加环境变量:实例化模型:
缓存
嵌入可以被存储或临时缓存,以避免需要重新计算它们。 使用CacheBackedEmbeddings 可以缓存嵌入。这个包装器将嵌入存储在键值存储中,其中文本被哈希,哈希值用作缓存中的键。
初始化 CacheBackedEmbeddings 的主要支持方式是 fromBytesStore。它接受以下参数:
- underlyingEmbeddings:用于嵌入的嵌入器。
- documentEmbeddingStore:任何
BaseStore,用于缓存文档嵌入。 - options.namespace:(可选,默认为
"") 用于文档缓存的命名空间。有助于避免冲突(例如,将其设置为嵌入模型名称)。
所有集成
官方原文:src/oss/javascript/integrations/embeddings/index.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。