Spaces:
Sleeping
Sleeping
| # from transformers import pipeline | |
| # #load Codet5 model | |
| # code_pipeline = pipeline("text-generation", model="Salesforce/codet5-base") | |
| # def generate_code(instruction: str) -> str: | |
| # result = code_pipeline(instruction, max_length=256, clean_up_tokenization_spaces=True) | |
| # return result[0]["generated_text"] | |
| # from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| # tokenizer = AutoTokenizer.from_pretrained("./models", trust_remote_code=True) | |
| # model = AutoModelForSeq2SeqLM.from_pretrained("./models", trust_remote_code=True) | |
| # def generate_code(instruction: str) -> str: | |
| # prompt = f"Generate Python code for the following instruction: {instruction}" | |
| # inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True) | |
| # output = model.generate(**inputs, max_length=256) | |
| # generated_code = tokenizer.decode(output[0], skip_special_tokens=True) | |
| # return generated_code | |
| # from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| # tokenizer = AutoTokenizer.from_pretrained("./models") | |
| # model = AutoModelForSeq2SeqLM.from_pretrained("./models") | |
| # def generate_code(instruction: str) -> str: | |
| # prompt = f"Generate Python code: {instruction}" | |
| # inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True) | |
| # output = model.generate(**inputs, max_length=256) | |
| # return tokenizer.decode(output[0], skip_special_tokens=True) | |
| import os | |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| MODEL_DIR = "./data/codet5-model" | |
| os.makedirs(MODEL_DIR, exist_ok=True) | |
| # Global variables but not initialized | |
| tokenizer = None | |
| model = None | |
| def load_model(): | |
| global tokenizer, model | |
| if tokenizer is None or model is None: | |
| if not os.path.exists(MODEL_DIR): | |
| print("Downloading CodeT5 model to persistent /data directory...") | |
| tokenizer = AutoTokenizer.from_pretrained("Salesforce/codet5p-770m-py", cache_dir=MODEL_DIR) | |
| model = AutoModelForSeq2SeqLM.from_pretrained("Salesforce/codet5p-770m-py", cache_dir=MODEL_DIR) | |
| else: | |
| print("Loading model from /data directory...") | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL_DIR) | |
| model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_DIR) | |
| print("Model loaded.") | |
| def generate_code(instruction: str) -> str: | |
| load_model() # Ensure model is loaded before use | |
| prompt = f"# Instruction: {instruction}\n# Python Code:\n" | |
| inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True) | |
| output = model.generate(**inputs, max_length=256) | |
| return tokenizer.decode(output[0], skip_special_tokens=True) | |