lanny xu commited on
Commit
ee37277
·
1 Parent(s): 644a2ff

resolve conflict

Browse files
Files changed (1) hide show
  1. KAGGLE_LOAD_OLLAMA.py +52 -7
KAGGLE_LOAD_OLLAMA.py CHANGED
@@ -120,28 +120,73 @@ else:
120
  exit(1)
121
 
122
  # ==================== 解压模型文件 ====================
123
- print(f"\n📦 步骤 3/5: 解压模型文件...")
124
 
125
  models_archive = os.path.join(DATASET_PATH, "ollama_models.tar.gz")
 
126
 
 
127
  if os.path.exists(models_archive):
 
128
  print(f" 找到模型压缩包: {os.path.getsize(models_archive) / (1024**3):.2f} GB")
129
  print(f" 📦 开始解压(这可能需要 10-30 秒)...")
130
 
131
  start_time = time.time()
132
 
133
- # 解压到用户目录(恢复到 ~/.ollama)
134
- ollama_home = os.path.expanduser("~")
135
-
136
  with tarfile.open(models_archive, 'r:gz') as tar:
137
  tar.extractall(ollama_home) # 会自动创建 ~/.ollama 目录
138
 
139
  elapsed = time.time() - start_time
140
  print(f" ✅ 解压完成(耗时: {int(elapsed)}秒)")
141
 
142
- # 检查模型目录
143
- models_dir = os.path.join(ollama_home, ".ollama")
144
- if os.path.exists(models_dir):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  total_size = sum(
146
  os.path.getsize(os.path.join(dirpath, filename))
147
  for dirpath, dirnames, filenames in os.walk(models_dir)
 
120
  exit(1)
121
 
122
  # ==================== 解压模型文件 ====================
123
+ print(f"\n📦 步骤 3/5: 恢复模型文件...")
124
 
125
  models_archive = os.path.join(DATASET_PATH, "ollama_models.tar.gz")
126
+ ollama_home = os.path.expanduser("~")
127
 
128
+ # 检查是否有压缩包
129
  if os.path.exists(models_archive):
130
+ # 情况1: 有压缩包,需要解压
131
  print(f" 找到模型压缩包: {os.path.getsize(models_archive) / (1024**3):.2f} GB")
132
  print(f" 📦 开始解压(这可能需要 10-30 秒)...")
133
 
134
  start_time = time.time()
135
 
 
 
 
136
  with tarfile.open(models_archive, 'r:gz') as tar:
137
  tar.extractall(ollama_home) # 会自动创建 ~/.ollama 目录
138
 
139
  elapsed = time.time() - start_time
140
  print(f" ✅ 解压完成(耗时: {int(elapsed)}秒)")
141
 
142
+ else:
143
+ # 情况2: 没有压缩包,检查是否已解压
144
+ print(f" ⚠️ 未找到压缩包,检查是否有解压后的文件...")
145
+
146
+ # 检查常见的解压后文件/目录
147
+ possible_sources = [
148
+ os.path.join(DATASET_PATH, ".ollama"), # 直接在根目录
149
+ os.path.join(DATASET_PATH, "ollama_model", ".ollama"), # 在 ollama_model 文件夹内(嵌套结构)
150
+ os.path.join(DATASET_PATH, "ollama_models", ".ollama"), # 在 ollama_models 文件夹内
151
+ os.path.join(DATASET_PATH, "ollama"), # 备用路径
152
+ os.path.join(DATASET_PATH, "models") # 备用路径
153
+ ]
154
+
155
+ found = False
156
+ for source in possible_sources:
157
+ if os.path.exists(source):
158
+ print(f" ✅ 找到解压后的目录: {source}")
159
+
160
+ # 确定目标目录
161
+ if source.endswith(".ollama"):
162
+ # 直接复制整个 .ollama 目录
163
+ dest = os.path.join(ollama_home, ".ollama")
164
+ else:
165
+ # 创建 .ollama/models 目录
166
+ dest = os.path.join(ollama_home, ".ollama", "models")
167
+ os.makedirs(os.path.dirname(dest), exist_ok=True)
168
+
169
+ print(f" 📋 复制到: {dest}")
170
+
171
+ # 复制文件
172
+ if os.path.isdir(source):
173
+ shutil.copytree(source, dest, dirs_exist_ok=True)
174
+ else:
175
+ shutil.copy2(source, dest)
176
+
177
+ found = True
178
+ break
179
+
180
+ if not found:
181
+ print(f" ❌ 未找到模型文件")
182
+ print(f"\n Dataset 内容:")
183
+ for item in os.listdir(DATASET_PATH):
184
+ print(f" • {item}")
185
+ exit(1)
186
+
187
+ # 检查模型目录
188
+ models_dir = os.path.join(ollama_home, ".ollama")
189
+ if os.path.exists(models_dir):
190
  total_size = sum(
191
  os.path.getsize(os.path.join(dirpath, filename))
192
  for dirpath, dirnames, filenames in os.walk(models_dir)