datacipen commited on
Commit
969044c
1 Parent(s): bf8dc9c

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +57 -6
main.py CHANGED
@@ -478,8 +478,7 @@ async def construction_NCS(competenceList, chatProfile):
478
  emploisST = context.to_string(index = False)
479
  if chatProfile == 'ROMESKILLS':
480
  romeListArray = cl.user_session.get("codeRomeArray")
481
- stringSecteur = await creation_liste_entreprises(arrayOfSecteur(romeListArray))
482
- print(stringSecteur)
483
  ficheClesMetier = await document_chiffres_cles_emplois("https://dataemploi.francetravail.fr/metier/chiffres-cles/NAT/FR/", romeListArray)
484
  contentChatBot = str(emploisST).replace('[','').replace(']','').replace('{','').replace('}','') + ficheClesMetier
485
  finals_df = context[['intitule','typeContratLibelle','experienceLibelle','competences','description','qualitesProfessionnelles','salaire','lieuTravail','formations']].copy()
@@ -495,6 +494,13 @@ async def construction_NCS(competenceList, chatProfile):
495
  )
496
  await cl.Message(author="Datapcc : 🌐🌐🌐",content="👨‍💼 Source France Travail : " + listEmplois_name, elements=text_elements).send()
497
  await cl.sleep(1)
 
 
 
 
 
 
 
498
  listClesMetier_name = f"Chiffres clés des emplois"
499
  text_ClesMetier = []
500
  text_ClesMetier.append(
@@ -746,11 +752,45 @@ async def API_France_Travail(romeListArray):
746
  @cl.step(type="tool")
747
  async def creation_liste_entreprises(arrayOfsecteur):
748
  docsearch = await connexion_vector_database()
749
- for i in range(0, len(arrayOfsecteur)):
750
- retrieve_comp = docsearch.similarity_search(arrayOfsecteur[i][0], k=1, filter={"categorie": {"$eq": "inpiSecteur"}})
751
  codeSecteur = int(retrieve_comp[0].metadata['codefinal'])
752
- codeSecteurSTR = "0" + str(codeSecteur)
753
- return int(codeSecteurSTR)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
 
755
  @cl.step(type="tool")
756
  async def creation_liste_code_Rome(competence, categorie):
@@ -863,6 +903,17 @@ async def creation_liste_skills_Esco(competence, categorie):
863
  await cl.Message(author="Datapcc : 🌐🌐🌐",content="Votre saisie est erronée. Nous continuons l'action avec les métiers sélectionnés automatiquement pour vous : " + codeRomeString).send()
864
  cl.user_session.set("codeRomeArray", arrayCodeRome)
865
 
 
 
 
 
 
 
 
 
 
 
 
866
  @cl.step(type="tool")
867
  async def connexion_France_Travail():
868
  client = Api(client_id=os.environ['POLE_EMPLOI_CLIENT_ID'],
 
478
  emploisST = context.to_string(index = False)
479
  if chatProfile == 'ROMESKILLS':
480
  romeListArray = cl.user_session.get("codeRomeArray")
481
+ stringLsitOfEntreprise = await creation_liste_entreprises(arrayOfSecteur(romeListArray))
 
482
  ficheClesMetier = await document_chiffres_cles_emplois("https://dataemploi.francetravail.fr/metier/chiffres-cles/NAT/FR/", romeListArray)
483
  contentChatBot = str(emploisST).replace('[','').replace(']','').replace('{','').replace('}','') + ficheClesMetier
484
  finals_df = context[['intitule','typeContratLibelle','experienceLibelle','competences','description','qualitesProfessionnelles','salaire','lieuTravail','formations']].copy()
 
494
  )
495
  await cl.Message(author="Datapcc : 🌐🌐🌐",content="👨‍💼 Source France Travail : " + listEmplois_name, elements=text_elements).send()
496
  await cl.sleep(1)
497
+ listEntreprise_name = f"Liste des entreprises"
498
+ entreprise_elements = []
499
+ entreprise_elements.append(
500
+ cl.Text(content="Question : " + competenceList + "\n\nRéponse :\n" + stringLsitOfEntreprise, name=listEntreprise_name)
501
+ )
502
+ await cl.Message(author="Datapcc : 🌐🌐🌐",content="🏭 Source Registre National des Entreprises : " + listEntreprise_name, elements=entreprise_elements).send()
503
+ await cl.sleep(1)
504
  listClesMetier_name = f"Chiffres clés des emplois"
505
  text_ClesMetier = []
506
  text_ClesMetier.append(
 
752
  @cl.step(type="tool")
753
  async def creation_liste_entreprises(arrayOfsecteur):
754
  docsearch = await connexion_vector_database()
755
+ for j in range(0, len(arrayOfsecteur)):
756
+ retrieve_comp = docsearch.similarity_search(arrayOfsecteur[j][0], k=1, filter={"categorie": {"$eq": "inpiSecteur"}})
757
  codeSecteur = int(retrieve_comp[0].metadata['codefinal'])
758
+ if len(codeSecteur) == 7:
759
+ codeSecteurSTR = "0" + str(codeSecteur)
760
+ else:
761
+ codeSecteurSTR = str(codeSecteur)
762
+ token = await connexion_registre_national_entreprises()
763
+ url = f"https://registre-national-entreprises.inpi.fr/api/companies?page=1&pageSize=500&codeCategory={codeSecteurSTR}"
764
+ print(url)
765
+ headers = {"Authorization": f"Bearer {token}"}
766
+ response = requests.get(url, headers=headers)
767
+ if response.status_code == 200:
768
+ print('OK')
769
+ documents = response.json()
770
+ df = pd.DataFrame(documents)
771
+ ficheEntreprise = ''
772
+ for i in range (0, len(df)):
773
+ if str(df['formality'][i]['content']).find('cessation') == -1 and str(df['formality'][i]['content']).find('personneMorale') != -1:
774
+ if str(df['formality'][i]['content']['personneMorale']).find('adresseEntreprise') != -1:
775
+ ficheEntreprise += "\n🏭 Dénomination : " + str(df['formality'][i]['content']['personneMorale']['identite']['entreprise']['denomination']) + "; Code SIREN : " + str(df['formality'][i]['content']['personneMorale']['identite']['entreprise']['siren']) + "\n\tAdresse : "
776
+ if str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']).find("'numVoie'") != -1:
777
+ ficheEntreprise += "n° " + str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']['numVoie'])
778
+ if str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']).find("'typeVoie'") != -1:
779
+ ficheEntreprise += " " + str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']['typeVoie'])
780
+ if str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']).find("'voie'") != -1:
781
+ ficheEntreprise += " " + str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']['voie'])
782
+ if str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']).find("'complementLocalisation'") != -1:
783
+ ficheEntreprise += ", " + str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']['complementLocalisation'])+ ","
784
+ if str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']).find("'codePostal'") != -1:
785
+ ficheEntreprise += " " + str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']['codePostal'])
786
+ if str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']).find("'commune'") != -1:
787
+ ficheEntreprise += " " + str(df['formality'][i]['content']['personneMorale']['adresseEntreprise']['adresse']['commune'])
788
+ if str(df['formality'][i]['content']['personneMorale']).find("autresEtablissements") != -1:
789
+ ficheEntreprise += "\n\tActivités : " + str(df['formality'][101]['content']['personneMorale']['autresEtablissements'][0]['activites'][0]['descriptionDetaillee']) + "\n\tCode APE : " + str(df['formality'][101]['content']['personneMorale']['autresEtablissements'][0]['activites'][0]['codeApe'])
790
+ else:
791
+ ficheEntreprise += "Il n'y a pas d'entreprises pour le secteur sélectionné : " + arrayOfsecteur[i][0]
792
+ return ficheEntreprise
793
+
794
 
795
  @cl.step(type="tool")
796
  async def creation_liste_code_Rome(competence, categorie):
 
903
  await cl.Message(author="Datapcc : 🌐🌐🌐",content="Votre saisie est erronée. Nous continuons l'action avec les métiers sélectionnés automatiquement pour vous : " + codeRomeString).send()
904
  cl.user_session.set("codeRomeArray", arrayCodeRome)
905
 
906
+ @cl.step(type="tool")
907
+ async def connexion_registre_national_entreprises():
908
+ url = "https://registre-national-entreprises.inpi.fr/api/sso/login"
909
+ headers = {"Content-Type": "application/json"}
910
+ data = {"username": os.environ['RNE_CLIENT_ID'], "password": os.environ['RNE_CLIENT_SECRET']}
911
+ response = requests.post(url, json=data, headers=headers)
912
+ if response.status_code == 200:
913
+ return response.json()["token"]
914
+ else:
915
+ raise Exception(f"Échec de l'authentification. Code d'erreur : {response.status_code}")
916
+
917
  @cl.step(type="tool")
918
  async def connexion_France_Travail():
919
  client = Api(client_id=os.environ['POLE_EMPLOI_CLIENT_ID'],