尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

DashScope Embedding工具类详解(向量转换、Milvus知识库项目实战)
📅 发布时间:2026/6/24 10:37:16

一、为什么需要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~10第2批:11~20第3批:21~25
5. 调用 Embedding 模型
resp=TextEmbedding.call(model="text-embedding-v3",input=batch,api_key=EmbeddingUtil.api_key)

发送:

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

返回:

{"output":{"embeddings":[{"embedding":[...]},{"embedding":[...]}]}}

相关新闻

  • Ansible:一台机器管所有服务器的自动化利器
  • 不用啃 SPSS 教程!Paperxie 一站式 AI 数据分析,搞定论文实证全流程
  • Blender到虚幻引擎一键迁移:5分钟完成3D资产无损转换的终极指南

最新新闻

  • Claude Opus 4.8 动态工作流:从提示词到意图建模的范式升级
  • ChatGPT国内分层服务技术本质解析:Go/Plus/Pro/Business底层架构与接入避坑指南
  • Claude Code 省钱实战:Token 消耗优化的四大工程方法
  • OpenClaw 配置指南:飞书×Claude 网关调试与生产部署
  • MySQL 4.0.26 官方源码包:含完整编译脚本、命令行工具源码及 man 手册模板
  • SOUL.md:用纯Markdown为Hermes智能体注入人格

日新闻

  • 终极指南:如何用shadPS4在电脑上免费畅玩PS4游戏
  • 打造个性化Instagram Clone:主题定制与用户体验优化技巧
  • 未来展望:RoseTTAFold-All-Atom的发展路线图与社区支持资源汇总

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号