File size: 1,624 Bytes
f2dbf59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from pathlib import Path

import requests
from tqdm import tqdm


def download_model(model_url, save_loc, model_name):
    if isinstance(save_loc, str):
        save_loc = Path(save_loc)
    save_loc.mkdir(parents=True, exist_ok=True)

    if not (save_loc / model_name).is_file():
        print('fnodes: 模型不存在')
        print('fnodes: 正在下载模型')
        response = requests.get(model_url, stream=True)
        try:
            if response.status_code == 200:
                total_size = int(response.headers.get('content-length', 0))
                block_size = 1024  # 1 Kibibyte

                with (
                    (save_loc / model_name).open('wb') as file,
                    tqdm(
                        desc='下载中',
                        total=total_size,
                        unit='iB',
                        unit_scale=True,
                        unit_divisor=1024,
                    ) as bar,
                ):
                    for data in response.iter_content(block_size):
                        bar.update(len(data))
                        file.write(data)
                print('fnodes: 模型下载完成')

        except requests.exceptions.RequestException as err:
            print(f'fnodes: 模型下载失败: {err}')
            print(f'fnodes: 请从以下链接手动下载: {model_url}')
            print(f'fnodes: 并将其放置在 {save_loc}')
            return False
        except Exception as e:
            print(f'fnodes: 发生意外错误: {e}')
            return False

    return True