Spaces:
Runtime error
Runtime error
File size: 2,832 Bytes
5b96546 445514f 05de030 faf59a3 5b96546 05de030 d1667c4 05de030 faf59a3 5b96546 05de030 800ec69 5b96546 445514f faf59a3 800ec69 d1667c4 faf59a3 d1667c4 800ec69 faf59a3 d1667c4 faf59a3 5b96546 05de030 d1667c4 faf59a3 d1667c4 faf59a3 d1667c4 faf59a3 d1667c4 faf59a3 05de030 800ec69 d1667c4 faf59a3 05de030 d1667c4 faf59a3 d1667c4 faf59a3 d1667c4 05de030 faf59a3 445514f faf59a3 5b96546 faf59a3 5b96546 faf59a3 d1667c4 |
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import os
from dotenv import load_dotenv
from huggingface_hub import InferenceClient
import gradio as gr
# تحميل متغيرات البيئة
load_dotenv()
api_key = os.getenv("FIREWORKS_API_KEY")
if not api_key:
raise ValueError("❌ لم يتم العثور على FIREWORKS_API_KEY في ملف .env")
# إعداد عميل InferenceClient
client = InferenceClient(
provider="fireworks-ai",
api_key=api_key
)
# إعداد رسالة النظام
system_message = {
"role": "system",
"content": (
"أنت مساعد ذكي متخصص في مجال الأشعة الطبية. "
"تقدم إجابات دقيقة وواضحة في تفسير الصور الشعاعية والاستشارات المرتبطة بها فقط."
)
}
MAX_HISTORY_TURNS = 6
# دالة المحادثة
def chat_fn(message, history):
try:
messages = [system_message]
# الاحتفاظ بآخر الرسائل فقط
if history:
history = history[-MAX_HISTORY_TURNS:]
for user_msg, bot_msg in history:
messages.append({"role": "user", "content": user_msg})
messages.append({"role": "assistant", "content": bot_msg})
# إضافة الرسالة الحالية
messages.append({"role": "user", "content": message})
# استدعاء النموذج
completion = client.chat.completions.create(
model="deepseek-ai/DeepSeek-R1",
messages=messages,
max_tokens=4096,
temperature=0.7,
)
if not completion or not completion.choices or not completion.choices[0].message.content.strip():
return "❌ لم يتم استلام رد من النموذج. حاول مرة أخرى أو تحقق من الاتصال."
return completion.choices[0].message.content.strip()
except Exception as e:
return f"❌ خطأ: {e}"
# إعداد واجهة Gradio بشكل جميل
chat_interface = gr.ChatInterface(
fn=chat_fn,
title="🧠 RAY AI Chat - متخصص في الأشعة",
description="مرحبًا بك في مساعد الذكاء الاصطناعي الخاص بتفسير الأشعة. يرجى طرح سؤالك الطبي المتعلق بالتصوير الشعاعي 👇",
theme=gr.themes.Base(
primary_hue="blue",
secondary_hue="slate",
font=["Cairo", "sans-serif"]
),
submit_btn="أرسل 📨",
retry_btn="🔁 إعادة",
clear_btn="🧹 مسح",
textbox=gr.Textbox(
placeholder="اكتب سؤالك هنا... مثال: ما معنى وجود تكلسات في الغدة الدرقية؟",
container=True,
scale=7
),
)
# إطلاق التطبيق
if __name__ == "__main__":
chat_interface.launch()
|