介绍
DashScopeEmbeddings 是阿里云灵积(DashScope)提供的文本嵌入服务,在 LangChain 中以 langchain_community.embeddings.DashScopeEmbeddings 类封装,用于将文本转为高维语义向量,适配语义检索、RAG、推荐、聚类等场景。
底层 调用阿里的嵌入模型
应用场景
- RAG 知识库构建:文档分块 → 用 DashScopeEmbeddings 向量化 → 存入向量库(FAISS/Chroma)→ 检索相似内容
- 语义搜索:将用户查询与文档库向量化,计算余弦相似度排序
- 文本聚类/分类:用向量做无监督聚类或监督分类
- 推荐系统:将用户行为/内容转为向量,做协同过滤或内容匹配
阿里嵌入模型
| 模型 | 维度 | 特点 | 适用场景 |
|---|---|---|---|
text-embedding-v1 |
1536 | 基础版,稳定 | 通用文本嵌入 |
text-embedding-v2 |
768/1536 | 中文优化,速度快 | 中文检索、RAG |
text-embedding-v3 |
1024(默认)/768/512… | 可自定义维度 | 资源受限场景 |
text-embedding-v4 |
2048/1536/1024… | 支持稀疏向量、多模态 | 混合检索、长文本 |
安装
pip install langchain langchain-community dashscope
语法
embed = DashScopeEmbeddings()
参数
model:指定嵌入模型(如text-embedding-v2/v4)dashscope_api_key:阿里云灵积 API 密钥(可从环境变量DASHSCOPE_API_KEY读取)dimension:自定义向量维度(仅v3/v4支持)
创建对象-默认方式
默认使用模型是: text-embedding-v1
embed = DashScopeEmbeddings()
创建对象-指定模型
embed = DashScopeEmbeddings(
model="text-embedding-v2", # 指定模型
)
常用方法
embed_query(text):专为查询文本优化,返回 单个向量(一维列表)。
embed_documents(texts):专为 文档集合优化,批量处理更高效,返回向量列表(二维列表)。
向量长度:
无论 v1 还是 v2 模型,生成的向量长度都是 1536,可直接用于向量数据库(如 Milvus、Chroma 等)的存储和检索。
例子
from langchain_community.embeddings import DashScopeEmbeddings
from dotenv import load_dotenv
# 加载 .env 文件,并放入到环境变量中
load_dotenv()
# 初始化嵌入模型对象,其默认使用模型是: text-embedding-v1
embed = DashScopeEmbeddings()
# 将字符串转为向量
print(embed.embed_query("LangChain调用阿里千问嵌入模型"))
# 传入list列表,其元素是多个字符串,批量将字符串转为向量
print(embed.embed_documents([
"LangChain是一个大语言模型应用开发框架",
"阿里千问是阿里云推出的大语言模型",
"Embedding模型用于将文本转换为向量表示"]))