refactor(m6): restructure non-code assets including filenames, environment setup, and minor fixes
This commit is contained in:
@@ -5,7 +5,7 @@ RAG 概念|文本加载与分块 (Load & Split)|向量化 (Embedding)|向
|
||||
|
||||
---
|
||||
|
||||
### 1. `load_and_split.py`(文本加载与分块)
|
||||
### 1. `s01_load_and_split.py`(文本加载与分块)
|
||||
加载本地 `.txt` 文档,并使用 `RecursiveCharacterTextSplitter` 将其智能分割成“知识卡片”。
|
||||
|
||||
✅ **掌握点**:
|
||||
@@ -25,7 +25,18 @@ RAG 概念|文本加载与分块 (Load & Split)|向量化 (Embedding)|向
|
||||
|
||||
---
|
||||
|
||||
### 3. `build_index.py`(向量存储与索引构建)
|
||||
### 3. `s02_embedding.py`(文本向量化)
|
||||
演示如何加载本地 Embedding 模型,并将任意文本(知识卡片)转换为"语义向量"。
|
||||
|
||||
✅ **掌握点**:
|
||||
- 使用 HuggingFaceEmbeddings 加载开源本地模型(如 BAAI/bge-small-zh-v1.5)。
|
||||
- 理解 Embedding(向量化)是 RAG 的"语义标签",用于实现"语义搜索"。
|
||||
- 如何调用 embed_query 将文本转换为向量(一串数字)。
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 4. `s03_build_index.py`(向量存储与索引构建)
|
||||
使用 FAISS 向量索引库将向量化后的文本片段构建为可检索的向量数据库,并持久化到本地。
|
||||
|
||||
✅ **掌握点**:
|
||||
@@ -35,7 +46,7 @@ RAG 概念|文本加载与分块 (Load & Split)|向量化 (Embedding)|向
|
||||
|
||||
---
|
||||
|
||||
### 4. `rag_chain_full.py`(LCEL 完整 RAG 链)
|
||||
### 5. `s04_rag_chain_full.py`(LCEL 完整 RAG 链)
|
||||
使用 LCEL(LangChain 表达式语言)“手动组装”一个完整的 RAG 流程,实现“检索-增强-生成”的闭环。
|
||||
|
||||
✅ **掌握点**:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import config
|
||||
import os
|
||||
from langchain_community.document_loaders import TextLoader # 加载
|
||||
from langchain_text_splitters import RecursiveCharacterTextSplitter # 分割
|
||||
@@ -1,3 +1,4 @@
|
||||
import config
|
||||
from embeddings import get_embeddings
|
||||
|
||||
|
||||
@@ -5,7 +6,7 @@ from embeddings import get_embeddings
|
||||
print('---正在加载本地嵌入模型(bge-small-zh-v1.5)...---')
|
||||
|
||||
# 理论:有embedding的向量模型
|
||||
embeddings_model = get_embeddings("bge-small-zh-v1.5")
|
||||
embeddings_model = get_embeddings("BAAI/bge-small-zh-v1.5")
|
||||
print('嵌入模型载入完毕')
|
||||
|
||||
# 演示:将文本转换为向量
|
||||
@@ -1,5 +1,6 @@
|
||||
# 仅负责: 切片 -> 向量化 -> 构建索引 -> 保存到磁盘
|
||||
# 运行一次即可,无需每次检索都运行
|
||||
import config
|
||||
from embeddings import get_embeddings
|
||||
import os
|
||||
from langchain_community.document_loaders import TextLoader
|
||||
@@ -9,6 +9,7 @@ from langchain_core.prompts import ChatPromptTemplate
|
||||
from langchain_core.output_parsers import StrOutputParser
|
||||
from langchain_core.runnables import RunnablePassthrough
|
||||
|
||||
|
||||
# --- 模块A (离线操作) ---
|
||||
# 1. 加载&分割 2. 向量化 3. 存储
|
||||
KNOWLEDGE_BASE_CONTENT = """
|
||||
@@ -39,7 +40,7 @@ loader = TextLoader('knowledge_base.txt',encoding='utf8')
|
||||
docs = loader.load()
|
||||
text_splitter = RecursiveCharacterTextSplitter(chunk_size=250,chunk_overlap=40)
|
||||
splits = text_splitter.split_documents(docs)
|
||||
embedding_model = get_embeddings("bge-small-zh-v1.5")
|
||||
embedding_model = get_embeddings("BAAI/bge-small-zh-v1.5")
|
||||
db = FAISS.from_documents(splits,embedding_model) # 在内存中构建向量索引,但不持久化到本地文件
|
||||
print('---模块A(Indexing)完成---\n')
|
||||
|
||||
Reference in New Issue
Block a user