LangChain教程:DashScopeEmbeddings调用阿里千问embedding嵌入模型

介绍

DashScopeEmbeddings 是阿里云灵积(DashScope)提供的文本嵌入服务,在 LangChain 中以 langchain_community.embeddings.DashScopeEmbeddings 类封装,用于将文本转为高维语义向量,适配语义检索、RAG、推荐、聚类等场景。

底层 调用阿里的嵌入模型

应用场景

  1. RAG 知识库构建:文档分块 → 用 DashScopeEmbeddings 向量化 → 存入向量库(FAISS/Chroma)→ 检索相似内容
  2. 语义搜索:将用户查询与文档库向量化,计算余弦相似度排序
  3. 文本聚类/分类:用向量做无监督聚类或监督分类
  4. 推荐系统:将用户行为/内容转为向量,做协同过滤或内容匹配

阿里嵌入模型

模型 维度 特点 适用场景
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模型用于将文本转换为向量表示"]))

原文出处:/show_1GW2q1hagRKH.html