This repository was archived by the owner on Dec 2, 2025. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4040#-- - 31/01/2024 Lyaaaaa
4141#-- - generate_text now longer receives memory and context as parameters.
4242#-- They are embedded in the prompt parameter by the client.
43+ #--
44+ #-- - 07/05/2024 Lyaaaaa
45+ #-- - Updated generate_text to now be able to censor generation. The words
46+ #-- passed in p_banned_words parameters won't be generated anymore.
4347#------------------------------------------------------------------------------
4448
4549from model import Model
4852import logger
4953
5054class Generator (Model ):
51-
5255#------------------------------------------------------------------------------
5356#-- generate_text
5457#------------------------------------------------------------------------------
5558 def generate_text (self ,
56- p_prompt = None ,
57- p_parameters = None ):
59+ p_prompt = None ,
60+ p_parameters = None ,
61+ p_banned_words = []):
5862
5963 model_input = self ._Tokenizer (p_prompt , return_tensors = "pt" )
6064
65+ if p_banned_words :
66+ banned_words_ids = self ._Tokenizer (
67+ p_banned_words ,
68+ add_special_tokens = False
69+ ).input_ids
70+
71+ p_parameters ["bad_words_ids" ] = banned_words_ids
72+
6173 if self .is_cuda_available :
6274 logger .log .info ("Loading inputs to GPU" )
6375 model_input .to ("cuda" )
Original file line number Diff line number Diff line change 203203#-- - Added a log message to display the model's name and its path.
204204#-- - Added a log message to display if cuda is supported.
205205#--
206+ #--
207+ #-- - 07/05/2024 Lyaaaaa
208+ #-- - Updated _load_tokens to set add_prefix_space to True. It is needed
209+ #-- for using bad_words_ids parameter for generation.
210+ #--
206211#-- - 08/05/2024 Lyaaaaa
207212#-- - Updated _load_model to force (if config.TORCH_DTYPE_SAFETY is True)
208213#-- torch_dtype to be set to float32 if cuda isn't available.
@@ -302,7 +307,10 @@ def _load(self):
302307#------------------------------------------------------------------------------
303308 def _load_tokens (self ):
304309 try :
305- self ._Tokenizer = AutoTokenizer .from_pretrained (self ._model_path )
310+ self ._Tokenizer = AutoTokenizer .from_pretrained (
311+ self ._model_path ,
312+ add_prefix_space = True
313+ )
306314 except Exception as e :
307315 logger .log .error ("Error loading tokens in " + self ._model_path )
308316 logger .log .error (e )
Original file line number Diff line number Diff line change 118118#-- - 31/01/2024 Lyaaaaa
119119#-- - generate_text now longer receives memory and context as parameters.
120120#-- They are embedded in the prompt parameter by the client.
121+ #--
122+ #-- - 07/05/2024 Lyaaaaa
123+ #-- - Updated handle_request and generation case to receive a banned_words
124+ #-- parameter and pass it to generator.generate_text
121125#------------------------------------------------------------------------------
122126
123127import asyncio
@@ -177,10 +181,11 @@ def handle_request(p_websocket, p_data : dict):
177181 request = p_data ['request' ]
178182
179183 if request == Request .TEXT_GENERATION .value :
180- prompt = p_data ['prompt' ]
181- parameters = p_data ['parameters' ]
184+ prompt = p_data ['prompt' ]
185+ parameters = p_data ['parameters' ]
186+ banned_words = p_data ['banned_words' ]
182187
183- generated_text = generator .generate_text (prompt , parameters )
188+ generated_text = generator .generate_text (prompt , parameters , banned_words )
184189
185190 p_data ["generated_text" ] = generated_text
186191
You can’t perform that action at this time.
0 commit comments