File size: 1,943 Bytes
19782f6 5e7487b 5ed6f8f 921635e 5ed6f8f 921635e 84c1843 70579dd 84c1843 19782f6 921635e 84c1843 badce84 921635e 19782f6 921635e 84c1843 19782f6 84c1843 19782f6 921635e 19782f6 921635e 19782f6 32acc67 19782f6 921635e 19782f6 32acc67 19782f6 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import gradio as gr
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from api.predict import predict_review, models_loaded
def analyze_review(reviewText):
from api.predict import models_loaded
if not reviewText or len(reviewText.strip()) == 0:
return "error: please enter some text"
if not models_loaded:
return "models are loading for the first time, this will take 20-30 minutes. please wait..."
try:
result = predict_review(reviewText)
print(f"raw result: {result}", flush=True)
if "error" in result and result["prediction"] == "error":
return f"error: {result['error']}"
output = f"""prediction: {result['prediction']}
confidence: {result['confidence']:.2%}
fake probability: {result['fake_probability']:.2%}
genuine probability: {result['genuine_probability']:.2%}
model agreement: {result['model_agreement']:.1f}%
is fake: {result['is_fake']}
length category: {result['length_category']}
token count: {result['token_count']}"""
return output
except Exception as e:
return f"error: {str(e)}"
demo = gr.Interface(
fn=analyze_review,
inputs=gr.Textbox(
lines=5,
placeholder="paste review text here...",
label="review text"
),
outputs=gr.Textbox(
lines=10,
label="analysis"
),
title="review classifier",
description="ensemble model for detecting fake reviews"
)
if __name__ == "__main__":
print("starting gradio interface", flush=True)
print("preloading models...", flush=True)
try:
from api.predict import loadResources
loadResources()
print("models preloaded successfully", flush=True)
except Exception as e:
print(f"error preloading models: {str(e)}", flush=True)
demo.launch(server_name="0.0.0.0", server_port=7860) |