File size: 2,014 Bytes
9cf6111
 
ad1606d
 
 
 
 
4f5b2da
 
ad1606d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4f5b2da
5259f50
ad1606d
 
 
56c42d2
ad1606d
56c42d2
ad1606d
 
 
 
56c42d2
ad1606d
56c42d2
ad1606d
 
 
 
 
 
 
 
 
fc0c78d
 
ad1606d
 
44df078
ad1606d
44df078
4f5b2da
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
import gradio as gr

# MiniMax modeli yükleniyor
chat = gr.load("models/MiniMaxAI/MiniMax-M1-80k", provider="novita")

def onay_kontrol(checked):
    if checked:
        return gr.update(visible=False), gr.update(visible=True)
    else:
        raise gr.Error("Devam etmek için onay kutusunu işaretlemen gerekiyor Patron!")

def mesaj_ekle(mesaj, gecmis, dosya):
    if dosya is not None:
        try:
            # Dosya içeriğini UTF-8 olarak oku
            icerik = dosya.read().decode("utf-8")
            mesaj += f"\n\n📎 Dosya içeriği:\n{icerik}"
        except Exception as e:
            mesaj += f"\n\n📎 Dosya okunamadı: {str(e)}"
    gecmis.append([mesaj, None])
    return "", gecmis

def yanitla(gecmis):
    return chat(history=gecmis)

with gr.Blocks(theme=gr.themes.Soft(primary_hue="purple")) as app:

    # Ön sözleşme / onay formu
    with gr.Group(visible=True) as giris_ekrani:
        gr.Markdown("""
        # 🤖 AlpDroid'e Hoş Geldin!

        Bu yapay zekâ tamamen deneysel ve eğitseldir.  
        ✅ Verdiği yanıtlar kesin bilgi değildir.  
        ✅ Tıbbi, hukuki, finansal tavsiye veremez.  
        ✅ Sorumluluk tamamen kullanıcıya aittir.

        Devam etmek için kutucuğu işaretle.
        """)
        onay = gr.Checkbox(label="📌 Okudum, Onaylıyorum")
        basla = gr.Button("🚀 Sohbete Başla")

    # Chat ekranı
    with gr.Group(visible=False) as chat_ekrani:
        chatbot = gr.Chatbot(label="AlpDroid", show_label=False)
        msg = gr.Textbox(placeholder="Mesajını yaz ve Gönder'e bas...", scale=4)
        dosya = gr.File(label="📎 Dosya yükle (TXT, CSV, JSON)", file_types=[".txt", ".csv", ".json"])
        gonder = gr.Button("Gönder")
        state = gr.State([])

        gonder.click(mesaj_ekle, inputs=[msg, state, dosya], outputs=[msg, state])
        gonder.click(yanitla, inputs=[state], outputs=[chatbot])

    basla.click(fn=onay_kontrol, inputs=[onay], outputs=[giris_ekrani, chat_ekrani])

app.launch()