|
import gradio as gr |
|
|
|
|
|
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: |
|
|
|
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: |
|
|
|
|
|
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") |
|
|
|
|
|
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() |