【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 向量数据库
  • 文本相似度匹配、语义搜索
  • 对话意图识别
相关推荐
后端小肥肠20 小时前
我做了个能一键搭建个人工作台的 Skill,已开源
人工智能·aigc·agent
sg_knight20 小时前
ZCode 3.0 安装全攻略:下载、配置、跑通第一个任务
llm·agent·ai编程·coding·ai工具·智谱·zcode
5pat54OfCg21 小时前
OpenCode 源码拆解(五):AI 跑 rm -rf 怎么办?——命令执行的安全网
源码·agent
5pat54OfCg21 小时前
OpenCode 源码拆解(六):系统怎么不崩?——韧性的 3 个设计模式
agent·源码阅读
扯蛋4381 天前
1.x 时代的记忆系统 (一)
langchain·llm·aigc
用户847181054191 天前
langchain.js中stream()的单模式 vs 多模式梳理
agent
鸿翼Macrowing1 天前
**从一份 PDF 到一次 API 调用:企业 AI 能力的“最后一公里“**
人工智能·pdf·agent·数据治理·skill
阿里云云原生1 天前
告别功能堆叠,迎接“对话即服务”:FinXScope AI 原生六层架构设计详解
agent
zhoupenghui1681 天前
【AI大模型应用开发】【项目实战】35.基于A2A协议的智能助手(多智能体)(三)项目实现之天气MCP服务器&票务员MCP服务器&订票MCP服务器
agent·多智能体·mcp·a2a·天气mcp服务器·票务员mcp服务器·订票mcp服务器
梦想三三1 天前
LangChain RAG PDF 智能问答实战:用 Streamlit 构建本地知识库(完整代码)
人工智能·python·langchain·大模型·rag