diff --git a/07_rag_advanced/README.md b/07_rag_advanced/README.md index a3249dd..19a02a4 100644 --- a/07_rag_advanced/README.md +++ b/07_rag_advanced/README.md @@ -1,3 +1,9 @@ +现在问题: +1. rag代码与博客你已经全部修正完了 +2. rag里的readme你还没修 +3. langgraph也没修 + + # 🧩 模块说明:RAG 进阶 - 从基础到智能 Agent > 📌 核心知识点:持久化向量库(Chroma)|精排序(Reranker)|RAG 工具化|Agent 集成|记忆型对话|六大模块融合 diff --git a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/data_level0.bin b/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/data_level0.bin deleted file mode 100644 index bbcefd8..0000000 Binary files a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/data_level0.bin and /dev/null differ diff --git a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/header.bin b/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/header.bin deleted file mode 100644 index 8203dc5..0000000 Binary files a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/header.bin and /dev/null differ diff --git a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/index_metadata.pickle b/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/index_metadata.pickle deleted file mode 100644 index bcf7d3d..0000000 Binary files a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/index_metadata.pickle and /dev/null differ diff --git a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/length.bin b/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/length.bin deleted file mode 100644 index 32b7af2..0000000 Binary files a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/length.bin and /dev/null differ diff --git a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/link_lists.bin b/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/link_lists.bin deleted file mode 100644 index 26ef921..0000000 Binary files a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/43930493-93c3-4af2-a888-325223f605a5/link_lists.bin and /dev/null differ diff --git a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/chroma.sqlite3 b/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/chroma.sqlite3 deleted file mode 100644 index 32e43d6..0000000 Binary files a/07_rag_advanced/chroma_db_war_and_peace_bge_small_en_v1.5/chroma.sqlite3 and /dev/null differ diff --git a/config.py b/config.py new file mode 100644 index 0000000..6bcf72e --- /dev/null +++ b/config.py @@ -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") + + + + + + + + + + + + diff --git a/embeddings.py b/embeddings.py new file mode 100644 index 0000000..71790e5 --- /dev/null +++ b/embeddings.py @@ -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