import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Model ve tokenizer'ı yükle
model_name = "mistralai/Mistral-Small-3.1-24B-Base-2503"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype=torch.float16)

# Yanıt oluşturma fonksiyonu
def generate_response(prompt):
    inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
    outputs = model.generate(
        **inputs,
        max_new_tokens=500,
        temperature=0.7,
        top_p=0.9,
        do_sample=True
    )
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return response

# Gradio arayüzü
interface = gr.Interface(
    fn=generate_response,
    inputs=gr.Textbox(lines=2, placeholder="Sorunuzu buraya yazın..."),
    outputs="text",
    title="Mistral-Small-3.1 ile Sohbet",
    description="Mistral-Small-3.1-24B-Base-2503 modelini kullanarak sorularınızı yanıtlar."
)

# Uygulamayı başlat
interface.launch()