search / app.py
danoprea's picture
recall init model
112d3c5
#from transformers import AutoModel, AutoTokenizer, pipeline
import shutil
import gradio as gr
import os
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
# Încarcă modelul și tokenizer-ul
model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-j-6b")
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6b")
# Locația cache-ului Hugging Face
cache_dir = os.path.join(os.getenv('TRANSFORMERS_CACHE', './cache'))
# Șterge cache-ul dacă dorești să forțezi reîncărcarea modelului
shutil.rmtree(cache_dir, ignore_errors=True)
# Încarcă modelul doar o singură dată, la început
#qa_pipeline = pipeline("question-answering", model="openai-community/gpt2")
# Configurare manuală a pipeline-ului
qa_pipeline = pipeline("text-generation", model=model, tokenizer=tokenizer)
# Funcția pentru procesarea întrebărilor
def answer_question(context, question):
# Verificăm că textul de context nu este gol
if not context.strip():
return "Te rog să introduci un fragment de text."
# Verificăm că întrebarea nu este goală
if not question.strip():
return "Te rog să introduci o întrebare."
result = qa_pipeline({
"context": context,
"question": question
})
return result['answer']
# Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("# Text Fragment Analyzer")
# Input pentru context și întrebare
context = gr.Textbox(label="Fragmente de text", lines=10, placeholder="Introdu textul aici...")
question = gr.Textbox(label="Întrebare", placeholder="Ce vrei să întrebi despre text?")
# Output pentru răspuns
answer = gr.Textbox(label="Răspuns", interactive=False)
# Buton pentru generarea răspunsului
btn = gr.Button("Generează răspuns")
# Asociem acțiunea butonului cu funcția `answer_question`
btn.click(answer_question, inputs=[context, question], outputs=answer)
# Rulează aplicația pe Hugging Face
demo.launch(share=True) # share=True pentru a obține un link public