概述
本概述涵盖基于文本的嵌入模型。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
安装依赖:添加环境变量:实例化模型:
Google Vertex
Google Vertex
安装依赖:添加环境变量:实例化模型:
MistralAI
MistralAI
安装依赖:添加环境变量:实例化模型:
Cohere
Cohere
安装依赖:添加环境变量:实例化模型:
Ollama
Ollama
安装依赖:实例化模型:
缓存
嵌入可以被存储或临时缓存,以避免重新计算它们。 可以使用CacheBackedEmbeddings 来缓存嵌入。此包装器将嵌入存储在键值存储中,其中文本被哈希化,哈希值用作缓存中的键。
初始化 CacheBackedEmbeddings 主要支持的方式是 fromBytesStore。它接受以下参数:
- underlyingEmbeddings:用于嵌入的嵌入器。
- documentEmbeddingStore:用于缓存文档嵌入的任何
BaseStore。 - options.namespace:(可选,默认为
"")用于文档缓存的命名空间。有助于避免冲突(例如,将其设置为嵌入模型名称)。
所有集成
阿里云通义
Azure OpenAI
百度千帆
Amazon Bedrock
字节跳动豆包
Cloudflare Workers AI
Cohere
DeepInfra
Fireworks
Google Generative AI
Google Vertex AI
Gradient AI
HuggingFace Inference
IBM watsonx.ai
Jina
Llama CPP
Minimax
MistralAI
Mixedbread AI
Nomic
Ollama
Oracle AI Database
OpenAI
Pinecone
Prem AI
腾讯混元
TensorFlow
TogetherAI
HuggingFace Transformers
Voyage AI
智谱AI
连接这些文档 到 Claude、VSCode 等,通过 MCP 获取实时答案。

