File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -36,8 +36,8 @@ class _PageExtractorImpls:
3636 def __init__ (self , model : DeepSeekOCRModel ) -> None :
3737 self ._model : DeepSeekOCRModel = model
3838
39- def download_models (self ) -> None :
40- self ._model .download ()
39+ def download_models (self , revision : str | None = None ) -> None :
40+ self ._model .download (revision )
4141
4242 def load_models (self ) -> None :
4343 self ._model .load ()
Original file line number Diff line number Diff line change @@ -80,11 +80,13 @@ def __init__(
8080 if next_model_index == 0 :
8181 raise ValueError ("No devices are enabled for model loading." )
8282
83- def download (self ) -> None :
83+ def download (self , revision : str | None ) -> None :
8484 with self ._rwlock .gen_wlock ():
8585 snapshot_download (
8686 repo_id = self ._model_name ,
8787 repo_type = "model" ,
88+ revision = revision ,
89+ force_download = True ,
8890 cache_dir = self ._cache_dir (),
8991 )
9092 if self ._model_path is not None and self ._find_pretrained_path () is None :
Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ class ExtractionContext:
2828
2929@runtime_checkable
3030class PageExtractor (Protocol ):
31- def download_models (self ) -> None :
31+ def download_models (self , revision : str | None = None ) -> None :
3232 ...
3333
3434 def load_models (self ) -> None :
@@ -47,7 +47,7 @@ def extract(
4747
4848@runtime_checkable
4949class DeepSeekOCRModel (Protocol ):
50- def download (self ) -> None :
50+ def download (self , revision : str | None ) -> None :
5151 ...
5252
5353 def load (self ) -> None :
Original file line number Diff line number Diff line change 1+ import time
2+ from pathlib import Path
3+
4+ from doc_page_extractor import create_page_extractor
5+
6+
7+ _REVISION = "9f30c71f441d010e5429c532364a86705536c53a"
8+
9+ def main () -> None :
10+ project_root = Path (__file__ ).parent
11+ extractor = create_page_extractor (
12+ model_path = project_root / "models-cache" ,
13+ local_only = False ,
14+ )
15+ begin_at = time .time ()
16+ extractor .download_models (_REVISION )
17+ print (f"Models downloaded cost { time .time () - begin_at :.2f} seconds." )
18+
19+ if __name__ == "__main__" :
20+ main ()
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
44
55[project ]
66name = " doc-page-extractor"
7- version = " 1.0.7 "
7+ version = " 1.0.8 "
88description = " Document page extraction tool powered by DeepSeek-OCR"
99authors = [
1010 {name = " Tao Zeyu" , email = " i@taozeyu.com" }
You can’t perform that action at this time.
0 commit comments