【Agent智能体项目实战五】LangChain访问阿里云嵌入模型

一、场景说明

  • 使用阿里云 DashScope 文本嵌入模型
  • 生成文本的向量表示(embedding)
  • 支持:单句生成、文档批量生成
  • 可直接用于:RAG 知识库、向量数据库、语义搜索、对话匹配

二、安装依赖

bash 复制代码
pip install langchain langchain_community

三、完整可运行代码

python 复制代码
import os

from langchain_community.embeddings import DashScopeEmbeddings

# 设置 dashscope api key(必须在创建对象之前)
os.environ["DASHSCOPE_API_KEY"] = "sk-你的API_KEY"

# 创建嵌入模型对象
# 不传 model 参数,默认使用 text-embedding-v1
embeddings = DashScopeEmbeddings()

# 1. embed_query 方法:用于单条文本/查询语句的嵌入
text = "我喜欢你"
vector = embeddings.embed_query(text)
print("单文本向量长度:", len(vector))
print("单文本向量前5个值:", vector[:5])

# 2. embed_documents 方法:用于文档列表批量嵌入
documents = ["我喜欢你", "你喜欢我"]
vectors = embeddings.embed_documents(documents)
print("\n批量文档向量数量:", len(vectors))
print("第1条向量前5个值:", vectors[0][:5])
print("第2条向量前5个值:", vectors[1][:5])

四、代码逐行讲解

1. 导入与配置 API Key

python 复制代码
import os
from langchain_community.embeddings import DashScopeEmbeddings

os.environ["DASHSCOPE_API_KEY"] = "你的API_KEY"
  • API Key 必须在创建对象前设置
  • 从阿里云 DashScope 控制台获取

2. 初始化 Embedding 模型

python 复制代码
embeddings = DashScopeEmbeddings()

默认模型:text-embedding-v1

你也可以手动指定模型:

python 复制代码
embeddings = DashScopeEmbeddings(
    model="text-embedding-v2"
)

3. 单文本向量化(embed_query)

python 复制代码
text = "我喜欢你"
vector = embeddings.embed_query(text)
  • 用于用户问题、单条句子
  • 返回一个浮点数列表(向量)

4. 批量文档向量化(embed_documents)

python 复制代码
documents = ["我喜欢你", "你喜欢我"]
vectors = embeddings.embed_documents(documents)
  • 用于知识库文档、批量句子
  • 返回多个向量的列表

五、运行结果示例

复制代码
单文本向量长度: 1536
单文本向量前5个值: [-0.02143326, 0.03567211, 0.01232234, ...]

批量文档向量数量: 2
第1条向量前5个值: [-0.02143326, 0.03567211, ...]
第2条向量前5个值: [0.01567233, -0.02345612, ...]

六、常用方法总结

方法 用途 适用场景
embed_query(text) 生成单文本向量 用户提问、检索词
embed_documents([text1, text2]) 批量生成文档向量 知识库入库、批量处理

七、常见问题

  1. 报错:API Key 未设置
    • 把 os.environ 写在 DashScopeEmbeddings() 前面
  2. 报错:模型不存在
    • 使用阿里云支持的模型:text-embedding-v1、text-embedding-v2
  3. 返回向量太长
    • 这是正常的,embedding 一般是 768/1536 维

八、下一步能做什么?

学会 Embedding 后,你可以直接做:

  • RAG 检索增强生成
  • 对接 Chroma / FAISS / Milvus 向量数据库
  • 文本相似度匹配、语义搜索
  • 对话意图识别
相关推荐
Setsuna_F_Seiei5 分钟前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
YYYing.3 小时前
【Agent系列 (二) 】大语言模型基础
人工智能·语言模型·自然语言处理·agent
大模型真好玩5 小时前
从 SDK 到成熟智能体:拆解 LangChain、Pi、DeepSeek Harness、Claude Code的本质区别
人工智能·agent·deepseek
梦在远山后5 小时前
通过 WSS 让 Server 安全调用 Desktop 本地工具(下01):Ticket、人工确认、幂等与断线对账
python·langchain·agent
阿里云云原生5 小时前
阿里云发布 AgenticOps 全栈能力,让 Agent 成为运维与研发的第一用户
agent
阿里云云原生5 小时前
阿里云刚发布的 AgentCore 有何不同?
agent
xiaozongt19896 小时前
AI代码学习-Function Calling + ReAct
agent·ai编程
阿里云云原生7 小时前
从个人生产力到企业生产力,阿里云发布企业级 Agent 平台 AgentCore
agent
jason.zeng@15022077 小时前
(六)Prompt 优化
python·ai·langchain·prompt·ai编程·llama
Elcker8 小时前
Ynuo Agent(依诺) 一 Agentic 设计模式详解
agent·ai编程