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()