textb0 / app.py
editazzz's picture
Upload 3 files
93b097b verified
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
import uvicorn
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
# Add CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allows all origins
allow_credentials=True,
allow_methods=["*"], # Allows all methods
allow_headers=["*"], # Allows all headers
)
# Initialize the model and tokenizer
model_name = "bigscience/mt0-base"
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
class GenerationRequest(BaseModel):
prompt: str
max_tokens: int = 100
@app.post("/generate")
async def generate(request: GenerationRequest):
inputs = tokenizer(request.prompt, return_tensors="pt", padding=True, truncation=True)
# Move inputs to the same device as the model
device = model.device
inputs = {k: v.to(device) for k, v in inputs.items()}
outputs = model.generate(**inputs, max_new_tokens=request.max_tokens)
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"generated_text": generated_text}
@app.get("/")
def home():
return {"message": "Welcome to the Text Generation API"}