Daniel Lakens
app and requirements
28e3cfc
import gradio as gr
from transformers import AutoModel, AutoTokenizer
import json
# Load model and tokenizer
repo_id = "rasoultilburg/SocioCausaNet"
model = AutoModel.from_pretrained(repo_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(repo_id)
# Prediction function
def predict(sentences, rel_mode="auto", rel_threshold=0.5, cause_decision="cls+span"):
results = model.predict(
sentences,
tokenizer=tokenizer,
rel_mode=rel_mode,
rel_threshold=rel_threshold,
cause_decision=cause_decision
)
return json.dumps(results, indent=2, ensure_ascii=False)
# Gradio interface
iface = gr.Interface(
fn=predict,
inputs=[
gr.Textbox(label="Sentences (comma-separated)", placeholder="Enter sentences"),
gr.Radio(["auto", "neural_only"], label="Relation Mode", value="auto"),
gr.Slider(0.0, 1.0, value=0.5, label="Relation Threshold"),
gr.Radio(["cls_only", "span_only", "cls+span"], label="Cause Decision", value="cls+span")
],
outputs="text",
title="SocioCausaNet API",
description="Extract causal relations from text"
)
iface.launch()