【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 小时前
WorkBuddy使用心得:腾讯版“免部署小龙虾“的办公新体验
人工智能·ai·腾讯云·agent·wechat·openclaw·workbuddy
蔚天灿雨2 小时前
Kage:在 Codex、Claude 和 QoderCLI 等 CodingAgentCLI 之间 Fork 与迁移 Session
人工智能·ai·agent·ai编程
java1234_小锋3 小时前
基于LangChain的RAG与Agent智能体开发 - LangChain调用嵌入模型
langchain·rag
小超同学你好3 小时前
Langgraph 17. Skills 三级加载与 Token 优化(含代码示例)
人工智能·语言模型·langchain
小仓桑5 小时前
【Agent智能体项目实战三】LangChain调用通义千问保姆级教程
数据库·阿里云·langchain·agent
zabr5 小时前
花了 100+ 篇笔记,我整理出 了一套 AI Agent 工程完全指南
前端·后端·agent
MIka7 小时前
CopilotKit 入门:用 Runtime 和 React Core 搭建真正可用的 AI Copilot
人工智能·typescript·agent
16Miku7 小时前
Mapping-Skill:把 AI/ML 人才搜索、作者挖掘与个性化触达整合成一条工作流
爬虫·ai·飞书·agent·skill·openclaw·龙虾
墨渊君7 小时前
OpenClaw 上手实践: 使用 Docker 从构建到可用全流程指南
前端·agent