serenarolloh commited on
Commit
c84055e
·
verified ·
1 Parent(s): 8d90a46

Update config.py

Browse files
Files changed (1) hide show
  1. config.py +52 -17
config.py CHANGED
@@ -1,21 +1,56 @@
1
- from pydantic import BaseSettings
2
 
3
  class Settings(BaseSettings):
4
- dataset: str = "senga-ml/dnotes-dataset-v6"
5
- base_config: str = "naver-clova-ix/donut-base"
6
- base_processor: str = "naver-clova-ix/donut-base"
7
- base_model: str = "naver-clova-ix/donut-base"
8
-
9
- def get_model_config(self, shipper_id: str):
10
- if shipper_id in ["61", "81", "139"]:
11
- model = "senga-ml/donut-16"
12
- processor = "senga-ml/donut-16"
13
- elif shipper_id in ["165", "127", "145"]:
14
- model = "senga-ml/donut-17"
15
- processor = "senga-ml/donut-17"
16
- else:
17
- model = self.base_model
18
- processor = self.base_processor
19
- return model, processor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
 
21
  settings = Settings()
 
 
 
 
 
 
 
1
+ from pydantic import BaseSettings, Field
2
 
3
  class Settings(BaseSettings):
4
+ # Default values for the processor and model
5
+ processor: str = Field(default="senga-ml/donut-v16")
6
+ model: str = Field(default="senga-ml/donut-v16")
7
+ dataset: str = Field(default="senga-ml/dnotes-data-v6")
8
+ base_config: str = Field(default="naver-clova-ix/donut-base")
9
+ base_processor: str = Field(default="naver-clova-ix/donut-base")
10
+ base_model: str = Field(default="naver-clova-ix/donut-base")
11
+ inference_stats_file: str = Field(default="data/donut_inference_stats.json")
12
+ training_stats_file: str = Field(default="data/donut_training_stats.json")
13
+ evaluate_stats_file: str = Field(default="data/donut_evaluate_stats.json")
14
+
15
+ # The shipper_id to dynamically select model and processor
16
+ shipper_id: str = Field(default="default_shipper")
17
+
18
+ class Config:
19
+ # This enables the automatic reloading of values when they change
20
+ validate_assignment = True
21
+
22
+ def __init__(self, **kwargs):
23
+ super().__init__(**kwargs)
24
+ self.set_model()
25
+
26
+ # Function to dynamically select model and processor based on shipper_id
27
+ def set_model(self):
28
+ shipper_model_map = {
29
+ "61": {"model": "senga-ml/donut-16", "processor": "senga-ml/donut-16"},
30
+ "81": {"model": "senga-ml/donut-16", "processor": "senga-ml/donut-16"},
31
+ "139": {"model": "senga-ml/donut-16", "processor": "senga-ml/donut-16"},
32
+ "165": {"model": "senga-ml/donut-17", "processor": "senga-ml/donut-17"},
33
+ "127": {"model": "senga-ml/donut-17", "processor": "senga-ml/donut-17"},
34
+ "145": {"model": "senga-ml/donut-17", "processor": "senga-ml/donut-17"},
35
+ }
36
+
37
+ config = shipper_model_map.get(
38
+ self.shipper_id,
39
+ {"model": self.base_model, "processor": self.base_processor}
40
+ )
41
+
42
+ self.model = config["model"]
43
+ self.processor = config["processor"]
44
+
45
+ # For debugging
46
+ print(f"Selected model for shipper {self.shipper_id}: {self.model}")
47
+ print(f"Selected processor for shipper {self.shipper_id}: {self.processor}")
48
 
49
+ # Create a singleton instance
50
  settings = Settings()
51
+
52
+ # Example of how to update shipper_id and trigger model change
53
+ def update_shipper(new_shipper_id):
54
+ settings.shipper_id = new_shipper_id
55
+ settings.set_model()
56
+ return settings.model, settings.processor