MariameOuamer commited on
Commit
f13e60b
·
verified ·
1 Parent(s): d4576e2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -19
app.py CHANGED
@@ -7,7 +7,7 @@ import os
7
  import json
8
 
9
  app = FastAPI()
10
- client = InferenceClient(api_key=os.environ['api_key_test'])
11
  timing = 1
12
 
13
  class SpecificationInput(BaseModel):
@@ -33,7 +33,7 @@ def generate_specification(input_data: SpecificationInput):
33
  try:
34
  messages = [{"role": "Analyste d'affaires axé sur la compréhension des besoins des utilisateurs, la définition des fonctionnalités et leur alignement avec les objectifs du projet", "content": prompt}]
35
  response = client.chat.completions.create(
36
- model="meta-llama/Llama-3.2-3B-Instruct",
37
  messages=messages,
38
  temperature=0.7
39
  )
@@ -203,12 +203,12 @@ def generate_specification(input_data: SpecificationInput):
203
 
204
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalités_principales"][f"Fonctionnalité_{str(idx)}"] = {
205
  "Nom" : fonctionnalité,
206
- "Description": description.text,
207
- "Utilisateurs_concernés": utilisateurs_concernés.text,
208
- "Bénéfices_attendus": bénéfices_attendus.text,
209
- "Tâches_associées": tâches_associées.text,
210
- "Conditions_ou_règles_spécifiques": conditions_ou_règles_spécifiques.text,
211
- "Flux_de_travail_global": flux_de_travail_global.text
212
  }
213
 
214
  for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
@@ -226,7 +226,7 @@ def generate_specification(input_data: SpecificationInput):
226
 
227
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalité_secondaire"][f"Fonctionnalité_{str(idx)}"] = {
228
  "Nom" : fonctionnalité,
229
- "Détail": response.text
230
  }
231
 
232
 
@@ -238,6 +238,7 @@ def generate_specification(input_data: SpecificationInput):
238
  Description du projet : {description_projet}
239
  Domaine d'Activité du Client : {domaine_activite}
240
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
241
  Décrivez comment les différentes fonctionnalités interagissent entre elles. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
242
  """)
243
 
@@ -249,6 +250,7 @@ def generate_specification(input_data: SpecificationInput):
249
  Description du projet : {description_projet}
250
  Domaine d'Activité du Client : {domaine_activite}
251
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
252
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
253
  """)
254
 
@@ -261,6 +263,7 @@ def generate_specification(input_data: SpecificationInput):
261
  Description du projet : {description_projet}
262
  Domaine d'Activité du Client : {domaine_activite}
263
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
264
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
265
  """)
266
 
@@ -272,6 +275,7 @@ def generate_specification(input_data: SpecificationInput):
272
  Description du projet : {description_projet}
273
  Domaine d'Activité du Client : {domaine_activite}
274
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
275
  Mentionnez les exigences de performance pour chaque fonctionnalité, telles que le temps de réponse attendu ou le nombre de transactions par seconde. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
276
  """)
277
 
@@ -284,6 +288,7 @@ def generate_specification(input_data: SpecificationInput):
284
  Description du projet : {description_projet}
285
  Domaine d'Activité du Client : {domaine_activite}
286
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
287
  Définissez comment chaque fonctionnalité sera vérifiée pour s'assurer qu'elle répond aux exigences définies. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
288
  """)
289
 
@@ -294,6 +299,7 @@ def generate_specification(input_data: SpecificationInput):
294
  Objectif du Projet : {objectif_projet}
295
  Description du projet : {description_projet}
296
  Domaine d'Activité du Client : {domaine_activite}
 
297
  Veuillez générer une description détaillée incluant l'architecture globale du projet ainsi qu'une description détaillée des composants matériels et logiciels requis pour le projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
298
  """)
299
 
@@ -304,6 +310,7 @@ def generate_specification(input_data: SpecificationInput):
304
  Objectif du Projet : {objectif_projet}
305
  Description du projet : {description_projet}
306
  Domaine d'Activité du Client : {domaine_activite}
 
307
  Veuillez générer une description détaillée incluant les exigences d'intégration et d'interopérabilité pour le projet, ainsi qu'une explication de la manière dont le système va s'intégrer avec d'autres systèmes. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
308
  """)
309
 
@@ -314,6 +321,7 @@ def generate_specification(input_data: SpecificationInput):
314
  Objectif du Projet : {objectif_projet}
315
  Description du projet : {description_projet}
316
  Domaine d'Activité du Client : {domaine_activite}
 
317
  Veuillez générer une description détaillée incluant les exigences de sécurité pour le projet, ainsi qu'une explication des mesures de sécurité à mettre en place pour protéger les données et les accès au système. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
318
  """)
319
 
@@ -324,6 +332,7 @@ def generate_specification(input_data: SpecificationInput):
324
  Objectif du Projet : {objectif_projet}
325
  Description du projet : {description_projet}
326
  Domaine d'Activité du Client : {domaine_activite}
 
327
  Veuillez générer une description détaillée incluant les normes et standards à respecter dans ce projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
328
  """)
329
 
@@ -360,7 +369,7 @@ def generate_specification(input_data: SpecificationInput):
360
 
361
 
362
  projet["Liste_des_fonctionnalitées"][fonctionnalité] = {
363
- "Tâches": tâches_associées.text.replace('\n','').replace('```','').replace('json','')
364
  }
365
 
366
  else:
@@ -539,12 +548,12 @@ def generate_specification(input_data: SpecificationInput):
539
 
540
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalités_principales"][f"Fonctionnalité_{str(idx)}"] = {
541
  "Nom" : fonctionnalité,
542
- "Description": description.text,
543
- "Utilisateurs_concernés": utilisateurs_concernés.text,
544
- "Bénéfices_attendus": bénéfices_attendus.text,
545
- "Tâches_associées": tâches_associées.text,
546
- "Conditions_ou_règles_spécifiques": conditions_ou_règles_spécifiques.text,
547
- "Flux_de_travail_global": flux_de_travail_global.text
548
  }
549
 
550
  for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
@@ -562,7 +571,7 @@ def generate_specification(input_data: SpecificationInput):
562
 
563
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalité_secondaire"][f"Fonctionnalité_{str(idx)}"] = {
564
  "Nom" : fonctionnalité,
565
- "Détail": response.text
566
  }
567
 
568
 
@@ -574,6 +583,7 @@ def generate_specification(input_data: SpecificationInput):
574
  Description du projet : {description_projet}
575
  Domaine d'Activité du Client : {domaine_activite}
576
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
577
  Décrivez comment les différentes fonctionnalités interagissent entre elles. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
578
  """)
579
 
@@ -585,6 +595,7 @@ def generate_specification(input_data: SpecificationInput):
585
  Description du projet : {description_projet}
586
  Domaine d'Activité du Client : {domaine_activite}
587
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
 
588
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
589
  """)
590
 
@@ -598,6 +609,7 @@ def generate_specification(input_data: SpecificationInput):
598
  Domaine d'Activité du Client : {domaine_activite}
599
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
600
  Exigences Techniques : {exigences_techniques}
 
601
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
602
  """)
603
 
@@ -610,6 +622,7 @@ def generate_specification(input_data: SpecificationInput):
610
  Domaine d'Activité du Client : {domaine_activite}
611
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
612
  Exigences Techniques : {exigences_techniques}
 
613
  Mentionnez les exigences de performance pour chaque fonctionnalité, telles que le temps de réponse attendu ou le nombre de transactions par seconde. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
614
  """)
615
 
@@ -623,6 +636,7 @@ def generate_specification(input_data: SpecificationInput):
623
  Domaine d'Activité du Client : {domaine_activite}
624
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
625
  Exigences Techniques : {exigences_techniques}
 
626
  Définissez comment chaque fonctionnalité sera vérifiée pour s'assurer qu'elle répond aux exigences définies. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
627
  """)
628
 
@@ -634,6 +648,7 @@ def generate_specification(input_data: SpecificationInput):
634
  Description du projet : {description_projet}
635
  Domaine d'Activité du Client : {domaine_activite}
636
  Exigences Techniques : {exigences_techniques}
 
637
  Veuillez générer une description détaillée incluant l'architecture globale du projet ainsi qu'une description détaillée des composants matériels et logiciels requis pour le projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
638
  """)
639
 
@@ -645,6 +660,7 @@ def generate_specification(input_data: SpecificationInput):
645
  Description du projet : {description_projet}
646
  Domaine d'Activité du Client : {domaine_activite}
647
  Exigences Techniques : {exigences_techniques}
 
648
  Veuillez générer une description détaillée incluant les exigences d'intégration et d'interopérabilité pour le projet, ainsi qu'une explication de la manière dont le système va s'intégrer avec d'autres systèmes. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
649
  """)
650
 
@@ -656,6 +672,7 @@ def generate_specification(input_data: SpecificationInput):
656
  Description du projet : {description_projet}
657
  Domaine d'Activité du Client : {domaine_activite}
658
  Exigences Techniques : {exigences_techniques}
 
659
  Veuillez générer une description détaillée incluant les exigences de sécurité pour le projet, ainsi qu'une explication des mesures de sécurité à mettre en place pour protéger les données et les accès au système. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
660
  """)
661
 
@@ -667,6 +684,7 @@ def generate_specification(input_data: SpecificationInput):
667
  Description du projet : {description_projet}
668
  Domaine d'Activité du Client : {domaine_activite}
669
  Exigences Techniques : {exigences_techniques}
 
670
  Veuillez générer une description détaillée incluant les normes et standards à respecter dans ce projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
671
  """)
672
 
@@ -703,7 +721,7 @@ def generate_specification(input_data: SpecificationInput):
703
 
704
 
705
  projet["Liste_des_fonctionnalitées"][fonctionnalité] = {
706
- "Tâches": tâches_associées.text.replace('\n','').replace('```','').replace('json','')
707
  }
708
 
709
- return projet
 
7
  import json
8
 
9
  app = FastAPI()
10
+ client = InferenceClient(api_key=os.environ['api_key'])
11
  timing = 1
12
 
13
  class SpecificationInput(BaseModel):
 
33
  try:
34
  messages = [{"role": "Analyste d'affaires axé sur la compréhension des besoins des utilisateurs, la définition des fonctionnalités et leur alignement avec les objectifs du projet", "content": prompt}]
35
  response = client.chat.completions.create(
36
+ model=os.environ['model_name'],
37
  messages=messages,
38
  temperature=0.7
39
  )
 
203
 
204
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalités_principales"][f"Fonctionnalité_{str(idx)}"] = {
205
  "Nom" : fonctionnalité,
206
+ "Description": description,
207
+ "Utilisateurs_concernés": utilisateurs_concernés,
208
+ "Bénéfices_attendus": bénéfices_attendus,
209
+ "Tâches_associées": tâches_associées,
210
+ "Conditions_ou_règles_spécifiques": conditions_ou_règles_spécifiques,
211
+ "Flux_de_travail_global": flux_de_travail_global
212
  }
213
 
214
  for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
 
226
 
227
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalité_secondaire"][f"Fonctionnalité_{str(idx)}"] = {
228
  "Nom" : fonctionnalité,
229
+ "Détail": response
230
  }
231
 
232
 
 
238
  Description du projet : {description_projet}
239
  Domaine d'Activité du Client : {domaine_activite}
240
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
241
+
242
  Décrivez comment les différentes fonctionnalités interagissent entre elles. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
243
  """)
244
 
 
250
  Description du projet : {description_projet}
251
  Domaine d'Activité du Client : {domaine_activite}
252
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
253
+
254
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
255
  """)
256
 
 
263
  Description du projet : {description_projet}
264
  Domaine d'Activité du Client : {domaine_activite}
265
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
266
+
267
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
268
  """)
269
 
 
275
  Description du projet : {description_projet}
276
  Domaine d'Activité du Client : {domaine_activite}
277
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
278
+
279
  Mentionnez les exigences de performance pour chaque fonctionnalité, telles que le temps de réponse attendu ou le nombre de transactions par seconde. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
280
  """)
281
 
 
288
  Description du projet : {description_projet}
289
  Domaine d'Activité du Client : {domaine_activite}
290
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
291
+
292
  Définissez comment chaque fonctionnalité sera vérifiée pour s'assurer qu'elle répond aux exigences définies. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
293
  """)
294
 
 
299
  Objectif du Projet : {objectif_projet}
300
  Description du projet : {description_projet}
301
  Domaine d'Activité du Client : {domaine_activite}
302
+
303
  Veuillez générer une description détaillée incluant l'architecture globale du projet ainsi qu'une description détaillée des composants matériels et logiciels requis pour le projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
304
  """)
305
 
 
310
  Objectif du Projet : {objectif_projet}
311
  Description du projet : {description_projet}
312
  Domaine d'Activité du Client : {domaine_activite}
313
+
314
  Veuillez générer une description détaillée incluant les exigences d'intégration et d'interopérabilité pour le projet, ainsi qu'une explication de la manière dont le système va s'intégrer avec d'autres systèmes. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
315
  """)
316
 
 
321
  Objectif du Projet : {objectif_projet}
322
  Description du projet : {description_projet}
323
  Domaine d'Activité du Client : {domaine_activite}
324
+
325
  Veuillez générer une description détaillée incluant les exigences de sécurité pour le projet, ainsi qu'une explication des mesures de sécurité à mettre en place pour protéger les données et les accès au système. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
326
  """)
327
 
 
332
  Objectif du Projet : {objectif_projet}
333
  Description du projet : {description_projet}
334
  Domaine d'Activité du Client : {domaine_activite}
335
+
336
  Veuillez générer une description détaillée incluant les normes et standards à respecter dans ce projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
337
  """)
338
 
 
369
 
370
 
371
  projet["Liste_des_fonctionnalitées"][fonctionnalité] = {
372
+ "Tâches": tâches_associées.replace('\n','').replace('```','').replace('json','')
373
  }
374
 
375
  else:
 
548
 
549
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalités_principales"][f"Fonctionnalité_{str(idx)}"] = {
550
  "Nom" : fonctionnalité,
551
+ "Description": description,
552
+ "Utilisateurs_concernés": utilisateurs_concernés,
553
+ "Bénéfices_attendus": bénéfices_attendus,
554
+ "Tâches_associées": tâches_associées,
555
+ "Conditions_ou_règles_spécifiques": conditions_ou_règles_spécifiques,
556
+ "Flux_de_travail_global": flux_de_travail_global
557
  }
558
 
559
  for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
 
571
 
572
  projet["Description_des_fonctionnalités_attendues"]["Fonctionnalité_secondaire"][f"Fonctionnalité_{str(idx)}"] = {
573
  "Nom" : fonctionnalité,
574
+ "Détail": response
575
  }
576
 
577
 
 
583
  Description du projet : {description_projet}
584
  Domaine d'Activité du Client : {domaine_activite}
585
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
586
+
587
  Décrivez comment les différentes fonctionnalités interagissent entre elles. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
588
  """)
589
 
 
595
  Description du projet : {description_projet}
596
  Domaine d'Activité du Client : {domaine_activite}
597
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
598
+
599
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
600
  """)
601
 
 
609
  Domaine d'Activité du Client : {domaine_activite}
610
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
611
  Exigences Techniques : {exigences_techniques}
612
+
613
  Précisez les règles qui régissent l'interaction entre les fonctionnalités. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
614
  """)
615
 
 
622
  Domaine d'Activité du Client : {domaine_activite}
623
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
624
  Exigences Techniques : {exigences_techniques}
625
+
626
  Mentionnez les exigences de performance pour chaque fonctionnalité, telles que le temps de réponse attendu ou le nombre de transactions par seconde. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
627
  """)
628
 
 
636
  Domaine d'Activité du Client : {domaine_activite}
637
  Liste des Fonctionnalités: {liste_des_fonctionnalités}
638
  Exigences Techniques : {exigences_techniques}
639
+
640
  Définissez comment chaque fonctionnalité sera vérifiée pour s'assurer qu'elle répond aux exigences définies. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
641
  """)
642
 
 
648
  Description du projet : {description_projet}
649
  Domaine d'Activité du Client : {domaine_activite}
650
  Exigences Techniques : {exigences_techniques}
651
+
652
  Veuillez générer une description détaillée incluant l'architecture globale du projet ainsi qu'une description détaillée des composants matériels et logiciels requis pour le projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
653
  """)
654
 
 
660
  Description du projet : {description_projet}
661
  Domaine d'Activité du Client : {domaine_activite}
662
  Exigences Techniques : {exigences_techniques}
663
+
664
  Veuillez générer une description détaillée incluant les exigences d'intégration et d'interopérabilité pour le projet, ainsi qu'une explication de la manière dont le système va s'intégrer avec d'autres systèmes. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
665
  """)
666
 
 
672
  Description du projet : {description_projet}
673
  Domaine d'Activité du Client : {domaine_activite}
674
  Exigences Techniques : {exigences_techniques}
675
+
676
  Veuillez générer une description détaillée incluant les exigences de sécurité pour le projet, ainsi qu'une explication des mesures de sécurité à mettre en place pour protéger les données et les accès au système. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
677
  """)
678
 
 
684
  Description du projet : {description_projet}
685
  Domaine d'Activité du Client : {domaine_activite}
686
  Exigences Techniques : {exigences_techniques}
687
+
688
  Veuillez générer une description détaillée incluant les normes et standards à respecter dans ce projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {language}.
689
  """)
690
 
 
721
 
722
 
723
  projet["Liste_des_fonctionnalitées"][fonctionnalité] = {
724
+ "Tâches": tâches_associées.replace('\n','').replace('```','').replace('json','')
725
  }
726
 
727
+ return projet