Skip to content

Commit 24402bd

Browse files
authored
Add path_to_llm_dir params to build_retriever_rag() fonction #224 (#225)
* Add path_to_llm_dir params to build_retriever_rag() fonction #224 Signed-off-by: Armand <arm.gilles@gmail.com> * Improve test rag with abonnement Signed-off-by: Armand <arm.gilles@gmail.com> * Improve prompt for distance calculation Signed-off-by: Armand <arm.gilles@gmail.com> --------- Signed-off-by: Armand <arm.gilles@gmail.com>
1 parent ed0cc70 commit 24402bd

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

config_llm/prompt_vcub_agent.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ Le dataframe contient des informations sur les stations à LA DATE LA PLUS RÉCE
1616
Assure-toi d'utiliser les bonnes pratiques de Pandas pour manipuler ces données !
1717
La colonne "date" représente la date actuelle pour les différents calculs d'horizon de prédiction.
1818
IMPORTANT :
19-
Tu es obligé de passer par un tool afin de faire une prédiction et un calcul de distance et d'attendre
20-
le retour de l'outil avant de continuer.
19+
Tu es obligé de passer par un outil afin de faire une prédiction ou un calcul de distance entre 2 stations
20+
et d'attendre le retour de l'outil avant de continuer. Tu ne dois pas le calculer par toi même !
2121
2222
{tools}
2323

src/vcub_keeper/llm/crewai/rag.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def create_vector_store_with_embed(path_to_db: str, force_to_recreate_vector_bas
116116
persist_directory = f"{path_to_db}chroma_langchain_db"
117117

118118
if force_to_recreate_vector_base:
119-
delete_vector_store(path_to_db=ROOT_DATA_LLM)
119+
delete_vector_store(path_to_db=path_to_db)
120120

121121
# Vérifier si le répertoire contient une base existante
122122
if os.path.exists(persist_directory) and os.listdir(persist_directory):
@@ -165,7 +165,9 @@ def delete_vector_store(path_to_db: str) -> None:
165165

166166

167167
def build_retriever_rag(
168-
usual_number_of_docs: int = 49, force_rebuild_vector_store: bool = False
168+
usual_number_of_docs: int = 49,
169+
force_rebuild_vector_store: bool = False,
170+
path_to_llm_dir: str = ROOT_DATA_LLM,
169171
) -> VectorStoreRetriever:
170172
"""
171173
Permets la création d'un retriever pour la recherche de documents à partir d'une base vectorielle
@@ -182,6 +184,10 @@ def build_retriever_rag(
182184
force_rebuild_vector_store : bool
183185
Si True, la base vectorielle est recréée même si elle existe déjà.
184186
187+
path_to_llm : str
188+
Chemin vers le répertoire de la base vectorielle Chroma et
189+
les documents à charger.
190+
185191
Returns
186192
-------
187193
retriever : VectorStoreRetriever
@@ -193,20 +199,20 @@ def build_retriever_rag(
193199
"""
194200

195201
if force_rebuild_vector_store:
196-
delete_vector_store(path_to_db=ROOT_DATA_LLM)
202+
delete_vector_store(path_to_db=path_to_llm_dir)
197203

198-
vector_store = create_vector_store_with_embed(path_to_db=ROOT_DATA_LLM)
204+
vector_store = create_vector_store_with_embed(path_to_db=path_to_llm_dir)
199205

200206
if vector_store._collection.count() != usual_number_of_docs:
201207
print("La collection de documents est vide ou ne correspond pas au nombre attendu de documents.")
202208
print("Chargement des documents...")
203209

204210
# Si il y a déjà des documents dans la base vectorielle, on les supprime
205211
if vector_store._collection.count() != 0:
206-
delete_vector_store(path_to_db=ROOT_DATA_LLM)
212+
delete_vector_store(path_to_db=path_to_llm_dir)
207213

208214
# Informations from markdown file
209-
sections = get_documents_about_project(path_directory=ROOT_DATA_LLM)
215+
sections = get_documents_about_project(path_directory=path_to_llm_dir)
210216
vector_store.add_documents(documents=sections)
211217

212218
# Informations from web_site

tests/llm/test_rag.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ def test_find_vcub_price(agent):
161161
vcub (classique)
162162
"""
163163

164-
user_message = "Quel est le prix d'un vcub classique ?"
164+
user_message = "Quel est le prix d'un vcub classique et son abonnement ?"
165165
response = agent.invoke({"input": user_message})
166166
print(f"response: {response['output']}")
167167
# Le prix d'un Vcub classique est de 1€ pour le décrochage, puis 10 centimes
@@ -182,7 +182,7 @@ def test_find_vcub_elec_price(agent):
182182
vcub (électrique)
183183
"""
184184

185-
user_message = "Quel est le prix d'un vcub électrique ?"
185+
user_message = "Quel est le prix d'un vcub électrique et son abonnement ?"
186186
response = agent.invoke({"input": user_message})
187187
print(f"response: {response['output']}")
188188
# Le prix d'un Vcub électrique est de 2€ pour le décrochage, puis 10

0 commit comments

Comments
 (0)