Spaces:
Running
Running
File size: 2,841 Bytes
1ab4362 8283b35 ed732ec 43da25f a0ff5e6 b2820ed 80f9f0f 7625fb6 b2820ed 39514f6 a0ff5e6 7fa37a5 b2820ed 401411c 7fa37a5 3bbff8c f1f799c 401411c 3bbff8c e07cb10 5e96611 3c02d56 a0ff5e6 7625fb6 a0ff5e6 f8bc593 43da25f f8bc593 a0ff5e6 c0f56fe 43da25f a0ff5e6 11e71f5 3659c6a e07cb10 27001e3 5e96611 c9c4e90 95946b5 7b6d8e8 95946b5 27001e3 5e96611 95946b5 |
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
import gradio as gr
import os
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
import json
import socket
from datetime import datetime
import huggingface_hub
from huggingface_hub import Repository
import os
access_token = os.environ['ACCES_TOKEN']
edit_token = os.environ['EDIT_TOKEN']
DATASET_REPO_URL = "https://huggingface.co/datasets/EkhiAzur/Demoko_informazioa"
DATA_FILENAME = "Erabiltzaileak.txt"
DATA_FILE = os.path.join("data", DATA_FILENAME)
model = AutoModelForSequenceClassification.from_pretrained("EkhiAzur/C1_Sailkapen_Demoa", token=access_token)
tokenizer = AutoTokenizer.from_pretrained(
"EkhiAzur/C1_Sailkapen_Demoa",
token = access_token,
use_fast=True,
add_prefix_space=True,
)
classifier = pipeline("text-classification", tokenizer=tokenizer, model=model, max_length=512,
padding=True, truncation=True, batch_size=1)
adibideak = json.load(open("./Adibideak.json", "r"))
def prozesatu(Testua, request: gr.Request):
repo = Repository(
local_dir="data", clone_from=DATASET_REPO_URL, use_auth_token=edit_token
)
#Ip-a lortzeko kontuak
client_ip = request.client.host
local_ip = socket.gethostbyname(socket.gethostbyname(""))
headers = request.kwargs['headers']
if headers and 'x-forwarded-for' in headers:
x_forwarded_for = headers['x-forwarded-for']
client_ip = x_forwarded_for.split(' ')[0] if x_forwarded_for else ""
# Eguna eta ordua lortu
now = datetime.now()
#Fitxategian gorde
f = open(DATA_FILE, "a")
print(f'Erabiltzailea: {client_ip}. Eguna eta ordua: {now}.\n')
f.write(f'Erabiltzailea: {client_ip}. Eguna eta ordua: {now}.\n')
f.close()
commit_url = repo.push_to_hub()
prediction = prozesatu.classifier(Testua)[0]
if prediction["label"]=="GAI":
return {"Gai":prediction["score"], "Ez gai": 1-prediction["score"]}
else:
return {"Gai":1-prediction["score"], "Ez gai": prediction["score"]}
def testua_itzuli(testua):
if testua not in testua_itzuli.adibideak:
return ""
return testua_itzuli.adibideak[testua]
testua_itzuli.adibideak = adibideak
prozesatu.adibideak = adibideak
prozesatu.classifier = classifier
def ezabatu(Testua):
return ""
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
input = gr.Textbox(label="Testua")
with gr.Row():
bidali_btn = gr.Button("Bidali")
ezabatu_btn = gr.Button("Ezabatu")
label = gr.Label(num_top_classes=2, label="C1 maila")
bidali_btn.click(fn=prozesatu, inputs=input, outputs=label)
ezabatu_btn.click(fn=ezabatu, inputs=input, outputs=input)
gr.Examples(list(adibideak.keys()), inputs=input, outputs=input, label="Adibideak:", fn=testua_itzuli, cache_examples=True)
demo.launch() |