claudqunwang Cursor commited on
Commit
4218058
·
1 Parent(s): fb6c7c6

Add Weaviate index rebuild instructions

Browse files

Co-authored-by: Cursor <cursoragent@cursor.com>

REBUILD_WEAVIATE_INDEX.md ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 重建 Weaviate 索引(使用 OpenAI Embedding)
2
+
3
+ 由于 ClareVoice 已切换到使用 **OpenAI `text-embedding-3-small`** 进行 embedding,如果 Weaviate 向量数据库中的索引是用旧的 HuggingFace embedding 构建的,需要重新构建索引以确保检索一致性。
4
+
5
+ ## 前置条件
6
+
7
+ 1. **本地环境**:Python 3.8+,已安装所需依赖
8
+ 2. **Weaviate 配置**:需要 Weaviate Cloud 的 URL 和 API Key
9
+ 3. **OpenAI API Key**:已提供(见 `OPENAI_EMBEDDING_SETUP.md`)
10
+ 4. **课程文档**:确保项目根目录有 `GENAI COURSES` 文件夹
11
+
12
+ ## 步骤
13
+
14
+ ### 1. 安装依赖
15
+
16
+ ```bash
17
+ cd hf_space/GenAICoursesDB_space
18
+ pip install -r requirements.txt
19
+ ```
20
+
21
+ ### 2. 设置环境变量
22
+
23
+ 在项目根目录创建或更新 `.env` 文件:
24
+
25
+ ```bash
26
+ # OpenAI API Key(用于 embedding)
27
+ OPENAI_API_KEY=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
28
+
29
+ # Weaviate 配置(从 Weaviate Cloud Console 获取)
30
+ WEAVIATE_URL=https://your-cluster.c0.us-west3.gcp.weaviate.cloud
31
+ WEAVIATE_API_KEY=your-weaviate-api-key
32
+
33
+ # 使用 OpenAI embedding(默认)
34
+ EMBEDDING_PROVIDER=openai
35
+
36
+ # 可选:清空旧索引后重建(默认:1,即清空)
37
+ WEAVIATE_CLEAR_FIRST=1
38
+ ```
39
+
40
+ ### 3. 运行索引构建脚本
41
+
42
+ ```bash
43
+ cd hf_space/GenAICoursesDB_space
44
+ python build_weaviate_index.py
45
+ ```
46
+
47
+ 脚本会:
48
+ 1. 读取 `GENAI COURSES` 目录下的所有文档(.md, .pdf, .txt, .py, .ipynb, .docx)
49
+ 2. 使用 OpenAI `text-embedding-3-small` 生成 embedding
50
+ 3. 上传到 Weaviate Cloud(collection: `GenAICourses`)
51
+ 4. 显示最终的对象数量以验证
52
+
53
+ ### 4. 验证
54
+
55
+ 脚本完成后会显示:
56
+ ```
57
+ ✅ 索引已上传,当前 object count = [数量]
58
+ ```
59
+
60
+ 如果数量为 0,请检查:
61
+ - `WEAVIATE_URL` 是否与 Weaviate Console 中的 REST 地址一致
62
+ - 是否使用同一 Weaviate 账号
63
+ - 网络连接是否正常
64
+
65
+ ### 5. 在 Hugging Face Space 中配置
66
+
67
+ 确保 ClareVoice Space 的 **Settings → Secrets** 中已配置:
68
+
69
+ - `OPENAI_API_KEY`:用于检索时的 embedding
70
+ - `WEAVIATE_URL`:Weaviate Cloud REST 地址
71
+ - `WEAVIATE_API_KEY`:Weaviate API Key
72
+ - `WEAVIATE_COLLECTION`:`GenAICourses`(默认)
73
+
74
+ ## 注意事项
75
+
76
+ ⚠️ **重要**:
77
+ - 重建索引会**清空**旧的 `GenAICourses` collection(如果 `WEAVIATE_CLEAR_FIRST=1`)
78
+ - 确保在重建前备份重要数据(如果需要)
79
+ - 重建过程可能需要几分钟到几十分钟,取决于文档数量
80
+ - 索引构建完成后,ClareVoice 的检索将使用新的 OpenAI embedding,与索引构建时一致
81
+
82
+ ## 故障排除
83
+
84
+ ### 错误:`OPENAI_API_KEY is required`
85
+ - 检查 `.env` 文件中的 `OPENAI_API_KEY` 是否正确设置
86
+ - 确保环境变量已加载(脚本会自动加载 `.env`)
87
+
88
+ ### 错误:`Weaviate 连接失败`
89
+ - 检查 `WEAVIATE_URL` 格式是否正确(应以 `https://` 开头)
90
+ - 验证 `WEAVIATE_API_KEY` 是否有效
91
+ - 确认网络连接正常
92
+
93
+ ### 错误:`课程目录不存在`
94
+ - 确保项目根目录有 `GENAI COURSES` 文件夹
95
+ - 检查路径是否正确(脚本从 `hf_space/GenAICoursesDB_space` 运行,会查找 `../../GENAI COURSES`)
96
+
97
+ ### 索引构建成功但 object count = 0
98
+ - 检查 Weaviate Console 中的 collection 名称是否匹配(应为 `GenAICourses`)
99
+ - 确认使用的是同一 Weaviate 集群和账号
100
+ - 等待几秒钟后再次检查(可能有延迟)
101
+
102
+ ## 相关文档
103
+
104
+ - `OPENAI_EMBEDDING_SETUP.md`:OpenAI embedding 配置说明
105
+ - `build_weaviate_index.py`:索引构建脚本源码
web/src/assets/dfe44dab3ad8cd93953eac4a3e68bd1a5f999653.png CHANGED