File size: 2,187 Bytes
f676a1d
64f9ede
f676a1d
64f9ede
 
 
 
f676a1d
64f9ede
f676a1d
64f9ede
f676a1d
64f9ede
 
f676a1d
64f9ede
f676a1d
7676537
f676a1d
64f9ede
 
 
 
f676a1d
64f9ede
 
7676537
 
f676a1d
ce8e938
 
 
 
 
 
 
 
 
 
 
f676a1d
64f9ede
f676a1d
64f9ede
f676a1d
64f9ede
f676a1d
 
64f9ede
 
7676537
 
e9e1fd3
6730be3
e9e1fd3
64f9ede
 
6730be3
e9e1fd3
6730be3
 
e9e1fd3
64f9ede
 
 
 
 
f676a1d
 
64f9ede
f676a1d
 
 
ce8e938
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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 util import getYamlConfig

load_dotenv()

GROUP_NAME = os.environ.get("APP_NAME")
LOGO = "assets/logo.png"

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["messages"] = []
        st.session_state["assistant"] = Rag(vectore_store=vs_manager)
        st.session_state["data_dict"] = config['variables']
        st.session_state["prompt_system"] = config['prompt_system']

        if 'parts' in config['variables']:
            # Flatten structure by adding part name to each field
            st.session_state["data_dict"] = [
                {**field, "part": part["name"]}
                for part in config["variables"]["parts"]
                for field in part["fields"]
            ]
        else:
            # Initialize session state with single list of variables
            st.session_state["data_dict"] = [{**field} for field in config["variables"]]


def main():

    init_app()

    st.set_page_config(page_title=GROUP_NAME)

    st.logo(LOGO)
    st.title(GROUP_NAME)

    saved_documents = st.Page("pages/persistent_documents.py", title="Documents de référence", icon="🗃️")
    documents = st.Page("pages/documents.py", title="Documents de l'exploitation", icon="📂")
    prompt_system = st.Page("pages/prompt_system.py", title="Prompt conseiller", icon="🖊️")
    # form = st.Page("pages/form.py", title="Paramètres", icon="📋")
    chatbot = st.Page("pages/chatbot.py", title="Chatbot", icon="🤖", default=True)

    pg = st.navigation(
        {   
            "Céréalier": [
                chatbot
            ],
            "Conseiller": [
                saved_documents,
                documents,
                prompt_system,
            ],
        }
    )

    pg.run()


if __name__ == "__main__":
    main()