Spaces:
Runtime error
Runtime error
File size: 2,361 Bytes
a0f3c62 |
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 torch
import random
from transformers import AutoTokenizer, AutoModelForSequenceClassification
# Load the trained model and tokenizer
model_name = "your-username/hate-speech-classifier" # Replace with your actual Hugging Face model repo
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
model.eval()
# Predefined usernames and chat messages for a game scenario
usernames = ["ShadowSlayer", "DragonKnight", "PixelMage", "CyberRogue", "PhantomArcher"]
game_responses = [
"I need backup at the base!",
"Watch out for enemies on the left!",
"Let's team up and attack together.",
"Great shot! That was amazing!",
"We need to capture the objective now!",
"Healing incoming, stay close!",
"I got eliminated, need a revive!",
"Nice strategy, let's keep it up!"
]
# Function for classification
def classify_message(message):
inputs = tokenizer(message, padding="max_length", truncation=True, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
prediction = torch.argmax(logits, dim=1).item()
return "Hate speech/Offensive" if prediction == 1 else "Not hate speech/Offensive"
# Chat simulation function
def chat_interface(history, _):
username = random.choice(usernames)
new_message = random.choice(game_responses)
classification = classify_message(new_message)
blurred_message = "****" if classification == "Hate speech/Offensive" else new_message
history.append((f"{username}: {new_message}", f"{username}: {blurred_message}"))
# Generate automated game response
bot_username = "GameMaster"
bot_response = random.choice(game_responses)
history.append((f"{bot_username}: {bot_response}", f"{bot_username}: {bot_response}"))
return history, history
# Create Gradio interface
def main():
with gr.Blocks() as app:
gr.Markdown("# Game Chat Hate Speech Detection Simulator")
chatbot = gr.Chatbot()
submit = gr.Button("Generate Message")
submit.click(chat_interface, inputs=[chatbot, None], outputs=[chatbot, chatbot])
app.launch()
if __name__ == "__main__":
main()
|