优化代码,提高解耦

This commit is contained in:
Annyfee
2025-11-19 23:49:06 +08:00
parent a70517f6d8
commit e7b7d098c6
9 changed files with 72 additions and 0 deletions
+6
View File
@@ -1,3 +1,9 @@
现在问题:
1. rag代码与博客你已经全部修正完了
2. rag里的readme你还没修
3. langgraph也没修
# 🧩 模块说明:RAG 进阶 - 从基础到智能 Agent # 🧩 模块说明:RAG 进阶 - 从基础到智能 Agent
> 📌 核心知识点:持久化向量库(Chroma)|精排序(Reranker)|RAG 工具化|Agent 集成|记忆型对话|六大模块融合 > 📌 核心知识点:持久化向量库(Chroma)|精排序(Reranker)|RAG 工具化|Agent 集成|记忆型对话|六大模块融合
+33
View File
@@ -0,0 +1,33 @@
import os
from dotenv import load_dotenv
from pathlib import Path
# 1. 加载.env文件
load_dotenv()
# 2. 解决 UUID v7 警告
try:
from langsmith import uuid7
import uuid
uuid.uuid4 = uuid7 # 全局替换
except ImportError:
pass # 如果没装 langsmith,省略
# 3. 获取API_KEYS
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
LANGCHAIN_API_KEY = os.getenv("LANGCHAIN_API_KEY")
if not OPENAI_API_KEY:
raise ValueError("× 请在.env中设置OPENAI_API_KEY")
+33
View File
@@ -0,0 +1,33 @@
# 本文件用于下载并获取embedding向量化模型
from pathlib import Path
from langchain_huggingface import HuggingFaceEmbeddings
# 获取embeddings模型 - 首次调用时自动下载
def get_embeddings(model_name="BAAI/bge-small-zh-v1.5",device="cpu",**kwargs):
# 支持更换其他向量化模型
local_dir = Path("models")/model_name.replace("/", "_")
if not local_dir.exists():
print(f'⚠️ 首次使用嵌入模型,正在下载到{local_dir.absolute()}')
print("💡 提示:需要联网(必需梯子),完成后可离线使用")
from huggingface_hub import snapshot_download
# 模型下载工具
snapshot_download(
repo_id = model_name,
local_dir = local_dir,
)
print('✅ 下载完成!')
# 构造参数字典
model_kwargs = {
"device":device,
"local_files_only": True, # 仅使用本地文件
}
# 此处实例化时,把kwargs传入
_EMBEDDINGS = HuggingFaceEmbeddings(
model_name = str(local_dir), # 使用本地已下载的模型
model_kwargs = model_kwargs,
**kwargs # 允许传入参数
)
return _EMBEDDINGS