plagrism_detection / backend.py
indhupamula's picture
Rename database.csv to backend.py
981c05b verified
raw
history blame
1.34 kB
from fastapi import FastAPI, UploadFile, File
import requests
from transformers import pipeline
from sentence_transformers import CrossEncoder
import pandas as pd
import os
app = FastAPI()
ai_detector = pipeline("text-classification", model="roberta-base-openai-detector")
text_model = CrossEncoder("cross-encoder/stsb-roberta-large")
TEXT_DB = "text_plagiarism.csv"
def load_database():
if not os.path.exists(TEXT_DB):
pd.DataFrame(columns=["content", "plagiarism_score"]).to_csv(TEXT_DB, index=False)
return pd.read_csv(TEXT_DB)
def save_to_database(content, plagiarism_score):
df = load_database()
new_entry = pd.DataFrame({"content": [content], "plagiarism_score": [plagiarism_score]})
df = pd.concat([df, new_entry], ignore_index=True)
df.to_csv(TEXT_DB, index=False)
@app.post("/check_text")
def check_text(text: str):
stored_texts = load_database()["content"].tolist()
if stored_texts:
similarity_scores = text_model.predict([[text, stored] for stored in stored_texts])
highest_similarity = max(similarity_scores)
else:
highest_similarity = 0
save_to_database(text, highest_similarity * 100)
return {"plagiarism_score": highest_similarity * 100}
@app.post("/detect_ai")
def detect_ai(text: str):
result = ai_detector(text)
return result[0]