gijl commited on
Commit
eaaff79
·
verified ·
1 Parent(s): d9f91ad

Delete app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -51
app.py DELETED
@@ -1,51 +0,0 @@
1
- import gradio as gr
2
- from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline, TextIteratorStreamer
3
- import torch
4
- import os
5
- from threading import Thread # ضرورية تقنياً لعمل سطر البث ولا تستهلك ذاكرة
6
-
7
- model_name = "gijl/gemma-4-E2B-it"
8
-
9
- tokenizer = AutoTokenizer.from_pretrained(model_name)
10
-
11
- # تحميل النموذج مرة واحدة (هنا سيبقى الاستهلاك ثابت عند 9 جيجا)
12
- model = AutoModelForCausalLM.from_pretrained(model_name,
13
- torch_dtype=torch.float16,
14
- device_map="auto")
15
-
16
- # نمرر الكائن model لكي لا يتم تحميله مرتين في الذاكرة
17
- pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
18
-
19
- def generate_response(message, history):
20
- # تنسيق الرسائل بشكل بسيط لضمان استجابة النموذج
21
- messages = [
22
- {"role": "system", "content": "Você é ELIZA, uma terapeuta que responde com empatia."},
23
- {"role": "user", "content": message}
24
- ]
25
-
26
- # 1. سطر إعداد البث
27
- streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
28
-
29
- # تحويل النص لـ Tokens
30
- inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
31
-
32
- # 2. إعداد المعطيات
33
- generation_kwargs = dict(input_ids=inputs, streamer=streamer, max_new_tokens=150, temperature=0.7)
34
-
35
- # 3. تشغيل المعالج في الخلفية (لكي لا يتوقف الكود عن الرد)
36
- thread = Thread(target=model.generate, kwargs=generation_kwargs)
37
- thread.start()
38
-
39
- # 4. السطر المطلوب لتفعيل البث المباشر
40
- partial_text = ""
41
- for new_text in streamer:
42
- partial_text += new_text
43
- yield partial_text # هذا السطر هو الذي "يدفع" الكلمات للواجهة فوراً
44
-
45
- demo = gr.ChatInterface(
46
- generate_response,
47
- title="ELIZA (Streaming Mode)",
48
- description="البث مفعل والذاكرة مستقرة."
49
- )
50
-
51
- demo.launch()