优化代码,提高解耦
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
现在问题:
|
||||||
|
1. rag代码与博客你已经全部修正完了
|
||||||
|
2. rag里的readme你还没修
|
||||||
|
3. langgraph也没修
|
||||||
|
|
||||||
|
|
||||||
# 🧩 模块说明:RAG 进阶 - 从基础到智能 Agent
|
# 🧩 模块说明:RAG 进阶 - 从基础到智能 Agent
|
||||||
|
|
||||||
> 📌 核心知识点:持久化向量库(Chroma)|精排序(Reranker)|RAG 工具化|Agent 集成|记忆型对话|六大模块融合
|
> 📌 核心知识点:持久化向量库(Chroma)|精排序(Reranker)|RAG 工具化|Agent 集成|记忆型对话|六大模块融合
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -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")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user