Spaces:
Runtime error
Runtime error
import gradio as gr | |
from huggingface_hub import InferenceClient | |
# Load the ClinicalBERT model | |
MODEL_NAME = "emilyalsentzer/Bio_ClinicalBERT" | |
client = InferenceClient(MODEL_NAME) | |
def respond( | |
message, | |
history, | |
system_message, | |
max_tokens, | |
temperature, | |
top_p, | |
): | |
if history is None: | |
history = [] | |
messages = [{"role": "system", "content": system_message}] | |
for val in history: | |
if val[0]: | |
messages.append({"role": "user", "content": val[0]}) | |
if val[1]: | |
messages.append({"role": "assistant", "content": val[1]}) | |
messages.append({"role": "user", "content": message}) | |
# Ensure input includes [MASK] for ClinicalBERT | |
if "[MASK]" not in message: | |
message += " [MASK]" | |
try: | |
response = client.fill_mask(message) | |
prediction = response[0]["sequence"] | |
confidence = response[0]["score"] | |
# Append to history | |
history.append((message, prediction)) | |
return prediction, history # Must return history explicitly as an output | |
except Exception as e: | |
return {"error": str(e)}, history | |
# Create Gradio interface | |
demo = gr.Interface( | |
fn=respond, | |
inputs=[ | |
gr.Textbox(label="User Input"), | |
gr.State(), # Explicit state for history tracking | |
gr.Textbox(value="You are a friendly medical assistant.", label="System message"), | |
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"), | |
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"), | |
gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p"), | |
], | |
outputs=[ | |
gr.Textbox(label="Model Response"), | |
gr.State(), # Explicit state output | |
], | |
) | |
if __name__ == "__main__": | |
demo.launch(share=True) | |