writefix / app.py
rishi38's picture
Serve both models (WF-1 Mini and WF-1 Large) with a switch
f4ba13f verified
Raw History Blame Contribute Delete
1.9 kB
"""WriteFix demo Space: both models, picked with a switch. The website's "WF-1 Large" toggle calls the `fix` API here."""
import threading
import gradio as gr
from huggingface_hub import hf_hub_download
from infer import Fixer
try:
import spaces # ZeroGPU hardware refuses to start without one decorated function
@spaces.GPU(duration=5)
def _zerogpu_placeholder():
return "ok"
except Exception:
pass
REPO = "rishi38/writefix-models"
MODELS = {"WF-1 Mini": "wf-1-mini.pt", "WF-1 Large": "wf-1-large.pt"}
MAX_CHARS = 1500
fixers, lock = {}, threading.Lock()
def get(name):
with lock:
if name not in fixers:
fixers[name] = Fixer(hf_hub_download(REPO, MODELS[name]), device="cpu")
return fixers[name]
def fix(text, model="WF-1 Large"):
if model not in MODELS:
model = "WF-1 Large"
f = get(model)
with lock: # both models run on the CPU, one request at a time, so visitors need no GPU quota
return f.fix(text[:MAX_CHARS])
for name in MODELS:
get(name)
demo = gr.Interface(
fn=fix,
inputs=[gr.Textbox(lines=8, label="Messy text", placeholder="type like you normally do no fullstops no commas spelling mistaks and all"),
gr.Radio(list(MODELS), value="WF-1 Large", label="Model", info="Mini: 10.5M parameters, 21 MB. Large: 94M parameters, 187 MB.")],
outputs=gr.Textbox(lines=8, label="Fixed"),
title="WriteFix",
description="Two correction models trained from scratch, with no pretrained weights. They fix spelling, punctuation, capitals and common grammar slips. English only.",
examples=[["i dont know wat happend but the server stoped responding after i deploy it", "WF-1 Large"],
["lets meet tommorow at 5 and discus the plan for hackathon", "WF-1 Mini"]],
cache_examples=False,
api_name="fix",
)
demo.queue(default_concurrency_limit=2).launch()