概述
本概述涵盖基于文本的嵌入模型。LangChain 目前不支持多模态嵌入。参见顶级集成。
工作原理
- 向量化 — 模型将每个输入字符串编码为高维向量。
- 相似度评分 — 使用数学指标比较向量,以衡量底层文本的相关程度。
相似度指标
通常使用以下几种指标来比较嵌入:- 余弦相似度 — 测量两个向量之间的夹角。
- 欧几里得距离 — 测量点之间的直线距离。
- 点积 — 测量一个向量在另一个向量上的投影程度。
接口
LangChain 通过 Embeddings 接口为文本嵌入模型(例如 OpenAI、Cohere、Hugging Face)提供了标准接口。 提供两种主要方法:embed_documents(texts: List[str]) → List[List[float]]: 嵌入文档列表。embed_query(text: str) → List[float]: 嵌入单个查询。
该接口允许使用不同策略对查询和文档进行嵌入,尽管在实际操作中大多数提供商的处理方式相同。
顶级集成
缓存
可以存储或临时缓存嵌入结果,以避免重复计算。 可以使用CacheBackedEmbeddings 来缓存嵌入结果。该包装器将嵌入结果存储在键值存储中,其中文本会被哈希处理,且哈希值将用作缓存中的键。
初始化 CacheBackedEmbeddings 的主要支持方式是 from_bytes_store。它接受以下参数:
underlying_embedder: 用于嵌入的基础嵌入器。document_embedding_cache: 用于缓存文档嵌入的任何ByteStore。batch_size:(可选,默认为None)在两次存储更新之间要嵌入的文档数量。namespace:(可选,默认为"")用于文档缓存的命名空间。有助于避免冲突(例如,可设置为嵌入模型的名称)。query_embedding_cache:(可选,默认为None)用于缓存查询嵌入的ByteStore,或设置为True以复用与document_embedding_cache相同的存储。
所有嵌入模型
Aleph Alpha
Anyscale
Ascend
AI/ML API
AwaDB
AzureOpenAI
Baichuan 文本嵌入
百度千帆
Baseten
Bedrock
Hugging Face 上的 BGE
Bookend AI
Clarifai
Cloudflare Workers AI
Clova 嵌入
Cohere
DashScope
Databricks
DeepInfra
EDEN AI
Elasticsearch
Embaas
模拟嵌入
Qdrant 的 FastEmbed
Fireworks
Google Gemini
Google Vertex AI
GPT4All
Gradient
GreenNode
Hugging Face
IBM watsonx.ai
Infinity
指令嵌入
IPEX-LLM CPU
IPEX-LLM GPU
Isaacus
Intel Transformer 扩展
Jina
John Snow Labs
LASER
Lindorm
Llama.cpp
LLMRails
LocalAI
MiniMax
MistralAI
Model2Vec
ModelScope
MosaicML
Naver
Nebius
Netmind
NLP Cloud
Nomic
NVIDIA NIMs
Oracle Cloud Infrastructure
Ollama
OpenClip
OpenAI
OpenVINO
Optimum Intel
Oracle AI 数据库
OVHcloud
Pinecone 嵌入
PredictionGuard
PremAI
SageMaker
SambaNova
自托管
Sentence Transformers
Solar
SpaCy
SparkLLM
TensorFlow Hub
文本嵌入推理
TextEmbed
Titan Takeoff
Together AI
Upstage
火山引擎
Voyage AI
Xinference
YandexGPT
ZhipuAI
通过 MCP 将这些文档连接到 Claude、VSCode 等工具,以获取实时答案。

