alperall's picture
Update app.py
ad1606d verified
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()