FECUOY commited on
Commit
9593a27
·
verified ·
1 Parent(s): ac0c812

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +72 -0
app.py CHANGED
@@ -1,8 +1,80 @@
1
  import gradio as gr
2
  import autogen
 
 
 
3
  from utils import process_uploaded_file, export_to_docx
4
  from agents_config import create_agents
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  # الدالة الأساسية (تأكد أن الأسماء تطابق ما في utils.py)
7
  def process_all(file_obj, manual_text, token):
8
  if not token:
 
1
  import gradio as gr
2
  import autogen
3
+ fromimport gradio as gr
4
+ import autogen
5
+ import os
6
  from utils import process_uploaded_file, export_to_docx
7
  from agents_config import create_agents
8
 
9
+ def start_novel_engine(file_obj, extra_text, user_token):
10
+ if not user_token:
11
+ return "⚠️ يرجى إدخال التوكن الخاص بك.", None
12
+
13
+ # 1. استخراج النص من الملف
14
+ context = ""
15
+ if file_obj is not None:
16
+ try:
17
+ context = process_uploaded_file(file_obj)
18
+ except Exception as e:
19
+ return f"❌ خطأ في الملف: {str(e)}", None
20
+
21
+ full_prompt = f"{context}\n\n{extra_text}".strip()
22
+ if len(full_prompt) < 10:
23
+ return "⚠️ النص قصير جدًا للبدء.", None
24
+
25
+ try:
26
+ # 2. تشغيل الوكلاء
27
+ agents = create_agents(user_token)
28
+ groupchat = autogen.GroupChat(
29
+ agents=[v for k, v in agents.items() if k != "editor"],
30
+ messages=[],
31
+ max_round=10
32
+ )
33
+ manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=agents["editor"].llm_config)
34
+
35
+ # 3. التواصل مع Ling-1T
36
+ chat_result = agents["editor"].initiate_chat(
37
+ manager,
38
+ message=f"قم بصياغة الفصل التالي وتنسيقه أدبيًا:\n\n{full_prompt}"
39
+ )
40
+
41
+ final_text = chat_result.chat_history[-1]['content']
42
+ docx_path = export_to_docx(final_text)
43
+
44
+ return final_text, docx_path
45
+ except Exception as e:
46
+ return f"❌ خطأ أثناء الإنتاج: {str(e)}", None
47
+
48
+ # واجهة مستقرة (بدون SSR وبدون مسببات الخطأ)
49
+ with gr.Blocks(analytics_enabled=False) as demo:
50
+ gr.Markdown("# 🖋️ Ling-1T Novel Studio")
51
+
52
+ with gr.Row():
53
+ with gr.Column():
54
+ hf_token = gr.Textbox(label="Hugging Face Token", type="password")
55
+ # إزالة أي خصائص إضافية من الملف لضمان الاستقرار
56
+ file_input = gr.File(label="Upload DOCX/TXT")
57
+ instruction = gr.Textbox(label="Special Instructions", lines=3)
58
+ run_btn = gr.Button("🚀 Start Writing", variant="primary")
59
+
60
+ with gr.Column():
61
+ output_display = gr.Textbox(label="Manuscript Preview", lines=12)
62
+ download_link = gr.File(label="Download Final DOCX")
63
+
64
+ # القضاء على الخطأ عبر منع الـ API تمامًا لهذا الحدث
65
+ run_btn.click(
66
+ fn=start_novel_engine,
67
+ inputs=[file_input, instruction, hf_token],
68
+ outputs=[output_display, download_link],
69
+ api_name=False # هذا السطر يمنع Gradio من فحص المكونات برمجياً
70
+ )
71
+
72
+ if __name__ == "__main__":
73
+ # تشغيل مباشر وبسيط
74
+ demo.launch(show_api=False)
75
+ utils import process_uploaded_file, export_to_docx
76
+ from agents_config import create_agents
77
+
78
  # الدالة الأساسية (تأكد أن الأسماء تطابق ما في utils.py)
79
  def process_all(file_obj, manual_text, token):
80
  if not token: