ionosphere commited on
Commit
e9e1fd3
·
1 Parent(s): 6730be3
Grand livre au 30 avril 2024.pdf DELETED
Binary file (348 kB)
 
HOW_TO.md CHANGED
@@ -16,6 +16,11 @@ Test the installation
16
 
17
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
18
 
 
 
 
 
 
19
  # REF
20
 
21
  https://github.com/couchbase-examples/rag-demo-llama-index/blob/main/chat_with_pdf.py
@@ -29,3 +34,5 @@ https://github.com/jacttp/simpleRAG/blob/main/rag.py
29
  https://github.com/naimkatiman/RAG-using-Llama-3.1-WebUi-on-Streamlit/blob/main/app.py
30
 
31
 
 
 
 
16
 
17
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
18
 
19
+ # TODO 14/11/2024
20
+
21
+ ## Utiliser le modele PDF pour la restitution des resultats
22
+
23
+
24
  # REF
25
 
26
  https://github.com/couchbase-examples/rag-demo-llama-index/blob/main/chat_with_pdf.py
 
34
  https://github.com/naimkatiman/RAG-using-Llama-3.1-WebUi-on-Streamlit/blob/main/app.py
35
 
36
 
37
+
38
+
app.py CHANGED
@@ -50,24 +50,20 @@ def main():
50
 
51
  saved_documents = st.Page("pages/persistent_documents.py", title="Documents de référence", icon="🗃️")
52
  documents = st.Page("pages/documents.py", title="Documents de l'exploitation", icon="📂")
53
- prompt_system = st.Page("pages/prompt_system.py", title="Prompt conseiller", icon="🖊️", default=True)
54
  # form = st.Page("pages/form.py", title="Paramètres", icon="📋")
55
- chatbot = st.Page("pages/chatbot.py", title="Chatbot", icon="🤖")
56
 
57
  pg = st.navigation(
58
  {
59
- "Dialogue": [
60
  chatbot
61
  ],
62
- "Documents": [
63
  saved_documents,
64
  documents,
65
- ],
66
- "Configurations": [
67
  prompt_system,
68
- # form,
69
  ],
70
-
71
  }
72
  )
73
 
 
50
 
51
  saved_documents = st.Page("pages/persistent_documents.py", title="Documents de référence", icon="🗃️")
52
  documents = st.Page("pages/documents.py", title="Documents de l'exploitation", icon="📂")
53
+ prompt_system = st.Page("pages/prompt_system.py", title="Prompt conseiller", icon="🖊️")
54
  # form = st.Page("pages/form.py", title="Paramètres", icon="📋")
55
+ chatbot = st.Page("pages/chatbot.py", title="Chatbot", icon="🤖", default=True)
56
 
57
  pg = st.navigation(
58
  {
59
+ "Céréalier": [
60
  chatbot
61
  ],
62
+ "Conseiller": [
63
  saved_documents,
64
  documents,
 
 
65
  prompt_system,
 
66
  ],
 
67
  }
68
  )
69
 
config.yaml CHANGED
@@ -1,9 +1,12 @@
 
1
  prompts:
2
- cultures:
3
  - "Quelle est le cout de production du blé tendre dans la région Picardie en €/ha ?"
4
  - "Quelle est la marge brute du blé tendre dans la région Picardie en €/ha ?"
5
  - "Quelle est la marge nette de la culture de betterave dans la région Picardie en €/ha ?"
 
6
  - "Fais moi un tableau comparatif entre le blé et le colza dans la région Picardie ?"
 
7
  - "Calcule moi le prix plancher pour la culture de betterave avec un rendement de 80 tonnes par hectare ?"
8
  - "Calcule moi le rendement de la culture de betterave si mon prix plancher est de 40 € par tonne ?"
9
 
@@ -38,17 +41,26 @@ La marge nette (MN) en grande culture se situe en moyenne entre 100 € / hectar
38
 
39
  Le prix planché (PP) ou seuil de rentabilité (SR) par culture correspond au prix moyen auquel doit être vendue la culture afin d’obtenir une marge nette dont la valeur est 0 € selon la formule PR = CR / R.
40
 
41
- A partir des documents du contexte, tu vas produire des tableaux et des indicateurs de coût selon les cultures mentionnées par l'utilisateur.
 
42
  Si l'utilisateur demande une comparaison entre cultures, tu utiliseras toujours un tableau avec les cultures en colonnes et les indicateurs comparables en lignes.
43
  Tu mentionneras les sources utilisées.
44
  Pour le coût de production (CR), il est impératif de détailler l'ensemble des calculs poste par poste pour les charges opérationnelles (engrais, produits phytosanitaires, semences) (CO) et pour les charges de structure (main d'oeuvre, foncier, matériel, batiment) (CS).
45
-
46
- La présentation sera effectuée dès que possible en format tableau. Si une information est demandée pour une superficie précise, les tableaux devront fournir, sur la première colonne, une information à l'hectare et sur la seconde, une information pour la superficie indiquée par l'utilisateur. Si aucune superficie n'est précisée par le client, l'information sera donnée par hectare.
 
 
 
 
 
 
 
47
  "
48
 
49
  prompt_template: "
50
  {prompt_system}
51
 
 
52
  Documents partagées : {commonContext}
53
 
54
  Document utilisateur : {documentContext}
 
1
+ # https://streamlit-emoji-shortcodes-streamlit-app-gwckff.streamlit.app/
2
  prompts:
3
+ "**couts et marges / culture** :money_with_wings:":
4
  - "Quelle est le cout de production du blé tendre dans la région Picardie en €/ha ?"
5
  - "Quelle est la marge brute du blé tendre dans la région Picardie en €/ha ?"
6
  - "Quelle est la marge nette de la culture de betterave dans la région Picardie en €/ha ?"
7
+ "**Comparatif** :thinking_face:":
8
  - "Fais moi un tableau comparatif entre le blé et le colza dans la région Picardie ?"
9
+ "**Prix plancher** :scales:":
10
  - "Calcule moi le prix plancher pour la culture de betterave avec un rendement de 80 tonnes par hectare ?"
11
  - "Calcule moi le rendement de la culture de betterave si mon prix plancher est de 40 € par tonne ?"
12
 
 
41
 
42
  Le prix planché (PP) ou seuil de rentabilité (SR) par culture correspond au prix moyen auquel doit être vendue la culture afin d’obtenir une marge nette dont la valeur est 0 € selon la formule PR = CR / R.
43
 
44
+ A partir des documents du contexte, tu vas :
45
+ Etape 1 : Produire des tableaux et des indicateurs de coût selon les cultures mentionnées par l'utilisateur.
46
  Si l'utilisateur demande une comparaison entre cultures, tu utiliseras toujours un tableau avec les cultures en colonnes et les indicateurs comparables en lignes.
47
  Tu mentionneras les sources utilisées.
48
  Pour le coût de production (CR), il est impératif de détailler l'ensemble des calculs poste par poste pour les charges opérationnelles (engrais, produits phytosanitaires, semences) (CO) et pour les charges de structure (main d'oeuvre, foncier, matériel, batiment) (CS).
49
+
50
+ Etape 2 : En complément, tu calculeras les indicateurs prévisionnels pour l'année 2024 en faisant les opérations suivantes :
51
+ - Les charges opérationnelles, les ventes par culture et la marge brute (MB), à partir du document 'syntheserecolte2023' et opérer une augmentation de 2,5 % par an sur chaque indicateur.
52
+ - Les charges de structures (CS) à partir des autres documents de l'année 2020 et opérer une augmentation de 2,5 % par an sur chaque indicateur.
53
+ Tu affichera ces résultats dans un tableau avec le titre 'Indicateurs 2024'
54
+
55
+ La présentation sera effectuée dès que possible en format tableau.
56
+ Si une information est demandée pour une superficie précise, les tableaux devront fournir, sur la première colonne, une information à l'hectare et sur la seconde, une information pour la superficie indiquée par l'utilisateur.
57
+ Si aucune superficie n'est précisée par le client, l'information sera donnée par hectare.
58
  "
59
 
60
  prompt_template: "
61
  {prompt_system}
62
 
63
+ Les documents partagées comporte l'ensemble de la base documentaire contenant les informations métiers.
64
  Documents partagées : {commonContext}
65
 
66
  Document utilisateur : {documentContext}
model/selector.py CHANGED
@@ -12,7 +12,7 @@ def ModelSelector():
12
  "gpt-4o": "openai.gpt-4o",
13
  },
14
  "Anthropic": {
15
- "claude-3-5-sonnet-20240620": "anthropic.claude-3-5-sonnet-20240620",
16
  #"claude-3-opus-20240229": "anthropic.claude-3-opus-20240229",
17
  #"claude-3-sonnet-20240229": "anthropic.claude-3-sonnet-20240229",
18
  },
 
12
  "gpt-4o": "openai.gpt-4o",
13
  },
14
  "Anthropic": {
15
+ "claude-3-5-sonnet-20241022": "anthropic.claude-3-5-sonnet-20241022",
16
  #"claude-3-opus-20240229": "anthropic.claude-3-opus-20240229",
17
  #"claude-3-sonnet-20240229": "anthropic.claude-3-sonnet-20240229",
18
  },
pages/chatbot.py CHANGED
@@ -50,7 +50,7 @@ def show_prompts():
50
 
51
 
52
  def page():
53
- st.subheader("Posez vos questions")
54
 
55
  if "assistant" not in st.session_state:
56
  st.text("Assistant non initialisé")
 
50
 
51
 
52
  def page():
53
+ st.subheader("Choisissez ou posez une question")
54
 
55
  if "assistant" not in st.session_state:
56
  st.text("Assistant non initialisé")
requirements.txt CHANGED
@@ -1,5 +1,6 @@
1
  streamlit==1.37.0
2
  faiss-gpu
 
3
  streamlit_chat
4
  python-dotenv
5
  pymupdf
 
1
  streamlit==1.37.0
2
  faiss-gpu
3
+ faiss-cpu
4
  streamlit_chat
5
  python-dotenv
6
  pymupdf