Spaces:
Runtime error
Runtime error
import gradio as gr | |
from huggingface_hub import InferenceClient | |
import json | |
import datetime | |
# Hugging Face Model | |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") | |
# Kullanıcı verilerini kaydetmek için (isteğe bağlı bir JSON dosyası kullanılıyor) | |
LOG_FILE = "user_interactions.json" | |
def load_logs(): | |
try: | |
with open(LOG_FILE, "r") as f: | |
return json.load(f) | |
except FileNotFoundError: | |
return {} | |
def save_logs(data): | |
with open(LOG_FILE, "w") as f: | |
json.dump(data, f, indent=4) | |
def respond( | |
message, | |
history: list[tuple[str, str]], | |
system_message, | |
max_tokens, | |
temperature, | |
top_p, | |
user_role | |
): | |
messages = [{"role": "system", "content": system_message}] | |
logs = load_logs() | |
user_id = "user_123" # Burada platformdan alınan kullanıcı kimliği olmalı | |
# Kullanıcı verisini kaydet | |
if user_id not in logs: | |
logs[user_id] = [] | |
for val in history: | |
if val[0]: | |
messages.append({"role": "user", "content": val[0]}) | |
if val[1]: | |
messages.append({"role": "assistant", "content": val[1]}) | |
messages.append({"role": "user", "content": message}) | |
# Kullanıcı rolüne göre sistem mesajını ayarla | |
if user_role == "Öğrenci": | |
messages.append({"role": "system", "content": "Lütfen eğitim seviyesine uygun yanıt ver."}) | |
elif user_role == "Eğitmen": | |
messages.append({"role": "system", "content": "Eğitmenlere yönelik daha derinlemesine açıklamalar ver."}) | |
response = "" | |
for message in client.chat_completion( | |
messages, | |
max_tokens=max_tokens, | |
stream=True, | |
temperature=temperature, | |
top_p=top_p, | |
): | |
token = message.choices[0].delta.content | |
response += token | |
yield response | |
# Kullanıcı etkileşimini kaydet | |
logs[user_id].append({ | |
"timestamp": str(datetime.datetime.now()), | |
"message": message, | |
"response": response, | |
"role": user_role | |
}) | |
save_logs(logs) | |
# Arayüz | |
with gr.Blocks() as demo: | |
gr.Markdown("## Educted AI Chatbot \nEğitim için özelleştirilmiş yapay zeka destekli sohbet botu.") | |
chat = gr.ChatInterface( | |
respond, | |
additional_inputs=[ | |
gr.Textbox(value="You are an AI tutor.", label="Sistem Mesajı"), | |
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Maksimum Token"), | |
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Sıcaklık (Temperature)"), | |
gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p"), | |
gr.Radio(["Öğrenci", "Eğitmen"], value="Öğrenci", label="Kullanıcı Rolü") | |
], | |
) | |
chat.launch() | |