FECUOY commited on
Commit
7205d56
·
verified ·
1 Parent(s): a8ba3e2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -69
app.py CHANGED
@@ -1,77 +1,22 @@
1
- import gradio as gr
2
- from openai import OpenAI # مكتبة OpenAI متوافقة مع Kimi
3
- import zipfile
4
  import os
5
- import fitz
6
- import docx
7
 
8
- # إعداد العميل ليتصل بسيرفرات Moonshot مباشرة
9
- # استبدل MOONSHOT_API_KEY بمفتاحك الخاص أو اجعل المستخدم يدخله
10
- def get_client(api_key):
 
 
 
11
  return OpenAI(
12
- api_key=api_key,
13
  base_url="https://api.moonshot.cn/v1",
14
  )
15
 
16
- # ... (دالة extract_text_from_file تبقى كما هي في الكود السابق)
17
-
18
- def respond(message, history, system_message, max_tokens, temperature, api_key):
19
- if not api_key:
20
- yield "⚠️ يرجى إدخال Moonshot API Key الخاص بك."
21
- return
22
-
23
- client = get_client(api_key)
24
- user_text = message.get("text", "")
25
- files = message.get("files", [])
26
-
27
- extracted_knowledge = ""
28
- if files:
29
- yield "⏳ جاري قراءة الملفات بعمق عبر سيرفرات Moonshot..."
30
- for file_obj in files:
31
- path = file_obj if isinstance(file_obj, str) else file_obj.name
32
- extracted_knowledge += extract_text_from_file(path)
33
-
34
- full_prompt = f"{extracted_knowledge}\n\nسؤال المستخدم: {user_text}"
35
 
36
- messages = [{"role": "system", "content": system_message}]
37
- for msg in history:
38
- messages.append(msg)
39
- messages.append({"role": "user", "content": full_prompt})
40
-
41
- try:
42
- completion = client.chat.completions.create(
43
- model="moonshot-v1-128k", # أو 32k أو 8k حسب المتاح لك
44
- messages=messages,
45
- temperature=temperature,
46
- max_tokens=max_tokens,
47
- stream=True,
48
- )
49
-
50
- response_text = ""
51
- for chunk in completion:
52
- delta = chunk.choices[0].delta.content
53
- if delta:
54
- response_text += delta
55
- yield response_text
56
- except Exception as e:
57
- yield f"⚠️ خطأ من مزود Moonshot: {str(e)}"
58
-
59
- # واجهة المستخدم مع خانة لإدخال الـ API Key الخاص بـ Moonshot
60
- with gr.Blocks(theme=gr.themes.Soft()) as demo:
61
- gr.Markdown("# 🚀 Kimi-K2 Ultra Memory Assistant")
62
-
63
- with gr.Sidebar():
64
- api_key_input = gr.Textbox(label="Moonshot API Key", type="password", placeholder="sk-...")
65
- system_msg = gr.Textbox(value="أنت مساعد خبير في تحليل البيانات.", label="System Prompt")
66
- max_t = gr.Slider(512, 128000, value=4096, label="Max Tokens")
67
- temp = gr.Slider(0.1, 1.5, value=0.7, label="Temperature")
68
-
69
- gr.ChatInterface(
70
- respond,
71
- additional_inputs=[system_msg, max_t, temp, api_key_input],
72
- multimodal=True,
73
- type="messages"
74
- )
75
 
76
- if __name__ == "__main__":
77
- demo.launch()
 
 
 
 
1
  import os
2
+ from openai import OpenAI
 
3
 
4
+ # قراءة المفتاح من السيكرتس الخاصة بـ Hugging Face
5
+ MOONSHOT_API_KEY = os.environ.get("MOONSHOT_API_KEY")
6
+
7
+ def get_client():
8
+ if not MOONSHOT_API_KEY:
9
+ return None
10
  return OpenAI(
11
+ api_key=MOONSHOT_API_KEY,
12
  base_url="https://api.moonshot.cn/v1",
13
  )
14
 
15
+ def respond(message, history, system_message, max_tokens, temperature):
16
+ client = get_client()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ if client is None:
19
+ yield "⚠️ خطأ: لم يتم العثور على MOONSHOT_API_KEY في إعدادات Secrets."
20
+ return
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
+ # ... باقي الكود الخاص بالإرسال والملفات