|
import os |
|
import pandas as pd |
|
import chainlit as cl |
|
from pinecone import Pinecone |
|
from chainlit.input_widget import Select, TextInput |
|
from chainlit import user_session |
|
|
|
async def connexion_vector_database_secteurs(): |
|
os.environ['PINECONE_API_KEY'] = os.environ['PINECONE_API_KEY'] |
|
os.environ['PINECONE_INDEX_NAME'] = os.environ['PINECONE_INDEX_NAME'] |
|
pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"]) |
|
index = pc.Index(index_name=os.environ['PINECONE_INDEX_NAME']) |
|
allsecteurs = index.query( |
|
top_k=515, |
|
vector= [0] * 768, |
|
namespace='', |
|
include_metadata=True, |
|
include_values=True, |
|
filter={'categorie': {'$eq': 'inpiSecteur'}} |
|
) |
|
secteurs = [] |
|
for i in range(0,len(allsecteurs['matches'])): |
|
secteurs.append(str(allsecteurs['matches'][i]['metadata']['activiteprincipale']) + " " + str(allsecteurs['matches'][i]['metadata']['activitesecondaire'])) |
|
return secteurs |
|
|
|
async def homeRome(): |
|
app_user = cl.user_session.get("user") |
|
welcomeUser = app_user.identifier |
|
welcomeUserArray = welcomeUser.split('@') |
|
welcomeUserStr = welcomeUserArray[0].replace('.',' ') |
|
await cl.Message(f"> Bonjour {welcomeUserStr}").send() |
|
fileCompetences = "./public/referentiel_competence.csv" |
|
df_allcompetences = pd.read_csv(fileCompetences) |
|
df_competences = df_allcompetences[['libelle_competence']].copy() |
|
df_competences = df_competences.sort_values(by=['libelle_competence']) |
|
competences_list = df_competences['libelle_competence'].tolist() |
|
competences_list.sort() |
|
competences_list.insert(0, "") |
|
cl.user_session.set("arraySettingsComp", competences_list) |
|
settings = await cl.ChatSettings( |
|
[ |
|
Select( |
|
id="competence", |
|
label="Compétences", |
|
values=competences_list, |
|
initial_index=0, |
|
), |
|
TextInput(id="competenceInput", label="ou saisir une compétence voire des objectifs pédagogiques", placeholder="ou saisir une compétence voire des objectifs pédagogiques", tooltip="saisir une compétence voire des objectifs pédagogiques"), |
|
] |
|
).send() |
|
value = settings["competence"] |
|
|
|
if len(value) < 2: |
|
warning = [ |
|
cl.Image(name="Warning", size="small", display="inline", path="./public/warning.png") |
|
] |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="1️⃣ Cliquez sur le bouton dont l'image suit, dans le prompt, pour commencer à élaborer une note sectorielle de la chaîne documentaire APCC!").send() |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="", elements=warning).send() |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="2️⃣ Puis sélectionnez ou saisissez une compétence ou des objectifs pédagogiques. Et vous êtes prêt!\n\n🔗 Plateforme de feedback et de fil d'activité : https://cloud.getliteral.ai/").send() |
|
|
|
contextChat = cl.user_session.get("contextChatBot") |
|
|
|
if not contextChat: |
|
contextChat = df_competences.to_string(index = False) |
|
|
|
cl.user_session.set("contextDFCOMPChatBot", df_competences.to_string(index = False)) |
|
return contextChat |
|
|
|
async def homeEsco(): |
|
app_user = cl.user_session.get("user") |
|
|
|
welcomeUser = app_user.identifier |
|
|
|
welcomeUserArray = welcomeUser.split('@') |
|
welcomeUserStr = welcomeUserArray[0].replace('.',' ') |
|
await cl.Message(f"> Bonjour {welcomeUserStr}").send() |
|
fileCompetences = "./public/escoCompetencesAppellation.csv" |
|
df_allcompetences = pd.read_csv(fileCompetences) |
|
df_competences = df_allcompetences[['compétence']].copy() |
|
df_competences = df_competences.sort_values(by=['compétence']) |
|
competences_list = df_competences['compétence'].tolist() |
|
competences_list.sort() |
|
competences_list.insert(0, "") |
|
cl.user_session.set("arraySettingsComp", competences_list) |
|
settings = await cl.ChatSettings( |
|
[ |
|
Select( |
|
id="competence", |
|
label="Compétences", |
|
values=competences_list, |
|
initial_index=0, |
|
), |
|
TextInput(id="competenceInput", label="ou saisir une compétence voire un métier en lien avec le développement durable", placeholder="ou saisir une compétence voire un métier en lien avec le développement durable", tooltip="saisir une compétence voire un métier en lien avec le développement durable"), |
|
] |
|
).send() |
|
value = settings["competence"] |
|
|
|
if len(value) < 2: |
|
warning = [ |
|
cl.Image(name="Warning", size="small", display="inline", path="./public/warning.png") |
|
] |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="1️⃣ Cliquez sur le bouton dont l'image suit, dans le prompt, pour commencer à élaborer une analyse des compétences liées au développement durable!").send() |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="", elements=warning).send() |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="2️⃣ Puis sélectionnez ou saisissez une compétence ou un métier en lien avec le développement durable. Et vous êtes prêt!\n\n🔗 Plateforme de feedback et de fil d'activité : https://cloud.getliteral.ai/").send() |
|
|
|
contextChat = cl.user_session.get("contextChatBot") |
|
|
|
if not contextChat: |
|
contextChat = df_competences.to_string(index = False) |
|
|
|
cl.user_session.set("contextDFCOMPChatBot", df_competences.to_string(index = False)) |
|
return contextChat |
|
|
|
async def homeRne(): |
|
app_user = cl.user_session.get("user") |
|
welcomeUser = app_user.identifier |
|
welcomeUserArray = welcomeUser.split('@') |
|
welcomeUserStr = welcomeUserArray[0].replace('.',' ') |
|
await cl.Message(f"> Bonjour {welcomeUserStr}").send() |
|
secteurs_list = await connexion_vector_database_secteurs() |
|
secteurs_list.sort() |
|
secteurs_list.insert(0, "") |
|
df_secteurs = pd.DataFrame(secteurs_list) |
|
cl.user_session.set("arraySettingsComp", secteurs_list) |
|
settings = await cl.ChatSettings( |
|
[ |
|
Select( |
|
id="competence", |
|
label="Secteurs", |
|
values=secteurs_list, |
|
initial_index=0, |
|
), |
|
TextInput(id="competenceInput", label="ou saisir un secteur d'activités", placeholder="ou saisir un secteur d'activités", tooltip="saisir un secteur d'activités"), |
|
] |
|
).send() |
|
value = settings["competence"] |
|
|
|
if len(value) < 2: |
|
warning = [ |
|
cl.Image(name="Warning", size="small", display="inline", path="./public/warning.png") |
|
] |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="1️⃣ Cliquez sur le bouton dont l'image suit, dans le prompt, pour commencer à élaborer une liste d'entreprises du secteur d'activités de votre choix!").send() |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="", elements=warning).send() |
|
await cl.Message(author="Datapcc : 🌐🌐🌐",content="2️⃣ Puis sélectionnez ou saisissez un secteur d'activités. Et vous êtes prêt!\n\n🔗 Plateforme de feedback et de fil d'activité : https://cloud.getliteral.ai/").send() |
|
|
|
contextChat = cl.user_session.get("contextChatBot") |
|
|
|
if not contextChat: |
|
contextChat = df_secteurs.to_string(index = False) |
|
|
|
cl.user_session.set("contextDFCOMPChatBot", df_secteurs.to_string(index = False)) |
|
return contextChat |