sashtech commited on
Commit
95df53e
·
verified ·
1 Parent(s): f3e42ce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -9
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import gradio as gr
2
- from transformers import AutoTokenizer, AutoModel, AutoModelForSequenceClassification
3
  import torch
4
  import spacy
5
  import subprocess
@@ -24,19 +24,18 @@ word_vectors = api.load("glove-wiki-gigaword-50")
24
  # Check for GPU and set the device accordingly
25
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
26
 
27
- # Load GPT-J-6B model and tokenizer from Hugging Face
28
- tokenizer_ai = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6B")
29
- model_ai = AutoModel.from_pretrained("EleutherAI/gpt-j-6B").to(device)
30
 
31
- # AI detection function using GPT-J-6B-based model
32
  def detect_ai_generated(text):
33
  inputs = tokenizer_ai(text, return_tensors="pt", truncation=True, max_length=512).to(device)
34
  with torch.no_grad():
35
  outputs = model_ai(**inputs)
36
- # Process the hidden states to generate a score (example logic, adjust as needed)
37
- hidden_state = outputs.last_hidden_state[:, 0, :] # Use the first token's representation
38
- score = torch.mean(hidden_state).item()
39
- return f"AI-Generated Content Score: {score:.2f}"
40
 
41
  # Function to get synonyms using NLTK WordNet
42
  def get_synonyms_nltk(word, pos):
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
3
  import torch
4
  import spacy
5
  import subprocess
 
24
  # Check for GPU and set the device accordingly
25
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
26
 
27
+ # Load AI Detector model and tokenizer from Hugging Face (roberta-base-openai-detector)
28
+ tokenizer_ai = AutoTokenizer.from_pretrained("roberta-base-openai-detector")
29
+ model_ai = AutoModelForSequenceClassification.from_pretrained("roberta-base-openai-detector").to(device)
30
 
31
+ # AI detection function using the RoBERTa-based model
32
  def detect_ai_generated(text):
33
  inputs = tokenizer_ai(text, return_tensors="pt", truncation=True, max_length=512).to(device)
34
  with torch.no_grad():
35
  outputs = model_ai(**inputs)
36
+ probabilities = torch.softmax(outputs.logits, dim=1)
37
+ ai_probability = probabilities[0][1].item() * 100 # Probability of being AI-generated
38
+ return f"AI-Generated Content Probability: {ai_probability:.2f}%"
 
39
 
40
  # Function to get synonyms using NLTK WordNet
41
  def get_synonyms_nltk(word, pos):