AlimZeka / app.py
mahmut2142's picture
Update app.py
cc7999d verified
Raw
History Blame Contribute Delete
3.23 kB
import gradio as gr
from huggingface_hub import InferenceClient
import os
# 1. Model Bilgileri
# Eğer Hugging Face Serverless API bu modeli desteklemiyorsa,
# Space Settings -> Variables altından ENDPOINT_URL tanımlayarak doğrudan kendi sunucunuza bağlayabilirsiniz.
MODEL_ID = "mahmut2142/alimzeka-gemma-reasoning"
ENDPOINT_URL = os.environ.get("ENDPOINT_URL", "")
def respond(
message,
history: list[dict[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
hf_token = os.environ.get("HF_TOKEN")
try:
# Eğer özel bir Endpoint URL tanımlandıysa onu kullanır, yoksa varsayılan model kimliğine gider
target_model = ENDPOINT_URL if ENDPOINT_URL else MODEL_ID
client = InferenceClient(token=hf_token, model=target_model)
messages = [{"role": "system", "content": system_message}]
for turn in history:
messages.append({"role": turn["role"], "content": turn["content"]})
messages.append({"role": "user", "content": message})
response = ""
# API üzerinden kelime kelime akış başlatılıyor (RAM tüketimi SIFIRDIR)
for msg in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
choices = msg.choices
token = ""
if len(choices) and choices[0].delta.content:
token = choices[0].delta.content
response += token
yield response
except Exception as e:
yield f"⚠️ AlimZeka API Bağlantı Hatası: {str(e)}\n\n💡 Çözüm Notu: Modeliniz Gemma Akıl Yürütme mimarisinde olduğu için Hugging Face'in ücretsiz ortak havuzunda desteklenmiyor olabilir. Modeli 'Inference Endpoints' üzerinden ayağa kaldırıp URL'sini Space ayarlarına 'ENDPOINT_URL' olarak ekleyebilirsiniz."
# ChatInterface Kurulumu (Orijinal şablon yapınız korunmuştur)
chatbot = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(
value="Sen İslam ilimleri, dijital egemenlik ve siber güvenlik alanlarında uzmanlaşmış yerli ve milli bir yapay zeka asistanı olan AlimZeka'sın. Sorulara derinlemesine akıl yürüterek mantıklı, tutarlı ve akademik bir üslupla Türkçe yanıtlar vermelisin.",
label="Sistem Talimatı (System Message)"
),
gr.Slider(minimum=1, maximum=4096, value=1024, step=1, label="Maksimum Kelime (Max new tokens)"),
gr.Slider(minimum=0.1, maximum=2.0, value=0.7, step=0.1, label="Yaratıcılık Dengesi (Temperature)"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (Nucleus sampling)"),
],
chatbot=gr.Chatbot(height=500),
textbox=gr.Textbox(placeholder="AlimZeka'ya derinlemesine düşünmesi için bir soru sorun...", container=False, scale=7)
)
with gr.Blocks(theme="soft") as demo:
gr.Markdown(
"""
# 🤖 AlimZeka
*Gemma Akıl Yürütme (Reasoning) mimarisi ile güçlendirilmiş kurumsal yapay zeka asistanı.*
"""
)
chatbot.render()
if __name__ == "__main__":
demo.launch()