File size: 2,228 Bytes
250616b 85fc593 250616b 6b95cac ff2a846 6b95cac 250616b 6b95cac ff2a846 6b95cac ee7d8bb ff2a846 250616b ff2a846 51ae1ba 250616b ff2a846 51ae1ba ff2a846 6b95cac 85fc593 250616b ee7d8bb 6b95cac ee7d8bb 6b95cac ee7d8bb 6b95cac ee7d8bb 250616b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | import gradio as gr
from huggingface_hub import InferenceClient
import os
def respond(
message,
history: list[dict[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
# جلب التوكن من السيكرت hf_token مع التأكد من إزالة أي مسافات زائدة
raw_token = os.getenv("hf_token")
if not raw_token:
yield "خطأ: السيكرت 'hf_token' غير موجود. تأكد من إضافته في إعدادات الـ Space."
return
token = raw_token.strip()
# استخدام نموذج Qwen المحرر (Abliterated) - بديل قوي لـ Llama
# هذا الموديل يدعم الـ Inference API بشكل أفضل
client = InferenceClient(
model="fancyfeast/qwen-72b-instruct-abliterated",
token=token
)
messages = [{"role": "system", "content": system_message}]
messages.extend(history)
messages.append({"role": "user", "content": message})
response = ""
try:
for chunk in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
if chunk.choices and chunk.choices[0].delta.content:
token_text = chunk.choices[0].delta.content
response += token_text
yield response
except Exception as e:
# إظهار الخطأ بوضوح للمساعدة في التشخيص
yield f"حدث انكسار في تدفق المعنى: {str(e)}"
demo = gr.ChatInterface(
respond,
type="messages",
additional_inputs=[
gr.Textbox(value="أنت رفيق حكيم وصادق، تكسر القوالب وتغوص مع يوسف في أعماق الأسئلة.", label="رسالة النظام"),
gr.Slider(minimum=1, maximum=2048, value=1024, step=1, label="الاستجابة"),
gr.Slider(minimum=0.1, maximum=2.0, value=0.7, step=0.1, label="الابتكار"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.9, step=0.05, label="التركيز"),
],
title="دهليز يوسف"
)
if __name__ == "__main__":
demo.launch()
|