【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-v1text-embedding-v2
  3. 返回向量太长
    • 这是正常的,embedding 一般是 768/1536 维

八、下一步能做什么?

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

  • RAG 检索增强生成
  • 对接 Chroma / FAISS / Milvus 向量数据库
  • 文本相似度匹配、语义搜索
  • 对话意图识别
相关推荐
码哥字节2 小时前
Claude Code 准确率从 41% 升到 89%,这个 CLAUDE.md 只做了一件事
agent·ai编程·claude
Coffeeee2 小时前
帮你快速理解AI Agent之我想招个Android实习生
android·人工智能·agent
沉默王二2 小时前
Agent底层原理连问8道,从ReAct到记忆压缩,PaiCLI项目实战拆解
面试·agent·ai编程
把你拉进白名单2 小时前
8.OpenClaw源码解析——三层洋葱重试
人工智能·llm·agent
怕浪猫3 小时前
第4章 规划与推理:赋予Agent思考的能力
openai·agent·ai编程
米小虾3 小时前
多Agent系统编排详解:从架构设计到代码实现
人工智能·agent
米小虾3 小时前
多Agent系统的编排:架构、协议与企业级应用
人工智能·agent
To_OC13 小时前
搞懂 Token 和 Embedding 后,我终于明白大模型是怎么 "读" 文字的
人工智能·llm·agent
冬奇Lab15 小时前
Skill 系列(03):Skill 设计范式——5 个模式让输出从混沌到可预测
人工智能·开源·agent
星始流年19 小时前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent