|
import gradio as gr |
|
import sys |
|
import torch |
|
|
|
try: |
|
from unbabel.comet import download_model, load_from_checkpoint |
|
except ImportError: |
|
print("Error: unbabel-comet package not installed") |
|
print("Install with: pip install unbabel-comet torch gradio") |
|
sys.exit(1) |
|
|
|
def evaluate_translation(src_text, mt_text): |
|
if not hasattr(evaluate_translation, "model"): |
|
try: |
|
model_path = download_model("wasanx/ComeTH") |
|
evaluate_translation.model = load_from_checkpoint(model_path) |
|
except Exception as e: |
|
return f"Error loading model: {str(e)}" |
|
|
|
translations = [{"src": src_text, "mt": mt_text}] |
|
results = evaluate_translation.model.predict( |
|
translations, |
|
batch_size=1, |
|
gpus=0 if not torch.cuda.is_available() else 1 |
|
) |
|
return float(results['scores'][0]) |
|
|
|
demo = gr.Interface( |
|
fn=evaluate_translation, |
|
inputs=[ |
|
gr.Textbox(label="English Source Text"), |
|
gr.Textbox(label="Thai Translation") |
|
], |
|
outputs=gr.Number(label="Quality Score"), |
|
examples=[ |
|
["This is a test sentence.", "นี่คือประโยคทดสอบ"], |
|
["The weather is nice today.", "อากาศดีมากวันนี้"] |
|
], |
|
title="ComeTH Translator Evaluator" |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |