File size: 1,049 Bytes
b295d62
 
a54cb5b
b295d62
a54cb5b
83ec4f2
b295d62
 
 
a88e9cf
a54cb5b
a88e9cf
 
 
 
 
 
 
 
 
a54cb5b
 
 
 
 
 
83ec4f2
a88e9cf
 
 
 
b295d62
 
a54cb5b
b295d62
 
0a795e1
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from functools import lru_cache

from models import ApiWord, CheckResponse
from completions import check_text, load_model

app = FastAPI()

model, tokenizer, device = load_model()

def check_text_stub(text: str):
    def rep(i):
        if i == 3:
            return -10, [" jumped", " leaps"]
        if i == 5:
            return -10, [" calm"]
        if i == 7:
            return -10, [" dog", " cat", " bird", " fish"]
        return -3, []

    result = []
    for i, w in enumerate(text.split()):
        logprob, replacements = rep(i)
        result.append(ApiWord(text=f" {w}", logprob=logprob, replacements=replacements))
    return result

@lru_cache(maxsize=100)
def cached_check_text(text: str):
    return check_text(text, model, tokenizer, device)

@app.get("/check", response_model=CheckResponse)
def check(text: str):
    return CheckResponse(text=text, words=cached_check_text(text))

app.mount("/", StaticFiles(directory="frontend/public", html=True))

#%%