import gradio as gr from llama_cpp import Llama from huggingface_hub import hf_hub_download import os # --- Model Yükleme --- # Hugging Face Hub'dan GGUF modelini indirin. # 'repo_id' kısmına kendi modelinizin repo ID'sini yazın. # 'filename' kısmına GGUF dosyanızın tam adını yazın. model_path = hf_hub_download( repo_id="yagiztan/purderma", filename="unsloth.Q4_K_M.gguf", # Eğer özel (private) bir repo ise token kullanmanız gerekir. # Space'in ayarlarından (Settings -> Repository secrets) HF_TOKEN adında # bir secret oluşturup Hugging Face token'ınızı oraya ekleyebilirsiniz. # token=os.environ.get("HF_TOKEN") ) # Modeli llama-cpp-python ile yükleyin. # n_ctx: Modelin aynı anda ne kadar metin işleyebileceği (context window). # n_gpu_layers: Eğer GPU'lu bir Space kullanıyorsanız, kaç katmanın GPU'ya yükleneceğini belirtir. # CPU üzerinde çalışıyorsanız 0 olarak bırakın. llm = Llama( model_path=model_path, n_ctx=4096, # Context penceresini modelinize göre ayarlayın n_threads=8, # Kullanılabilir CPU çekirdek sayısına göre ayarlayın n_gpu_layers=0 # CPU'da çalıştığı için 0 ) # --- Metin Üretme Fonksiyonu --- def generate_text(prompt): """ Kullanıcıdan gelen prompt'a göre modelden metin üretir. """ output = llm( prompt, max_tokens=512, # Üretilecek maksimum token sayısı echo=False, # Kullanıcının girdiği prompt'u tekrar gösterme stop=["Human:", "\n"], # Bu ifadelerden birini gördüğünde üretimi durdur ) # Modelin çıktısını al ve temizle generated_text = output['choices'][0]['text'].strip() return generated_text # --- Gradio Arayüzü --- with gr.Blocks() as demo: gr.Markdown("# GGUF Model Chatbot Arayüzü") gr.Markdown("Bu arayüz, Hugging Face'e yüklediğiniz GGUF modelini denemenizi sağlar.") inp = gr.Textbox(label="Sorunuzu veya komutunuzu girin", lines=4) out = gr.Textbox(label="Modelin Cevabı", lines=4) btn = gr.Button("Gönder") btn.click(fn=generate_text, inputs=inp, outputs=out) # Arayüzü başlat demo.launch()