大数跨境

LangChain 实战第15课:聊聊RAG,为什么文本需要做向量化

LangChain 实战第15课:聊聊RAG,为什么文本需要做向量化 玩AI的方可乐
2025-10-03
0
导读:手把手教学,10 分钟见结果

 

你好,我是方可乐。
一个正在深耕AI编程的30+的AI应用开发工程师。
用AI编程开发过Web应用网站,浏览器插件,

微信小程序,AI智能体,RAG系统。

注公众号&添加微信:ThinkFun666

领取【AI编程资料包】



 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

去年6月份,我做了一个连自己都觉得疯狂的决定:裸辞,All in AI。

现在已经换赛道成功,继续在工作中探索。


 

 

 

 

 

在上一篇文章,我们把公司规章制度文档做了切分,但是还没有向量化,今天我们重点讲讲这部分的内容。

切分后的文本片段,依然只是普通字符串。计算机并不能理解“请假制度”和“打卡规则”之间的关系。要让检索具备语义能力,我们必须把文本转成 向量

为什么文本不行,向量就能行呢?

我们接着看。


为什么要向量化?

向量化的作用就是把 自然语言 → 数字向量。 这样我们就能用数学方法来度量相似度:

  • • 用户问「请假流程」,
  • • 系统把问题转成一个向量,
  • • 在知识库中找到最接近的向量(例如“员工请假需提前 3 天申请”)。

有了向量化,检索才能从“关键词匹配”进化到“语义匹配”。


向量模型选型

选择向量模型时,可以从这三个维度考虑:

  1. 1. 准确性(embedding 质量
    1. 1. 语义表示是否足够好?
    2. 2. 检索结果是否稳定?
  2. 2. 性能(速度与大小)
    1. 1. 模型是否轻量,适合实时场景?
    2. 2. 是否支持在本地快速运行?
  3. 3. 成本与部署方式
    1. 1. 是否需要联网调用?
    2. 2. 模型大小是否能接受?

下面我们用 bge-small 模型来演示下如何向量化文本:

  • • 参数量小,推理速度快;
  • • 效果在大多数中文/英文检索任务中已经足够好;
  • • 可以在本地运行,方便教学和实验。

案例:用 bge-small 对规章制度向量化

我们继续用上一节切分出来的规章制度,做 embedding。


             
             
             
             
              
             
             
             
             from langchain_community.embeddings import HuggingFaceEmbeddings
from
 langchain.text_splitter import RecursiveCharacterTextSplitter

# 原始文本

raw_text = """
## 考勤制度
1. 员工必须每天打卡。
2. 上班期间禁止使用私人手机。

## 请假制度
3. 员工请假需提前 3 天申请。
4. 公司提供每年 10 天带薪年假。
"""


# 1. 切分

splitter = RecursiveCharacterTextSplitter(chunk_size=50, chunk_overlap=10)
docs = splitter.create_documents([raw_text])

# 2. 向量化 (bge-small)

model_name = "BAAI/bge-small-zh-v1.5"
embedding = HuggingFaceEmbeddings(model_name=model_name)

vectors = [embedding.embed_query(doc.page_content) for doc in docs]

print
("向量维度:", len(vectors[0]))
print
("第一个文档内容:", docs[0].page_content)
print
("对应向量前10维:", vectors[0][:10])

运行结果如下:

langchain干了什么呢?其实它只是帮你调用不同的向量模型,封装好了函数,让你用起来更方便,代码更简洁。

下一篇文章,我们来聊聊这些向量如何存进向量数据库。


 

 


 

 

 

 

 

 

 

 

 

对AI应用开发感兴趣的同学,欢迎加微信申请入群交流学习。

想要学习AI应用开发的同学,可以参照我的代码跑起来,举一反三,一天一个脚印的进步,我相信,会足够坚实。


接下来100天,我会记录从Java程序员到AI应用开发工程师的完整转型路:每一个困惑、每一次突破、每一个真实瞬间。

当前是33/100。

如果你也想了解AI应用开发到底是什么,如果你也在考虑转型但还在犹豫,那就跟着我的记录,一起探索。


继续折腾中,有问题随时交流 🤝
微信号:ThinkFun666

我的免费AI编程交流群,欢迎加入讨论AI编程玩法(说明需求和来意,申请入群)



 

 



推荐阅读:

我就喜欢干这种傻事!为什么转型AI应用开发,我不建议你直接从看书开始学起?

猛然醒悟:原来 AI 编程这件事情,是有门槛的,90%的新手卡在这些地方

30岁转行 AI 应用开发:多久能学会?答案出乎意料

30岁,我放弃写了7年的Java,成功转型AI应用开发

30岁,转型AI应用开发,需要会什么技术?

30岁,空窗期一年,靠什么成功转型AI应用开发?

30岁,没报课,如何从0自学转型AI应用开发?

【声明】内容源于网络
0
0
玩AI的方可乐
1234
内容 502
粉丝 0
玩AI的方可乐 1234
总阅读204
粉丝0
内容502