【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 向量数据库
  • 文本相似度匹配、语义搜索
  • 对话意图识别
相关推荐
聪明蛋子哟12 小时前
从LangChain到LangGraph:Python与Java双栈Agent开发实战对比
java·ai·langchain
千桐科技12 小时前
qKnow 开源版 v2.4.3 更新解析:从知识数据接入到自定义解析与结果复用
开源·llm·agent·ai智能体·qknow·智能体构建
Ticnix13 小时前
MCP 工具拿不到 user_id?用 contextvars 做请求级用户隔离
python·agent·mcp
掰头战士13 小时前
让散乱的工具调用成为正规军,今天咱们聊聊 Tool System管线的读写锁
typescript·llm·agent
小坏讲微服务14 小时前
Spring AI 高频面试题20道
java·spring·ai·agent·springai
一直在努力的小宁14 小时前
[特殊字符] 具身智能Agent开发调研|零基础超详细笔记(万字长文)
agent·vla·vlm·vln·harness
小叶肥辉15 小时前
LangChain链和LangGraph图的学习笔记【四】——(1)调用方法:invoke(2)提示语模板:PromptTemplate
python·langchain·prompt
想打游戏的程序猿15 小时前
Text2SQL 中的 SQL 检查
agent
️公子16 小时前
DeepSeek V4.1 Flash 今日接管 Pro 流量:552B MoE + 非对称架构,Agent 推理成本怎么砍?
架构·开源·大模型·api·agent·deepseek
武子康16 小时前
同一套小智源码,换块 ESP32 开发板为何还要重新适配?
人工智能·llm·agent