news 2026/6/24 10:36:24

DashScope Embedding工具类详解(向量转换、Milvus知识库项目实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DashScope Embedding工具类详解(向量转换、Milvus知识库项目实战)

一、为什么需要Embedding?

在知识库项目中,Milvus 并不能直接存储和检索文本内容,而是需要先将文本转换成向量(Vector)。
例如:

新能源汽车 动力电池 电机控制系统

经过 Embedding 模型处理后:

[ 0.123, -0.456, 0.789, ... ]

这些向量会存入 Milvus,后续用户提问时再通过向量相似度检索相关知识。
本文使用阿里云 DashScope 的 text-embedding-v3 模型实现文本向量化。

二、工具类代码

importosfromdotenvimportload_dotenvfromdashscopeimportTextEmbedding load_dotenv()classEmbeddingUtil:api_key=os.getenv("DASHSCOPE_API_KEY")@staticmethoddefembedding(text_list:list[str]):vectors=[]# 🔥 分批(关键修复)batch_size=10foriinrange(0,len(text_list),batch_size):batch=text_list[i:i+batch_size]resp=TextEmbedding.call(model="text-embedding-v3",input=batch,api_key=EmbeddingUtil.api_key)ifnotresporresp.status_code!=200:raiseException(f"Embedding失败:{resp}")foriteminresp.output["embeddings"]:vectors.append(item["embedding"])returnvectors

三、代码解析

1. 加载环境变量
load_dotenv()

项目根目录创建 .env 文件:

DASHSCOPE_API_KEY=你的API_KEY

通过:

os.getenv("DASHSCOPE_API_KEY")

读取 API Key。

2.定义 Embedding 工具类
class EmbeddingUtil:

用于统一封装向量生成逻辑。

后续项目中只需要:

EmbeddingUtil.embedding(texts)

即可获得向量结果

3. 定义静态方法
@staticmethoddefembedding(text_list:list[str]):

参数:

["新能源汽车","动力电池","电机控制系统"]

返回:

[[0.12,0.45,...],[0.78,0.91,...],[0.34,0.56,...]]
4. 分批处理
batch_size=10

如果一次性提交大量文本,可能出现:

  • 请求超时
  • 接口限流
  • 请求体过大

因此采用分批策略:

foriinrange(0,len(text_list),batch_size):

例如:

len(text_list)=25

将被拆分为:

1批:1~102批:11~203批:21~25
5. 调用 Embedding 模型
resp=TextEmbedding.call(model="text-embedding-v3",input=batch,api_key=EmbeddingUtil.api_key)

发送:

["新能源汽车","动力电池"]

返回:

{"output":{"embeddings":[{"embedding":[...]},{"embedding":[...]}]}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 10:35:58

AMD Ryzen 处理器调试终极指南:解锁硬件性能潜力的专业工具

AMD Ryzen 处理器调试终极指南:解锁硬件性能潜力的专业工具 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https…

作者头像 李华
网站建设 2026/6/24 10:34:27

CrewAI新手使用指南

文章目录我现在能用 CrewAI 做什么1. CrewAI 的核心价值2. 和 OpenClaw / Claude Code 的区别3. 适合新手的 10 个使用场景场景 1:自动写周报场景 2:研究 总结场景 3:客户邮件自动回复场景 4:博客文章写作场景 5:代码…

作者头像 李华
网站建设 2026/6/24 10:27:25

2026年京东云 618 活动介绍及 Hermes Agent/OpenClaw配置Token Plan安装步骤全解

2026年京东云 618 活动介绍及 Hermes Agent/OpenClaw配置Token Plan安装步骤全解。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼…

作者头像 李华
网站建设 2026/6/24 10:23:43

3秒完成图片格式转换:Save Image as Type Chrome扩展终极指南

3秒完成图片格式转换:Save Image as Type Chrome扩展终极指南 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa…

作者头像 李华
网站建设 2026/6/24 10:19:56

计算机毕业设计之居家养老服务小程序

随着人口老龄化的加剧,居家养老服务成为解决老年人生活照料和精神慰藉的重要途径。然而,传统养老服务模式存在服务范围有限、响应速度慢、信息不透明等问题。为了提升居家养老服务的效率和质量,我们开发了这款基于Java语言的居家养老服务小程…

作者头像 李华
网站建设 2026/6/24 10:15:38

Onekey Steam游戏解锁器:5分钟快速解锁完整DLC的终极指南

Onekey Steam游戏解锁器:5分钟快速解锁完整DLC的终极指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 你是否曾因Steam游戏DLC价格过高而犹豫不决?或者因为复杂的解锁…

作者头像 李华