Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer | |
| # Define the input schema | |
| class ModelInput(BaseModel): | |
| prompt: str | |
| max_new_tokens: int = 50 # Optional: Defaults to 50 tokens | |
| # Initialize FastAPI app | |
| app = FastAPI() | |
| # Load your model and tokenizer | |
| model_path = "khurrameycon/SmolLM-135M-Instruct-qa_pairs_converted.json-25epochs" # Update with your model directory | |
| tokenizer = AutoTokenizer.from_pretrained(model_path) | |
| model = AutoModelForCausalLM.from_pretrained(model_path) | |
| # Initialize the pipeline | |
| generator = pipeline("text-generation", model=model, tokenizer=tokenizer) | |
| def generate_response(model, tokenizer, instruction): | |
| """Generate a response from the model based on an instruction.""" | |
| messages = [{"role": "user", "content": instruction}] | |
| input_text = tokenizer.apply_chat_template( | |
| messages, tokenize=False, add_generation_prompt=True | |
| ) | |
| inputs = tokenizer.encode(input_text, return_tensors="pt") | |
| outputs = model.generate( | |
| inputs, max_new_tokens=128, temperature=0.2, top_p=0.9, do_sample=True | |
| ) | |
| response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| return response | |
| def generate_text(input: ModelInput): | |
| try: | |
| response = generate_response(model, tokenizer, ModelInput) | |
| return response} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| def root(): | |
| return {"message": "Welcome to the Hugging Face Model API!"} | |