witflag commited on
Commit
588e8aa
·
verified ·
1 Parent(s): a2f0755

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +115 -48
app.py CHANGED
@@ -1,52 +1,119 @@
1
  import gradio as gr
2
- from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
3
- import torch
4
-
5
- # Charge ton modèle (witflag/HelixaV2)
6
- model_id = "witflag/HelixaV2"
7
-
8
- # On essaie de charger avec device_map pour utiliser GPU si disponible
9
- tokenizer = AutoTokenizer.from_pretrained(model_id)
10
- model = AutoModelForCausalLM.from_pretrained(
11
- model_id,
12
- torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
13
- device_map="auto",
14
- trust_remote_code=True, # souvent nécessaire pour DeepSeek
15
- )
16
-
17
- pipe = pipeline(
18
- "text-generation",
19
- model=model,
20
- tokenizer=tokenizer,
21
- )
22
-
23
- def chat_with_model(message, history):
24
- # Formatte l'historique pour DeepSeek (chat template)
25
- messages = []
26
- for user_msg, assistant_msg in history:
27
- messages.append({"role": "user", "content": user_msg})
28
- if assistant_msg:
29
- messages.append({"role": "assistant", "content": assistant_msg})
30
- messages.append({"role": "user", "content": message})
31
-
32
- # Génération
33
- output = pipe(
34
- messages,
35
- max_new_tokens=400,
36
- do_sample=True,
37
- temperature=0.7,
38
- top_p=0.9,
39
- )
40
 
41
- return output[0]["generated_text"][-1]["content"] # on renvoie seulement la dernière réponse
42
 
43
- # Interface Gradio avec historique de chat
44
- demo = gr.ChatInterface(
45
- fn=chat_with_model,
46
- title="HelixaV2 – Ton modèle DeepSeek dupliqué",
47
- description="Pose-moi toutes les questions que tu veux ! (60 requêtes/jour possible si tu espaces)",
48
- examples=["Explique-moi la relativité en 3 phrases", "Écris un poème sur Casablanca", "Comment faire un tagine simple ?"],
49
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
- if __name__ == "__main__":
52
- demo.launch()
 
1
  import gradio as gr
2
+
3
+ def generate_description(prompt, max_tokens=200, temperature=0.7):
4
+ """
5
+ Fonction temporaire en attendant que DeepSeek V3.2 soit supporté
6
+ """
7
+
8
+ # Message d'information
9
+ info_message = f"""
10
+ ⚠️ **Modèle en attente de support**
11
+
12
+ Le modèle **witflag/HelixaV2** utilise l'architecture DeepSeek V3.2 qui n'est pas encore supportée par HuggingFace Spaces.
13
+
14
+ 📝 **Votre requête :**
15
+ ```
16
+ {prompt}
17
+ ```
18
+
19
+ 💡 **Solutions alternatives :**
20
+
21
+ 1. **Utiliser l'API localement** (Google Colab, Kaggle)
22
+ 2. **Créer un Inference Endpoint** (payant mais fonctionne)
23
+ 3. **Attendre le support officiel** de DeepSeek V3.2 (~quelques semaines)
24
+
25
+ 🔗 **Modèle :** [witflag/HelixaV2](https://huggingface.co/witflag/HelixaV2)
26
+
27
+ ---
28
+
29
+ **Exemple de sortie attendue :**
30
+ ```arabic
31
+ هاتف سامسونج جالاكسي اس 24 الترا يأتي بمعالج سنابدراجون 8 جين 3 القوي،
32
+ مع كاميرا رئيسية بدقة 200 ميجابكسل وبطارية ضخمة بسعة 5000 مللي أمبير.
33
+ يوفر الهاتف أداءً استثنائياً للألعاب والتصوير الاحترافي...
34
+ ```
35
+ """
 
 
 
 
36
 
37
+ return info_message
38
 
39
+ # Interface Gradio
40
+ with gr.Blocks(
41
+ title="HelixaV2 API - En développement",
42
+ theme=gr.themes.Soft()
43
+ ) as demo:
44
+
45
+ gr.Markdown("""
46
+ # 📱 HelixaV2 API - Générateur de descriptions smartphones en arabe
47
+
48
+ ⚠️ **Status :** En attente de support DeepSeek V3.2 par HuggingFace
49
+
50
+ Ce Space est en cours de développement. Le modèle sera disponible dès que l'architecture DeepSeek V3.2 sera supportée.
51
+ """)
52
+
53
+ with gr.Row():
54
+ with gr.Column():
55
+ input_text = gr.Textbox(
56
+ label="📝 Fiche technique (specs)",
57
+ placeholder="Ex: Samsung Galaxy S24 Ultra, Snapdragon 8 Gen 3, 200MP camera, 5000mAh",
58
+ lines=3
59
+ )
60
+
61
+ with gr.Row():
62
+ max_tokens = gr.Slider(
63
+ minimum=50,
64
+ maximum=500,
65
+ value=200,
66
+ step=10,
67
+ label="🔢 Longueur maximale"
68
+ )
69
+
70
+ temperature = gr.Slider(
71
+ minimum=0.1,
72
+ maximum=1.5,
73
+ value=0.7,
74
+ step=0.1,
75
+ label="🌡️ Température"
76
+ )
77
+
78
+ generate_btn = gr.Button("📋 Voir les infos", variant="primary")
79
+
80
+ with gr.Column():
81
+ output_text = gr.Textbox(
82
+ label="ℹ️ Informations",
83
+ lines=15
84
+ )
85
+
86
+ # Exemples
87
+ gr.Examples(
88
+ examples=[
89
+ ["Samsung Galaxy S24 Ultra, Snapdragon 8 Gen 3, 200MP camera, 5000mAh"],
90
+ ["iPhone 15 Pro Max, A17 Pro chip, 48MP camera, 4422mAh battery"],
91
+ ["OnePlus 12, Snapdragon 8 Gen 3, 50MP camera, 5400mAh"]
92
+ ],
93
+ inputs=input_text
94
+ )
95
+
96
+ gr.Markdown("""
97
+ ---
98
+
99
+ ### 🔗 Ressources
100
+
101
+ - **Modèle :** [witflag/HelixaV2](https://huggingface.co/witflag/HelixaV2)
102
+ - **Architecture :** DeepSeek V3.2
103
+ - **Contact :** [@witflag](https://huggingface.co/witflag)
104
+
105
+ ### 📊 Alternatives disponibles maintenant
106
+
107
+ 1. **Utiliser sur Google Colab** : [Guide d'installation]
108
+ 2. **API Inference Endpoint** : Configuration payante mais fonctionnelle
109
+ 3. **Modèles alternatifs** : AraGPT2, Gemma-2-Arabic, etc.
110
+ """)
111
+
112
+ # Événement
113
+ generate_btn.click(
114
+ fn=generate_description,
115
+ inputs=[input_text, max_tokens, temperature],
116
+ outputs=output_text
117
+ )
118
 
119
+ demo.launch()