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 huggingface_hub import snapshot_download | |
# from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
# MODEL_DIR = snapshot_download(repo_id="Salesforce/codet5p-770m-py", cache_dir="./data") | |
# 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) | |
import os | |
from huggingface_hub import snapshot_download | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
# Constants | |
HF_MODEL_ID = "Salesforce/codet5p-770m-py" | |
MODEL_DIR = "./data/codet5_model" # More explicit and organized | |
os.makedirs(MODEL_DIR, exist_ok=True) | |
# Snapshot download (will cache in MODEL_DIR) | |
snapshot_download(repo_id=HF_MODEL_ID, cache_dir=MODEL_DIR, local_dir=MODEL_DIR, local_dir_use_symlinks=False) | |
# Globals | |
tokenizer = None | |
model = None | |
def load_model(): | |
global tokenizer, model | |
if tokenizer is None or model is None: | |
print("Loading CodeT5 model from persistent directory...") | |
tokenizer = AutoTokenizer.from_pretrained(MODEL_DIR) | |
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_DIR) | |
print("Model loaded successfully.") | |
def generate_code(instruction: str) -> str: | |
load_model() | |
prompt = f"# Instruction: {instruction}\n# Python Code:\n" | |
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True) | |
outputs = model.generate(**inputs, max_length=256) | |
return tokenizer.decode(outputs[0], skip_special_tokens=True) | |