girish00 commited on
Commit
f2d1187
·
verified ·
1 Parent(s): ed2b121

update endpoint helper files

Browse files
Files changed (1) hide show
  1. handler.py +23 -4
handler.py CHANGED
@@ -1,5 +1,5 @@
1
- from typing import Any, Dict
2
  import time
 
3
 
4
  import torch
5
  from peft import PeftConfig, PeftModel
@@ -13,6 +13,25 @@ from infer_local import (
13
  )
14
 
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  class EndpointHandler:
17
  def __init__(self, path: str = ""):
18
  self.path = path or "."
@@ -22,7 +41,7 @@ class EndpointHandler:
22
 
23
  if adapter_weights_present:
24
  peft_config = PeftConfig.from_pretrained(self.path)
25
- base_model_name = peft_config.base_model_name_or_path
26
  self.tokenizer = AutoTokenizer.from_pretrained(base_model_name)
27
  base_model = AutoModelForCausalLM.from_pretrained(
28
  base_model_name,
@@ -62,8 +81,8 @@ class EndpointHandler:
62
  }
63
 
64
  parameters = data.get("parameters", {}) or {}
65
- max_new_tokens = int(parameters.get("max_new_tokens", 320))
66
- do_sample = bool(parameters.get("do_sample", False))
67
 
68
  prompt_text = build_instruction_prompt(user_prompt)
69
  inputs = self.tokenizer(prompt_text, return_tensors="pt").to(self.device)
 
 
1
  import time
2
+ from typing import Any, Dict
3
 
4
  import torch
5
  from peft import PeftConfig, PeftModel
 
13
  )
14
 
15
 
16
+ DEFAULT_BASE_MODEL = "Qwen/Qwen2.5-Coder-0.5B-Instruct"
17
+
18
+
19
+ def as_bool(value: Any) -> bool:
20
+ if isinstance(value, bool):
21
+ return value
22
+ if isinstance(value, str):
23
+ return value.strip().lower() in {"1", "true", "yes", "y", "on"}
24
+ return bool(value)
25
+
26
+
27
+ def clamp_int(value: Any, default: int, minimum: int, maximum: int) -> int:
28
+ try:
29
+ parsed = int(value)
30
+ except (TypeError, ValueError):
31
+ parsed = default
32
+ return max(minimum, min(maximum, parsed))
33
+
34
+
35
  class EndpointHandler:
36
  def __init__(self, path: str = ""):
37
  self.path = path or "."
 
41
 
42
  if adapter_weights_present:
43
  peft_config = PeftConfig.from_pretrained(self.path)
44
+ base_model_name = peft_config.base_model_name_or_path or DEFAULT_BASE_MODEL
45
  self.tokenizer = AutoTokenizer.from_pretrained(base_model_name)
46
  base_model = AutoModelForCausalLM.from_pretrained(
47
  base_model_name,
 
81
  }
82
 
83
  parameters = data.get("parameters", {}) or {}
84
+ max_new_tokens = clamp_int(parameters.get("max_new_tokens"), 320, 1, 1024)
85
+ do_sample = as_bool(parameters.get("do_sample", False))
86
 
87
  prompt_text = build_instruction_prompt(user_prompt)
88
  inputs = self.tokenizer(prompt_text, return_tensors="pt").to(self.device)