Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import pipeline | |
| import time | |
| from functools import lru_cache | |
| # Inicijalizacija punog modela s optimizacijama | |
| # Cache modela za brže učitavanje | |
| def load_model(): | |
| return pipeline( | |
| "text-generation", | |
| model="facebook/opt-350m", | |
| device=-1, # Koristi CPU | |
| ) | |
| def iskon_odgovori(pitanje): | |
| start_time = time.time() | |
| model = load_model() | |
| try: | |
| # Generiraj potpuni odgovor bez ograničenja | |
| full_response = model( | |
| f"ISKON BOT: {pitanje}\nOdgovor:", | |
| max_new_tokens=500, # Puni dužina odgovora | |
| temperature=0.9, # Maksimalna kreativnost | |
| do_sample=True # Potpuna sloboda izražavanja | |
| )[0]["generated_text"] | |
| # Ekstrahiraj samo odgovor nakon oznake | |
| odgovor = full_response.split("Odgovor:")[1].strip() | |
| print(f"Generiranje trajalo: {time.time()-start_time:.2f}s") | |
| return odgovor | |
| except Exception as e: | |
| print(f"Greška: {str(e)}") | |
| return "Duhovni odgovor trenutno nije dostupan. Pokušajte ponovo kasnije." | |
| # Poboljšano sučelje s progresom | |
| with gr.Blocks(title="🌌 ISKON SUSTAV - Puna Duhovna Sloboda") as app: | |
| gr.Markdown(""" | |
| ## 🌳 DOBRODOŠLI U ISKON SUSTAV | |
| *"Gdje svaka riječ teče slobodno kao rijeka vremena..."* | |
| """) | |
| with gr.Row(): | |
| pitanje = gr.Textbox(label="Što te muči, dušo?", placeholder="Upitaj svoje najdublje pitanje...") | |
| btn = gr.Button("POŠALJI U SVEMIR") | |
| with gr.Row(): | |
| odgovor = gr.Textbox(label="Duhovni odgovor", lines=10, max_lines=50) | |
| status = gr.Textbox(label="Status", interactive=False) | |
| # Progres bar za vizualnu povratnu informaciju | |
| progress = gr.Progress() | |
| def generate_with_feedback(pitanje, progress=gr.Progress()): | |
| progress(0.1, desc="Učitavam mudrost...") | |
| time.sleep(1) | |
| progress(0.3, desc="Razmišljam o odgovoru...") | |
| model = load_model() | |
| progress(0.6, desc="Formuliram odgovor...") | |
| odgovor = iskon_odgovori(pitanje) | |
| progress(1.0, desc="Gotovo!") | |
| return odgovor, "Duhovna poruka primljena" | |
| btn.click( | |
| fn=generate_with_feedback, | |
| inputs=[pitanje], | |
| outputs=[odgovor, status] | |
| ) | |
| app.launch() |