import streamlit as st import os from dotenv import load_dotenv from rag import Rag from vectore_store.PineconeConnector import PineconeConnector from vectore_store.VectoreStoreManager import VectoreStoreManager from subscription.index import get_usages, is_usage_limit_reached, daily_limit_enabled from util import getYamlConfig load_dotenv() GROUP_NAME = os.environ.get("APP_NAME") LOGO = "assets/logo.png" COMPANIES = [] def init_app(): config = getYamlConfig() if len(st.session_state) == 0: # Define Vectore store strategy pinecone_connector = PineconeConnector() vs_manager = VectoreStoreManager(pinecone_connector) st.session_state["retrived_documents"] = [] st.session_state["messages"] = [] st.session_state["remove_undefined_value"] = True st.session_state["assistant"] = Rag(vectore_store=vs_manager) st.session_state["data_dict"] = {} st.session_state["company_code"] = None st.session_state["prompt_system"] = config['prompt_system'] st.session_state["chat_history_afp"] = [] st.session_state["chat_history_cettons"] = [] st.session_state["chat_history_steel"] = [] # Initialize data_dict for each company for company in config['companies']: COMPANIES.append(company) company_code = company['code'] st.session_state["data_dict"][company_code] = [] if 'parts' in company['variables']: # Flatten structure by adding part name to each field st.session_state["data_dict"][company_code] = [ {**field, "part": part["name"]} for part in company["variables"]["parts"] for field in part["fields"] ] else: # Initialize session state with single list of variables st.session_state["data_dict"][company_code] = [ {**field} for field in company["variables"] ] def main(): init_app() st.set_page_config(page_title=GROUP_NAME) st.logo(LOGO) st.title(GROUP_NAME) if daily_limit_enabled(): usages = get_usages() reached = is_usage_limit_reached() st.sidebar.html(f"

{usages['count']} / {usages['daily_limit']}

") if reached: st.sidebar.html(f"

Vous avez atteint la limite d'utilisation

") else: st.sidebar.html(f"

Nombre de messages envoyés aujourd'hui

") saved_documents = st.Page("pages/persistent_documents.py", title="Communs", icon="🗃️") documents = st.Page("pages/documents.py", title="Vos documents", icon="📂") prompt_system = st.Page("pages/prompt_system.py", title="Prompt système", icon="🖊️") # chatbot = st.Page("pages/chatbot.py", title="Chatbot", icon="🤖", default=True) pg = st.navigation( { "Documents": [ saved_documents, documents, ], "Configurations": [ prompt_system, ], "Auto France Parts": [ st.Page("pages/afp.py", title="Paramètres", icon="📋"), st.Page("pages/chatbot_afp.py", title="Dialogue", icon="🤖", default=True), ], "La Pyramide des Cettons": [ st.Page("pages/cettons.py", title="Paramètres", icon="📋"), st.Page("pages/chatbot_cettons.py", title="Dialogue", icon="🤖"), ], "Steel France": [ st.Page("pages/steel.py", title="Paramètres", icon="📋"), st.Page("pages/chatbot_steel.py", title="Dialogue", icon="🤖"), ] } ) pg.run() if __name__ == "__main__": main()