scythe327 commited on
Commit
1ff46dd
·
verified ·
1 Parent(s): d061ef5

Upload src/llm.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. src/llm.py +30 -0
src/llm.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+
3
+ logger = logging.getLogger(__name__)
4
+
5
+
6
+ class LocalLLM:
7
+ def __init__(self, model_name: str):
8
+ from transformers import pipeline
9
+
10
+ logger.info("Loading local LLM: %s", model_name)
11
+ self.pipe = pipeline("text-generation", model=model_name, device=-1)
12
+ self.tokenizer = self.pipe.tokenizer
13
+
14
+ def generate(self, messages: list[dict], max_tokens: int = 1024, temperature: float = 0.1) -> str:
15
+ prompt = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
16
+ result = self.pipe(
17
+ prompt,
18
+ max_new_tokens=max_tokens,
19
+ temperature=temperature,
20
+ do_sample=temperature > 0,
21
+ pad_token_id=self.tokenizer.eos_token_id,
22
+ )
23
+ text = result[0]["generated_text"]
24
+ if text.startswith(prompt):
25
+ text = text[len(prompt):]
26
+ return text.strip()
27
+
28
+ def close(self):
29
+ del self.pipe
30
+ del self.tokenizer