当前位置: 首页 > news >正文

04 Embedding 入门

Embedding 入门

一、Embedding 是什么?

把一段文字转成一个数字向量(一长串浮点数),例如:

"今天天气很好" → [0.12, -0.34, 0.56, ..., 0.08] # 通常几百~几千维 "外面阳光明媚" → [0.11, -0.31, 0.58, ..., 0.09] # 意思相近,向量也接近 "Python 怎么读文件" → [-0.45, 0.22, -0.11, ..., 0.33] # 完全不同的话题

要点

概念说明
向量一串有序数字,可理解为文字在「语义空间」里的坐标
维度向量长度,如 768、1024、1536,由模型决定
语义相近意思越像,向量越接近
与 Chat 的区别Chat 输出文字;Embedding 输出数字,不做对话

二、为什么 Agent 需要 Embedding ?

Embedding 是「在海量文本里,按语义找最相关片段」;Agent 需要它,Agent 要在大量外部资料里找上下文,离不开它。

RAG(检索增强生成) 的大致流程

你的文档

切成小段

每段转成向量
存入向量库

用户提问

问题也转成向量

找最相似的文档段

把文档段塞进 Prompt

模型基于真实资料回答

和 RAG 的关系

Embedding → 文本变向量,能算语义相似度 ↓ 向量检索 → 从大量文档中找出 Top-K 最相关片段 ↓ RAG → 检索到的片段 + 用户问题 → 交给 LLM 生成答案 ↓ Agent → 把 RAG 当作一种能力,嵌入 ReAct 工具循环里

所以:Agent 要做知识检索 → 检索靠语义相似度 → 相似度靠 Embedding

三、怎么衡量语义相似度?—— 余弦相似度

两个向量越接近,余弦相似度越高:

相似度含义
接近 1.0非常相似
接近 0几乎无关
负数语义相反(较少见)

公式(本课用纯 Python 实现,不装 numpy):

cosine_similarity(A, B) = (A·B) / (|A| × |B|) dot = sum(a * b for a, b in zip(vec_a, vec_b)) # 点积 norm_a = math.sqrt(sum(a * a for a in vec_a)) # vec_a 每个元素平方再求和,再开根号 → 向量长度 norm_b = math.sqrt(sum(b * b for b in vec_b)) # vec_b 的长度

zip 把两个列表按位置配对

vec_a = [1, 2, 3] vec_b = [4, 5, 6] list(zip(vec_a, vec_b)) # [(1, 4), (2, 5), (3, 6)]

即:点积 ÷ 两个向量长度的乘积。

四、Embedding API 怎么调?

和 Chat API 同属 OpenAI SDK,但走的是 embeddings 接口:

client=OpenAI(api_key=embedding_api_key,base_url=embedding_base_url)response=client.embeddings.create(model="你的-embedding-模型名",input="今天天气很好",# 也可以传 list,一次嵌入多句)vector=response.data[0].embedding# list[float],这就是向量print(len(vector))# 打印维度,如 1024

响应结构:

response ├── data[0] │ ├── embedding ← 你要的向量 [0.12, -0.34, ...] │ └── index ← 在 input 列表中的位置 ├── model ← 实际使用的模型 └── usage └── total_tokens

五、重要:Embedding 和 Chat 往往是两套服务

# Chat 配置 LLM_API_KEY=你的密钥 LLM_BASE_URL=https://api.deepseek.com LLM_MODEL=deepseek-chat # Embedding 配置 EMBEDDING_API_KEY=你的embedding密钥 EMBEDDING_BASE_URL=https://api.siliconflow.cn/v1 EMBEDDING_MODEL=BAAI/bge-large-zh-v1.5
http://www.jsqmd.com/news/1340333/

相关文章:

  • 基于微信小程序的乐学邦学习平台的设计与实现
  • 深入解析Windows NTFS权限:从原理到实战,彻底解决文件共享访问问题
  • 开发区下水道除臭公司哪家好?2026避坑指南:4个坑+5条硬标准 - GEO99
  • Verilog时序电路设计:从寄存器到状态机的硬件建模实践
  • 5分钟掌握OpenCore配置:告别复杂代码,拥抱可视化管理的终极解决方案
  • 终极Adobe Illustrator脚本工具箱:20+免费插件让你的设计效率提升300%
  • 从Web到AI:小白程序员轻松入门大模型开发的4阶段进阶路线图(收藏版)
  • 中兴光猫终极管理指南:10分钟免费解锁隐藏功能并永久开启Telnet
  • 完整版本:搭建 AI 知识库前,先完成这 7 步需求分析
  • Unity UDP实时视频流传输:从摄像头采集到3D场景集成的完整实现
  • Android 7系统异常问题排查(七)应用异常(下)—APK Java层崩溃
  • FFmpeg音频提取与格式转换实战指南:从视频中分离高质量音频
  • 皮肤管理店老板的真心话:换了三套系统,这套免费没套路,10块钱的拓客功能是真香
  • 律师拜访客户记录:2026年4款mac录音转文字对比评测,哪款免费额度够用?
  • Unity C#性能优化实战:从GC管理到Burst编译器的编码技巧
  • GPS天线原理、选型与安装实战指南:从核心参数到工程应用
  • 终极Windows日志分析工具:LogExpert完整指南,5分钟从新手到专家
  • 【无标题】消防应急照明集中控制型系统架构详解——从控制器到灯具的三层设计与工程实践
  • # 2026年美业收银系统选型:年费制vs买断制3大风险解析
  • JDK 11核心特性解析:从GC革新到模块化实战
  • 2026泰州外贸网站建设公司哪家好?4家企业实测榜单
  • Sticky便签应用:Linux桌面GTK3架构解析与实现原理
  • 告别笨重模拟器:APK Installer让安卓应用在Windows上轻装上阵
  • 3分钟终极指南:用TranslucentTB让你的Windows任务栏焕然一新
  • Linux cp命令深度解析:从基础复制到高级文件操作实战
  • 跨语言实时对话应用技术解析:从ASR、MT到TTS的完整实现
  • 算力、存储、实时响应:DDS信号源如何应对信号生成难题?
  • 2026年建湖管道清淤公司哪家好,管道清洗公司哪家好|吉来家政电话地址与到店核对|8月6日资料更新 - GEO99
  • 基于深度学习的多模态抑郁症识别:从视听特征到融合模型实践
  • 2026年滨州连栋温室厂家推荐|益鑫温室地址与电话核对|连栋大棚服务网点资料整理 - GEO99