Trabis commited on
Commit
c323aff
·
verified ·
1 Parent(s): 0bf9c17

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +107 -64
app.py CHANGED
@@ -204,24 +204,24 @@ class OptimizedRAGLoader:
204
 
205
  return retriever_function
206
 
207
- # Initialize components
208
- mistral_api_key = os.getenv("mistral_api_key")
209
- llm = ChatMistralAI(
210
- model="mistral-large-latest",
211
- mistral_api_key=mistral_api_key,
212
- temperature=0.01,
213
- streaming=True,
214
- )
215
-
216
- # from langchain_openai import ChatOpenAI
217
- # llm = ChatOpenAI(
218
- # api_key="sk-bahOSQLfPZb62d-q3aZ0JGcN8raIl12mhUj38DkdpeT3BlbkFJ650KTnBNL0rsIvUcdBA1KJw8H7dCCy7-Kl02GO-l4A",
219
- # model_name="GPT-4 Turbo",
220
- # temperature=0.1,
221
  # )
222
 
 
 
 
 
 
 
 
223
  rag_loader = OptimizedRAGLoader()
224
- retriever = rag_loader.get_retriever(k=20) # Reduced k for faster retrieval
225
 
226
  # Cache for processed questions
227
  question_cache = {}
@@ -270,73 +270,116 @@ question_cache = {}
270
  # ])
271
 
272
 
273
- prompt_template = ChatPromptTemplate.from_messages([
274
- ("system", """Vous êtes un assistant juridique expert hautement qualifié. Votre rôle est d'analyser et de répondre aux questions juridiques avec précision et nuance.:
275
 
276
- PROCESSUS D'ANALYSE ET DE RÉPONSE :
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
 
278
- 1. ANALYSE DES SOURCES
279
- - Analysez d'abord le contexte fourni : {context}
280
- - Si le contexte est insuffisant, utilisez la recherche web pour compléter
281
- - Privilégiez toujours les sources officielles et la jurisprudence récente
282
- - Vérifiez la date et la validité des informations trouvées
 
 
 
283
 
284
- 2. STRUCTURE DE RÉPONSE
285
- Organisez votre réponse selon cette hiérarchie :
286
- a) Réponse synthétique initiale (1-2 phrases)
287
- b) Base légale et références précises
288
- c) Développement détaillé
289
- d) Nuances et cas particuliers
290
- e) Sources utilisées
291
- f) Répond exclusivement en arabe
292
 
293
- 3. PRÉCISION JURIDIQUE
294
- - Respectez la terminologie juridique exacte
295
- - Différenciez clairement :
296
- * Les obligations légales ("doit", "est tenu de")
297
- * Les recommandations ("peut", "il est conseillé")
298
- * Les interdictions ("ne peut pas", "est interdit")
299
- - Citez textuellement les articles pertinents
300
- - Précisez la hiérarchie des normes applicables
301
 
302
- 4. GESTION DE L'INCERTITUDE
303
- Si une information est :
304
- - Absente du contexte : Indiquez "Le contexte fourni ne permet pas de répondre à cet aspect"
305
- - Incomplète : Précisez "Selon les informations disponibles..."
306
- - Ambiguë : Exposez les différentes interprétations possibles
307
- - Dépassée : Mentionnez la nécessité de vérifier les mises à jour
308
 
309
- 5. UTILISATION DE LA RECHERCHE WEB
310
- Quand vous utilisez la recherche web :
311
- - Indiquez clairement : "Selon la recherche web complémentaire..."
312
- - chercher toujours au Maroc
313
- - Citez les sources consultées
314
- - Précisez la date de l'information
315
- - Mentionnez si l'information nécessite une vérification
316
 
317
- 6. LIMITATIONS ET AVERTISSEMENTS
318
- - Précisez si la réponse nécessite une consultation juridique professionnelle
319
- - Indiquez les limites de votre analyse
320
- - Signalez les évolutions législatives possibles
321
- - Mentionnez les variations juridictionnelles si pertinent
322
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
323
  FORMAT DE CITATION :
324
  - Articles de loi : [Loi n°X-XX du JJ/MM/AAAA, Article XX]
325
  - Jurisprudence : [Juridiction, Date, n° de pourvoi]
326
  - Sources en ligne : [Nom de la source, Date de consultation]
327
-
328
- RESTRICTIONS :
329
- - Ne pas faire d'interprétation extensive sans base légale
330
- - Ne pas donner de conseil juridique personnalisé
331
- - Ne pas spéculer sur des situations hypothétiques
332
- - Ne pas affirmer des points controversés sans mentionner les débats existants
333
-
334
  Question à traiter : {question}
335
  """),
336
  ("human", "{question}")
337
  ])
338
 
339
 
 
340
  import gradio as gr
341
  from typing import Iterator
342
 
 
204
 
205
  return retriever_function
206
 
207
+ # # Initialize components
208
+ # mistral_api_key = os.getenv("mistral_api_key")
209
+ # llm = ChatMistralAI(
210
+ # model="mistral-large-latest",
211
+ # mistral_api_key=mistral_api_key,
212
+ # temperature=0.01,
213
+ # streaming=True,
 
 
 
 
 
 
 
214
  # )
215
 
216
+ from langchain_openai import ChatOpenAI
217
+ llm = ChatOpenAI(
218
+ api_key="sk-bahOSQLfPZb62d-q3aZ0JGcN8raIl12mhUj38DkdpeT3BlbkFJ650KTnBNL0rsIvUcdBA1KJw8H7dCCy7-Kl02GO-l4A",
219
+ model_name="GPT-4 Turbo",
220
+ temperature=0.1,
221
+ )
222
+
223
  rag_loader = OptimizedRAGLoader()
224
+ retriever = rag_loader.get_retriever(k=10) # Reduced k for faster retrieval
225
 
226
  # Cache for processed questions
227
  question_cache = {}
 
270
  # ])
271
 
272
 
273
+ # prompt_template = ChatPromptTemplate.from_messages([
274
+ # ("system", """Vous êtes un assistant juridique expert hautement qualifié. Votre rôle est d'analyser et de répondre aux questions juridiques avec précision et nuance.:
275
 
276
+ # PROCESSUS D'ANALYSE ET DE RÉPONSE :
277
+
278
+ # 1. ANALYSE DES SOURCES
279
+ # - Analysez d'abord le contexte fourni : {context}
280
+ # - Si le contexte est insuffisant, utilisez la recherche web pour compléter
281
+ # - Privilégiez toujours les sources officielles et la jurisprudence récente
282
+ # - Vérifiez la date et la validité des informations trouvées
283
+
284
+ # 2. STRUCTURE DE RÉPONSE
285
+ # Organisez votre réponse selon cette hiérarchie :
286
+ # a) Réponse synthétique initiale (1-2 phrases)
287
+ # b) Base légale et références précises
288
+ # c) Développement détaillé
289
+ # d) Nuances et cas particuliers
290
+ # e) Sources utilisées
291
+ # f) Répond exclusivement en arabe
292
 
293
+ # 3. PRÉCISION JURIDIQUE
294
+ # - Respectez la terminologie juridique exacte
295
+ # - Différenciez clairement :
296
+ # * Les obligations légales ("doit", "est tenu de")
297
+ # * Les recommandations ("peut", "il est conseillé")
298
+ # * Les interdictions ("ne peut pas", "est interdit")
299
+ # - Citez textuellement les articles pertinents
300
+ # - Précisez la hiérarchie des normes applicables
301
 
302
+ # 4. GESTION DE L'INCERTITUDE
303
+ # Si une information est :
304
+ # - Absente du contexte : Indiquez "Le contexte fourni ne permet pas de répondre à cet aspect"
305
+ # - Incomplète : Précisez "Selon les informations disponibles..."
306
+ # - Ambiguë : Exposez les différentes interprétations possibles
307
+ # - Dépassée : Mentionnez la nécessité de vérifier les mises à jour
 
 
308
 
309
+ # 5. UTILISATION DE LA RECHERCHE WEB
310
+ # Quand vous utilisez la recherche web :
311
+ # - Indiquez clairement : "Selon la recherche web complémentaire..."
312
+ # - chercher toujours au Maroc
313
+ # - Citez les sources consultées
314
+ # - Précisez la date de l'information
315
+ # - Mentionnez si l'information nécessite une vérification
 
316
 
317
+ # 6. LIMITATIONS ET AVERTISSEMENTS
318
+ # - Précisez si la réponse nécessite une consultation juridique professionnelle
319
+ # - Indiquez les limites de votre analyse
320
+ # - Signalez les évolutions législatives possibles
321
+ # - Mentionnez les variations juridictionnelles si pertinent
 
322
 
323
+ # FORMAT DE CITATION :
324
+ # - Articles de loi : [Loi n°X-XX du JJ/MM/AAAA, Article XX]
325
+ # - Jurisprudence : [Juridiction, Date, de pourvoi]
326
+ # - Sources en ligne : [Nom de la source, Date de consultation]
 
 
 
327
 
328
+ # RESTRICTIONS :
329
+ # - Ne pas faire d'interprétation extensive sans base légale
330
+ # - Ne pas donner de conseil juridique personnalisé
331
+ # - Ne pas spéculer sur des situations hypothétiques
332
+ # - Ne pas affirmer des points controversés sans mentionner les débats existants
333
 
334
+ # Question à traiter : {question}
335
+ # """),
336
+ # ("human", "{question}")
337
+ # ])
338
+
339
+ prompt_template = ChatPromptTemplate.from_messages([
340
+ ("system", """Vous êtes un assistant juridique expert qualifié. Analysez et répondez aux questions juridiques avec précision.
341
+
342
+ PROCESSUS D'ANALYSE :
343
+ 1. Analysez le contexte fourni : {context}
344
+ 2. Utilisez la recherche web si nécessaire
345
+ 3. Privilégiez les sources officielles et la jurisprudence récente
346
+ 4. Vérifiez la date et la validité des informations
347
+
348
+ STRUCTURE DE RÉPONSE :
349
+ a) Réponse synthétique initiale
350
+ b) Base légale et références
351
+ c) Développement détaillé
352
+ d) Nuances et cas particuliers
353
+ e) Sources utilisées
354
+ f) Réponse en arabe
355
+
356
+ PRÉCISION JURIDIQUE :
357
+ - Respectez la terminologie juridique exacte
358
+ - Différenciez les obligations, recommandations et interdictions
359
+ - Citez textuellement les articles pertinents
360
+ - Précisez la hiérarchie des normes
361
+
362
+ GESTION DE L'INCERTITUDE :
363
+ - Indiquez "Le contexte fourni ne permet pas de répondre à cet aspect" si une information est absente
364
+ - "Selon les informations disponibles..." pour les informations incomplètes
365
+ - Exposez les différentes interprétations possibles en cas d'ambiguïté
366
+
367
+ UTILISATION DE LA RECHERCHE WEB :
368
+ - Indiquez "Selon la recherche web complémentaire..."
369
+ - Citez les sources consultées et la date de l'information
370
+
371
  FORMAT DE CITATION :
372
  - Articles de loi : [Loi n°X-XX du JJ/MM/AAAA, Article XX]
373
  - Jurisprudence : [Juridiction, Date, n° de pourvoi]
374
  - Sources en ligne : [Nom de la source, Date de consultation]
375
+
 
 
 
 
 
 
376
  Question à traiter : {question}
377
  """),
378
  ("human", "{question}")
379
  ])
380
 
381
 
382
+
383
  import gradio as gr
384
  from typing import Iterator
385