skillsia / homeskills.py
datacipen's picture
Update homeskills.py
70217a9 verified
raw
history blame
7.58 kB
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, # embedding dimension
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