File size: 2,397 Bytes
3764ff8
682e91f
a2051b1
 
3764ff8
a2051b1
 
 
 
 
 
 
 
3764ff8
a2051b1
 
 
682e91f
a2051b1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63ce116
a2051b1
 
 
63ce116
a2051b1
 
 
63ce116
a2051b1
 
682e91f
a2051b1
 
 
 
 
 
 
 
 
 
 
 
 
63ce116
a2051b1
 
 
682e91f
3764ff8
a2051b1
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
import gradio as gr
from transformers import pipeline
import time
from functools import lru_cache

# Inicijalizacija punog modela s optimizacijama
@lru_cache(maxsize=1)  # 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()