Spaces:
Sleeping
Sleeping
Commit
·
8374669
1
Parent(s):
ba41c7f
updated model.py
Browse files
app.py
CHANGED
|
@@ -5,17 +5,16 @@ from model import generate_code
|
|
| 5 |
|
| 6 |
app = FastAPI()
|
| 7 |
|
| 8 |
-
# Define request body schema
|
| 9 |
class GenerateRequest(BaseModel):
|
| 10 |
prompt: str
|
| 11 |
-
max_tokens: int = 256
|
| 12 |
|
| 13 |
@app.get("/")
|
| 14 |
def home():
|
| 15 |
return {"message": "Code Generation API is running!"}
|
| 16 |
|
| 17 |
@app.post("/generate")
|
| 18 |
-
def generate(request: GenerateRequest):
|
| 19 |
if not request.prompt:
|
| 20 |
raise HTTPException(status_code=400, detail="Prompt cannot be empty.")
|
| 21 |
|
|
|
|
| 5 |
|
| 6 |
app = FastAPI()
|
| 7 |
|
|
|
|
| 8 |
class GenerateRequest(BaseModel):
|
| 9 |
prompt: str
|
| 10 |
+
max_tokens: int = 256
|
| 11 |
|
| 12 |
@app.get("/")
|
| 13 |
def home():
|
| 14 |
return {"message": "Code Generation API is running!"}
|
| 15 |
|
| 16 |
@app.post("/generate")
|
| 17 |
+
def generate(request: GenerateRequest):
|
| 18 |
if not request.prompt:
|
| 19 |
raise HTTPException(status_code=400, detail="Prompt cannot be empty.")
|
| 20 |
|
model.py
CHANGED
|
@@ -6,24 +6,23 @@ MODEL_NAME = "bigcode/starcoderbase-1b"
|
|
| 6 |
HF_TOKEN = os.getenv("HUGGINGFACE_TOKEN")
|
| 7 |
|
| 8 |
# Force CPU mode
|
| 9 |
-
device = "cpu"
|
| 10 |
|
| 11 |
# Load tokenizer and model
|
| 12 |
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, token=HF_TOKEN)
|
| 13 |
|
| 14 |
# Ensure the tokenizer has a pad token set
|
| 15 |
if tokenizer.pad_token is None:
|
| 16 |
-
tokenizer.pad_token = tokenizer.eos_token
|
| 17 |
|
| 18 |
model = AutoModelForCausalLM.from_pretrained(
|
| 19 |
MODEL_NAME,
|
| 20 |
token=HF_TOKEN,
|
| 21 |
-
torch_dtype=torch.
|
| 22 |
-
device_map="auto", # Still allows auto placement
|
| 23 |
trust_remote_code=True
|
| 24 |
-
).to(device)
|
| 25 |
|
| 26 |
def generate_code(prompt: str, max_tokens: int = 256):
|
| 27 |
-
inputs = tokenizer(prompt, return_tensors="pt", padding=True).to(device)
|
| 28 |
-
output = model.generate(**inputs, max_new_tokens=max_tokens, pad_token_id=tokenizer.pad_token_id)
|
| 29 |
return tokenizer.decode(output[0], skip_special_tokens=True)
|
|
|
|
| 6 |
HF_TOKEN = os.getenv("HUGGINGFACE_TOKEN")
|
| 7 |
|
| 8 |
# Force CPU mode
|
| 9 |
+
device = "cpu"
|
| 10 |
|
| 11 |
# Load tokenizer and model
|
| 12 |
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, token=HF_TOKEN)
|
| 13 |
|
| 14 |
# Ensure the tokenizer has a pad token set
|
| 15 |
if tokenizer.pad_token is None:
|
| 16 |
+
tokenizer.pad_token = tokenizer.eos_token
|
| 17 |
|
| 18 |
model = AutoModelForCausalLM.from_pretrained(
|
| 19 |
MODEL_NAME,
|
| 20 |
token=HF_TOKEN,
|
| 21 |
+
torch_dtype=torch.float32, # Change to float32 for CPU compatibility
|
|
|
|
| 22 |
trust_remote_code=True
|
| 23 |
+
).to(device) # Explicitly move to CPU
|
| 24 |
|
| 25 |
def generate_code(prompt: str, max_tokens: int = 256):
|
| 26 |
+
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True).to(device)
|
| 27 |
+
output = model.generate(**inputs, max_new_tokens=max_tokens, pad_token_id=tokenizer.pad_token_id)
|
| 28 |
return tokenizer.decode(output[0], skip_special_tokens=True)
|