1- print ("svc_texpose - starting" )
2-
1+ from fastapi import FastAPI , Request , Form
2+ from fastapi .templating import Jinja2Templates
3+ from fastapi .responses import HTMLResponse
34from classifier_model import load_models , classify_text
4- from flask import Flask , render_template , request
55
6+ print ("svc_texpose - starting" )
7+
8+ # Load models
69tokenizer , model_ai_hum , model_llm = load_models ()
710
8- # Flask App
9- app = Flask (__name__ )
10-
11- @app .route ("/" , methods = ["GET" , "POST" ])
12- def index ():
13- prediction = None
14- if request .method == "GET" :
15- return {"svc_Texpose is alive :) " }
16-
17- if request .method == "POST" :
18- input_text = request .form .get ("text" , "" )
19- if input_text .strip (): # input if not empty then proceed
20- result = classify_text (input_text , model_ai_hum , model_llm , tokenizer )
21- prediction = result ["type" ]
22- if len (result ["llm" ]) > 1 :
23- prediction += " Using " + result ["llm" ]
24-
25- print (prediction )
26- return render_template ("index.html" , prediction = prediction if prediction is not None else "" )
27-
28-
29- if __name__ == "__main__" :
30- app .run (debug = True )
11+ # Initialize FastAPI app
12+ app = FastAPI ()
13+
14+ # Set up Jinja2 templates
15+ templates = Jinja2Templates (directory = "templates" )
16+
17+ @app .get ("/" , response_class = HTMLResponse )
18+ async def root (request : Request ):
19+ return templates .TemplateResponse ("index.html" , {"request" : request , "prediction" : None , "input_text" : "" })
20+
21+ @app .post ("/classify" , response_class = HTMLResponse )
22+ async def classify (request : Request , input_text : str = Form (...)):
23+ if input_text .strip (): # Ensure input is not empty
24+ result = classify_text (input_text , model_ai_hum , model_llm , tokenizer )
25+ prediction = result ["type" ]
26+
27+ # Ensure "llm" exists and is not empty
28+ if result .get ("llm" ):
29+ prediction += f" Using { result ['llm' ]} "
30+
31+ return templates .TemplateResponse ("index.html" , {"request" : request , "prediction" : prediction , "input_text" : input_text })
3132
33+ return templates .TemplateResponse ("index.html" , {"request" : request , "prediction" : "No text provided." , "input_text" : "" })
0 commit comments