MariameOuamer's picture
Update app.py
96b94ae verified
raw
history blame contribute delete
No virus
37.8 kB
from fastapi import FastAPI
from pydantic import BaseModel
import json
import google.generativeai as genai
import os
from typing import Dict, Any
import time
api_key = os.environ['api_key']
timing = 10
app = FastAPI()
class SpecificationInput(BaseModel):
domaine_activite: str
objectif_projet: str
description_projet: str
exigences_techniques: str
fonctionnalités: str
iso_code: str
@app.post("/specification-generator/",response_model=Dict[str, Any])
def generate_specification(input_data: SpecificationInput):
objectif_projet = input_data.objectif_projet
domaine_activite = input_data.domaine_activite
exigences_techniques = input_data.exigences_techniques
description_projet = input_data.description_projet
fonctionnalités = input_data.fonctionnalités
liste_des_fonctionnalités = fonctionnalités.split(',')
iso_code = input_data.iso_code
model = 'gemini-1.5-flash'
if exigences_techniques=="":
projet = {
"Description_de_projet": {
"Objectif_du_projet": "",
"Besoins_du_client": "",
"Contraintes_et_exigences": "",
"Bénéfices_attendus": ""
},
"Description_des_fonctionnalités_attendues": {
"Introduction": "",
"Fonctionnalités_principales": {},
"Fonctionnalité_secondaire" : {},
"Interactions_entre_les_fonctionnalités":{
"Flux_de_travail":"",
"Conditions_ou_règles_de_gestion":""
},
"Exigences_de_performance":"",
"Critères_d’acceptation":""
},
"Environnement_technique":{
"Architecture_globale":"",
"Intégration_et_interopérabilité":"",
"Sécurité":"",
"Normes_et_standards":""
},
"Liste_des_fonctionnalitées":
{}
}
genai.configure(api_key=api_key)
model = genai.GenerativeModel(model)
language_codes_json = '''
{
"allemand": "de",
"français": "fr",
"portugais": "pt",
"italien": "it",
"anglais": "en",
"espagnol": "es"
}
'''
language_codes = json.loads(language_codes_json)
def get_language(iso_code):
for language, code in language_codes.items():
if code == iso_code:
return language
return "ISO code not found"
language = get_language(iso_code)
print(1)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Décrivez l'objectif principal du projet et expliquez comment il s'intègre dans le domaine d'activité du client. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,language))
projet["Description_de_projet"]["Objectif_du_projet"] = response.text
time.sleep(timing)
print(2)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Description du projet : {}
Expliquez en détail les besoins spécifiques du client et comment le projet y répondra. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite,description_projet, language)
)
projet["Description_de_projet"]["Besoins_du_client"] = response.text
time.sleep(timing)
print(4)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Description du projet : {}
Énumérez les contraintes à respecter et les exigences du projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite,description_projet,language ))
projet["Description_de_projet"]["Contraintes_et_exigences"] = response.text
time.sleep(timing)
print(5)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Description du projet : {}
Décrivez les bénéfices escomptés du projet, tant pour le client que pour son domaine d'activité. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite,description_projet,language ))
projet["Description_de_projet"]["Bénéfices_attendus"] = response.text
time.sleep(timing)
print(6)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités: {}
Présentez un résumé des fonctionnalités principales du système. Expliquez l'objectif global en termes de capacités du système. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,liste_des_fonctionnalités,language ))
projet["Description_des_fonctionnalités_attendues"]["Introduction"] = response.text
for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
time.sleep(timing)
print(7)
description = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Expliquez ce que la fonctionnalité permettra de réaliser. Détaillez les actions que l'utilisateur pourra effectuer. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
utilisateurs_concernés = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Identifiez qui utilisera cette fonctionnalité (par exemple, administrateurs, clients finaux). Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
bénéfices_attendus = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Décrivez les avantages spécifiques que cette fonctionnalité apportera au système ou aux utilisateurs. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
tâches_associées = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Listez les tâches dans l'ordre logique d'utilisation, en définissant chaque tâche avec précision. Pour chaque tâche, décrivez l'objectif, les étapes nécessaires pour la réaliser, et les résultats attendus après son exécution. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité ,language))
conditions_ou_règles_spécifiques = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Indiquez les conditions ou les règles qui doivent être respectées pour réaliser les tâches de cette fonctionnalité. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
flux_de_travail_global = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Décrivez comment les tâches s'enchaînent et interagissent au sein de la fonctionnalité. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Fonctionnalités_principales"][f"Fonctionnalité_{str(idx)}"] = {
"Nom" : fonctionnalité,
"Description": description.text,
"Utilisateurs_concernés": utilisateurs_concernés.text,
"Bénéfices_attendus": bénéfices_attendus.text,
"Tâches_associées": tâches_associées.text,
"Conditions_ou_règles_spécifiques": conditions_ou_règles_spécifiques.text,
"Flux_de_travail_global": flux_de_travail_global.text
}
for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
time.sleep(timing)
print(8)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Veuillez lister et décriver les fonctionnalités qui supportent ou complètent la fonctionnalité principale. En parlant sur les Bénéfices attendus, Tâches associées. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Fonctionnalité_secondaire"][f"Fonctionnalité_{str(idx)}"] = {
"Nom" : fonctionnalité,
"Détail": response.text
}
time.sleep(timing)
print(9)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Interactions_entre_les_fonctionnalités"]["Flux_de_travail"] = response.text
time.sleep(timing)
print(10)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Interactions_entre_les_fonctionnalités"]["Conditions_ou_règles_de_gestion"] = response.text
time.sleep(timing)
print(11)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Exigences_de_performance"] = response.text
time.sleep(timing)
print(12)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
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 {}.
""".format(objectif_projet,description_projet, domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Critères_d’acceptation"] = response.text
time.sleep(timing)
print(13)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,language ))
projet["Environnement_technique"]["Architecture_globale"] = response.text
time.sleep(timing)
print(14)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,language ))
projet["Environnement_technique"]["Intégration_et_interopérabilité"] = response.text
time.sleep(timing)
print(15)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,language ))
projet["Environnement_technique"]["Sécurité"] = response.text
time.sleep(timing)
print(16)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,language ))
projet["Environnement_technique"]["Normes_et_standards"] = response.text
for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
time.sleep(timing)
print(17)
tâches_associées = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Listez les tâches pour réaliser cette fonctionnalité sous forme d'un tableau JSON. Le format doit être exactement comme suit :
[
"Tâche 1",
"Tâche 2",
"Tâche 3",
"Tâche 4",
"Tâche 5",
"Tâche 6"
]
Remplacez simplement les tâches par celles correspondant à la fonctionnalité spécifiée en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Liste_des_fonctionnalitées"][fonctionnalité] = {
"Tâches": tâches_associées.text.replace('\n','').replace('```','').replace('json','')
}
else:
projet = {
"Description_de_projet": {
"Objectif_du_projet": "",
"Exigences_techniques": "",
"Besoins_du_client": "",
"Contraintes_et_exigences": "",
"Bénéfices_attendus": ""
},
"Description_des_fonctionnalités_attendues": {
"Introduction": "",
"Fonctionnalités_principales": {},
"Fonctionnalité_secondaire" : {},
"Interactions_entre_les_fonctionnalités":{
"Flux_de_travail":"",
"Conditions_ou_règles_de_gestion":""
},
"Exigences_de_performance":"",
"Critères_d’acceptation":""
},
"Environnement_technique":{
"Architecture_globale":"",
"Intégration_et_interopérabilité":"",
"Sécurité":"",
"Normes_et_standards":""
},
"Liste_des_fonctionnalitées":
{}
}
genai.configure(api_key=api_key)
model = genai.GenerativeModel(model)
language_codes_json = '''
{
"allemand": "de",
"français": "fr",
"portugais": "pt",
"italien": "it",
"anglais": "en",
"espagnol": "es"
}
'''
language_codes = json.loads(language_codes_json)
def get_language(iso_code):
for language, code in language_codes.items():
if code == iso_code:
return language
return "ISO code not found"
language = get_language(iso_code)
print(1)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Décrivez l'objectif principal du projet et expliquez comment il s'intègre dans le domaine d'activité du client. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,language))
projet["Description_de_projet"]["Objectif_du_projet"] = response.text
time.sleep(timing)
print(2)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
Description du projet : {}
Mentionnez les technologies spécifiques qui seront utilisées pour atteindre les objectifs du projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite, exigences_techniques,description_projet,language )
)
projet["Description_de_projet"]["Exigences_techniques"] = response.text
time.sleep(timing)
print(3)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Description du projet : {}
Expliquez en détail les besoins spécifiques du client et comment le projet y répondra. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite,description_projet, language)
)
projet["Description_de_projet"]["Besoins_du_client"] = response.text
time.sleep(timing)
print(4)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
Description du projet : {}
Énumérez les contraintes à respecter et les exigences du projet. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite,exigences_techniques,description_projet,language ))
projet["Description_de_projet"]["Contraintes_et_exigences"] = response.text
time.sleep(timing)
print(5)
response = model.generate_content("""
Objectif du Projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
Description du projet : {}
Décrivez les bénéfices escomptés du projet, tant pour le client que pour son domaine d'activité. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,domaine_activite,exigences_techniques,description_projet,language ))
projet["Description_de_projet"]["Bénéfices_attendus"] = response.text
time.sleep(timing)
print(6)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités: {}
Présentez un résumé des fonctionnalités principales du système. Expliquez l'objectif global en termes de capacités du système. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,liste_des_fonctionnalités,language ))
projet["Description_des_fonctionnalités_attendues"]["Introduction"] = response.text
for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
time.sleep(timing)
print(7)
description = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Expliquez ce que la fonctionnalité permettra de réaliser. Détaillez les actions que l'utilisateur pourra effectuer. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
utilisateurs_concernés = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Identifiez qui utilisera cette fonctionnalité (par exemple, administrateurs, clients finaux). Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
bénéfices_attendus = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Décrivez les avantages spécifiques que cette fonctionnalité apportera au système ou aux utilisateurs. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
tâches_associées = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Listez les tâches dans l'ordre logique d'utilisation, en définissant chaque tâche avec précision. Pour chaque tâche, décrivez l'objectif, les étapes nécessaires pour la réaliser, et les résultats attendus après son exécution. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité ,language))
conditions_ou_règles_spécifiques = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Indiquez les conditions ou les règles qui doivent être respectées pour réaliser les tâches de cette fonctionnalité. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
flux_de_travail_global = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Décrivez comment les tâches s'enchaînent et interagissent au sein de la fonctionnalité. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Fonctionnalités_principales"][f"Fonctionnalité_{str(idx)}"] = {
"Nom" : fonctionnalité,
"Description": description.text,
"Utilisateurs_concernés": utilisateurs_concernés.text,
"Bénéfices_attendus": bénéfices_attendus.text,
"Tâches_associées": tâches_associées.text,
"Conditions_ou_règles_spécifiques": conditions_ou_règles_spécifiques.text,
"Flux_de_travail_global": flux_de_travail_global.text
}
for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
time.sleep(timing)
print(8)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Veuillez lister et décriver les fonctionnalités qui supportent ou complètent la fonctionnalité principale. En parlant sur les Bénéfices attendus, Tâches associées. Fournissez une réponse complète et homogène sous la forme d'un paragraphe, en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Fonctionnalité_secondaire"][f"Fonctionnalité_{str(idx)}"] = {
"Nom" : fonctionnalité,
"Détail": response.text
}
time.sleep(timing)
print(9)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Interactions_entre_les_fonctionnalités"]["Flux_de_travail"] = response.text
time.sleep(timing)
print(10)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Description_des_fonctionnalités_attendues"]["Interactions_entre_les_fonctionnalités"]["Conditions_ou_règles_de_gestion"] = response.text
time.sleep(timing)
print(11)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
Exigences Techniques : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,exigences_techniques,language ))
projet["Description_des_fonctionnalités_attendues"]["Exigences_de_performance"] = response.text
time.sleep(timing)
print(12)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Liste des Fonctionnalités : {}
Exigences Techniques : {}
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 {}.
""".format(objectif_projet,description_projet, domaine_activite,fonctionnalité,exigences_techniques,language ))
projet["Description_des_fonctionnalités_attendues"]["Critères_d’acceptation"] = response.text
time.sleep(timing)
print(13)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,exigences_techniques,language ))
projet["Environnement_technique"]["Architecture_globale"] = response.text
time.sleep(timing)
print(14)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,exigences_techniques,language ))
projet["Environnement_technique"]["Intégration_et_interopérabilité"] = response.text
time.sleep(timing)
print(15)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,exigences_techniques,language ))
projet["Environnement_technique"]["Sécurité"] = response.text
time.sleep(timing)
print(16)
response = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Exigences Techniques : {}
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 {}.
""".format(objectif_projet,description_projet,domaine_activite,exigences_techniques,language ))
projet["Environnement_technique"]["Normes_et_standards"] = response.text
for idx, fonctionnalité in enumerate(liste_des_fonctionnalités, start=1):
time.sleep(timing)
print(17)
tâches_associées = model.generate_content("""
Objectif du Projet : {}
Description du projet : {}
Domaine d'Activité du Client : {}
Fonctionnalité: {}
Listez les tâches pour réaliser cette fonctionnalité sous forme d'un tableau JSON. Le format doit être exactement comme suit :
[
"Tâche 1",
"Tâche 2",
"Tâche 3",
"Tâche 4",
"Tâche 5",
"Tâche 6"
]
Remplacez simplement les tâches par celles correspondant à la fonctionnalité spécifiée en {}.
""".format(objectif_projet,description_projet,domaine_activite,fonctionnalité,language ))
projet["Liste_des_fonctionnalitées"][fonctionnalité] = {
"Tâches": tâches_associées.text.replace('\n','').replace('```','').replace('json','')
}
return projet