jcharlet/rimay_search
0
1from ast import List2import os3import streamlit as st4from src.models.predict_model import (5 run_query_with_qa_with_sources,6 COL_STATE_OF_THE_UNION,7 COL_OPEN_MINDFULNESS,8 ResponseSize,9 remove_embeddings,10)11 12 13# Define function to run query and display results14def run_query(15 query,16 mocked=False,17 collection_name=COL_OPEN_MINDFULNESS,18 response_size=ResponseSize.MEDIUM,19):20 if mocked:21 answer = """La méthode en trois temps pour intégrer ses émotions consiste à reconnaître et accueillir la présence de l'émotion, à respirer avec et à répondre harmonieusement en état d'observateur abstrait."""22 sources_json = [23 {24 "id": "3.5.20.01",25 "document": "6. L’intégration des émotions avec la méthode en trois temps\n\nLes trois méthodes d’intégration des pensées (dans l’ouverture relâchée, dans l’observateur abstrait, avec et sans étiquetage) sont susceptibles d’être transposées à l’intégration des émotions, qui sont, comme nous l’avons dit, des pensées « énergétisées », investies d’une charge affective. Vous extrapolerez donc ces trois méthodes, l’approche est exactement la même.\nL’entrainement progressif consiste à commencer à s’entrainer en situation facile avec les pensées habituelles. Puis, lorsque l’on s’est habitué à intégrer les pensées habituelles il devient plus facile d’intégrer d’abord des petites émotions, puis progressivement de fortes émotions et finalement toutes les émotions.\nMaintenant nous allons voir une pratique spécifique d’intégration et de libération des émotions dans la pleine présence. Elle a trois étapes :\n\nLa première étape consiste à reconnaître et accueillir la présence de l’émotion.\nLa deuxième étape consiste à respirer avec l’émotion. En respirant nous incorporons l’émotion et la laissons se décharger dans l’ouvert.\nLa troisième étape consiste, apaisé après la décharge de l’émotion, à rester en l’état d’observateur abstrait en harmonie avec la situation.\n\n Nous allons développer et expérimenter ces trois étapes :\nPremière étape : la reconnaissance et l’accueil\nDescriptif\nLe propos de cet exercice est de reconnaitre la présence de l’émotion. Habituellement, nous ne repérons pas l’arrivée d’une émotion. Si nous pouvions voir l’émotion dès qu’elle apparaît, nous pourrions ne pas nous laisser emporter par son énergie. Pour ce faire, « le tableau de bord corporel » présenté dans la première étape est très utile. Ce que nous avons alors nommé « le baromètre corporel » nous permet de déceler l’émergence d’une émotion à partir de nos sensations corporelles, en étant attentifs à la sensation de notre corps.\nExercice (Durée : 5 mn)\n\nComme d’habitude : installez-vous dans une posture confortable, les sens tout ouverts, détendus dans le regard panoramique, ça respire.\n……\n\n\nDans cet état : sentez votre corps, observez-le. Observez ce qui s’y passe et déceler y les signes d’émergence d’une émotion.\n……\n\n\nNotez particulièrement comment est votre respiration, comment bat votre cœur, les petites sensations dans votre ventre, gorge ou ailleurs, traduisant la présence d’une émotion. Cette attention à la sensation du corps vous aide à reconnaitre l’apparition d’une émotion.\n……\n\n\nSi vous n’avez dans l’instant aucune émotion décelable vous pouvez évoquer une situation émotionnelle de votre vie récente. Vous trouverez certainement facilement une situation qui vous a provoqué une émotion. Evoquez-la et sentez l’émotion.\n……\n\n\nA présent ayant reconnu la présence d’une émotion, vous l’accueillez. Plutôt que de vouloir la suivre ou la fuir, vous accueillez et acceptez simplement sa présence, sans jugement. Vous sentez pleinement son énergie, sa chaleur : cela peut se manifester de différentes façons suivant la nature de l’émotion. Se peut être « la moutarde qui monte au nez », une production accrue d’adrénaline, une respiration plus intense, un rythme cardiaque accéléré… Quoi qu’il en soit, vous accueillez simplement cette émotion et son énergie avec bienveillance, dans une sorte de « oui » qui est comme un sourire bienveillant, un accueil sans jugement.\n……\n\n\nNe vous demandez pas s’il est bien que cette émotion soit là ou pas. Restez simplement dans un état d’attention relâché, accueillant l’émotion, la laissant venir.\n……\nSi cela vous aide, vous pouvez comme pour les pensées avoir recours à la reconnaissance verbale avec l’étiquetage : « émotion » ou encore à la simple reconnaissance non verbale. Cette reconnaissance permet un accueil neutre et bienveillant des émotions, permet d’entrer en amitié avec ce que l’on porte d’émotionnel et de conflictuel en soi.\n……\n\nDeuxième étape : Respirer dans l’émotion, l’incorporant et la laissant se décharger\nDescriptif\nLa deuxième étape consiste à respirer dans l’émotion en l’incorporant et la laissant se décharger dans l’ouvert. Ayant accueilli et accepté la présence de l’émotion nous utilisons l’alternance du cycle respiratoire pour incorporer et laisser se décharger l’émotion. Particulièrement dans l’inspiration nous accueillons son énergie et l’incorporons, faisons corps avec elle. Dans l’expiration nous nous relâchons complètement et laissons cette énergie se décharger dans l’ouvert.\nExercice (Durée : 5 mn)\n\nToujours installé dans la posture confortable, les sens tout ouverts et détendu dans le regard panoramique, ça respire naturellement.\n……\n\n\nA présent, après avoir accueilli l’émotion, vous vous familiarisez avec sa présence et entrez en son énergie sans peur ni résistance. Vous restez dans son ressenti en respirant dans sa sensation.\n……\n\n\nVous incorporez l’émotion, vous vous laissez aller dans la sensation de son énergie, faisant de plus en plus corps avec elle.\n……\n\n\nCette incorporation de l’émotion se vit associée à la respiration, à la pulsation du souffle. Vous vous laissez aller dans celle-ci au rythme de l’inspiration et de l’expiration. Particulièrement, vous associez l’accueil avec l’inspiration et le lâcher prise dans l’ouvert avec l’expiration.\n……\n\n\nEn respirant ainsi, vous vous détendez et vous vous abandonnez dans l’énergie de l’émotion. Dans le va-et-vient de la respiration, progressivement, vous incorporez l’émotion et la laissez se décharger.\n……\n\n\nVous continuez ainsi laissant l’énergie de l’émotion être telle qu’elle est. Dans le lâcher prise associé à la détente la distance entre vous et l’émotion se réduit et finalement disparaît, laissant simplement son énergie dans l’ouvert. L’émotion devient alors une énergie qui n’est pas possédée, une énergie libre qui rayonne et se décharge.\n……\n\n\nEn pratiquant ainsi le temps nécessaire, l’intensité émotionnelle diminue, retombe et finalement se dissout. Le reliquat de son énergie n’est plus conflictuel et peut même devenir source d’une intelligence qui va animer la troisième étape.\n……\n\nTroisième étape : Rester apaisé dans l’état d’observateur abstrait en harmonie avec la situation\nDescriptif\nDans cette troisième étape, une fois que l’émotion s’est déchargée nous restons tel quel dans la simple présence ouverte globale, en état d’observateur abstrait. Nous sommes alors en harmonie avec la situation et pouvons, si la situation le demande, y répondre de façon adaptée.\n Exercice (Durée : 5 à 10 mn)\n\nToujours installé confortablement, les sens tout ouverts et détendu dans le regard panoramique, ça respire.\n……\n\n\nPour cette troisième étape d’intégration de l’émotion, vous restez apaisé dans l’ouvert, en l’état d’observateur abstrait. Lors de la deuxième étape la charge émotionnelle s’est déchargée, le corps et l’esprit sont maintenant relâchés. Vous restez au repos, tel quel, dans la simple présence ouverte de l’observateur abstrait.\n……\n\n\nNaturellement et tranquillement, ça respire. Vous êtes un, apaisé dans la situation.\n……\n\n\nDans cet état de pleine présence, attentive, ouverte et empathique, vous êtes en harmonie avec la situation et son intelligence, et ainsi, une réponse adaptée peut émerger, que ce soit de dire ou faire quelque chose ou de ne rien dire ni rien faire.\n……\n\n\nAu départ, quand l’émotion était virulente, vous auriez réagi émotionnellement. Mais à présent, l’émotion s’étant déchargée, vous pouvez répondre de façon harmonieuse et empathique, en percevant la situation sur un mode beaucoup plus ouvert, réaliste et bienveillant. Cette réponse harmonieuse peut prendre n’importe quelle forme. Vous êtes libres de répondre de façon appropriée et intelligente, adaptée aux circonstances. Dans tous les cas, la réponse harmonieuse se fera dans l’empathie et la bienveillance plutôt que dans l’agression du conflit émotionnel.\n\n",26 "metadata": {27 "sort_chapter": 3,28 "sort_step_nb": 5,29 "sort_section_nb": 20,30 "sort_paragraph_nb": 1,31 "page_title": "PRATIQUE 32",32 "contents_to_embed_length": 1178,33 "url": "https://www.openmindfulness.net/20-etape-5-p32/",34 "source": "3.5.20.01",35 },36 },37 {38 "id": "3.5.20.02",39 "document": " Nous allons développer et expérimenter ces trois étapes :\n\nPremière étape : la reconnaissance et l’accueil\nDescriptif\nLe propos de cet exercice est de reconnaitre la présence de l’émotion. Habituellement, nous ne repérons pas l’arrivée d’une émotion. Si nous pouvions voir l’émotion dès qu’elle apparaît, nous pourrions ne pas nous laisser emporter par son énergie. Pour ce faire, « le tableau de bord corporel » présenté dans la première étape est très utile. Ce que nous avons alors nommé « le baromètre corporel » nous permet de déceler l’émergence d’une émotion à partir de nos sensations corporelles, en étant attentifs à la sensation de notre corps.\nExercice (Durée : 5 mn)\n\nComme d’habitude : installez-vous dans une posture confortable, les sens tout ouverts, détendus dans le regard panoramique, ça respire.\n……\n\n\nDans cet état : sentez votre corps, observez-le. Observez ce qui s’y passe et déceler y les signes d’émergence d’une émotion.\n……\n\n\nNotez particulièrement comment est votre respiration, comment bat votre cœur, les petites sensations dans votre ventre, gorge ou ailleurs, traduisant la présence d’une émotion. Cette attention à la sensation du corps vous aide à reconnaitre l’apparition d’une émotion.\n……\n\n\nSi vous n’avez dans l’instant aucune émotion décelable vous pouvez évoquer une situation émotionnelle de votre vie récente. Vous trouverez certainement facilement une situation qui vous a provoqué une émotion. Evoquez-la et sentez l’émotion.\n……\n\n\nA présent ayant reconnu la présence d’une émotion, vous l’accueillez. Plutôt que de vouloir la suivre ou la fuir, vous accueillez et acceptez simplement sa présence, sans jugement. Vous sentez pleinement son énergie, sa chaleur : cela peut se manifester de différentes façons suivant la nature de l’émotion. Se peut être « la moutarde qui monte au nez », une production accrue d’adrénaline, une respiration plus intense, un rythme cardiaque accéléré… Quoi qu’il en soit, vous accueillez simplement cette émotion et son énergie avec bienveillance, dans une sorte de « oui » qui est comme un sourire bienveillant, un accueil sans jugement.\n……\n\n\nNe vous demandez pas s’il est bien que cette émotion soit là ou pas. Restez simplement dans un état d’attention relâché, accueillant l’émotion, la laissant venir.\n……\nSi cela vous aide, vous pouvez comme pour les pensées avoir recours à la reconnaissance verbale avec l’étiquetage : « émotion » ou encore à la simple reconnaissance non verbale. Cette reconnaissance permet un accueil neutre et bienveillant des émotions, permet d’entrer en amitié avec ce que l’on porte d’émotionnel et de conflictuel en soi.\n……\n\nDeuxième étape : Respirer dans l’émotion, l’incorporant et la laissant se décharger\nDescriptif\nLa deuxième étape consiste à respirer dans l’émotion en l’incorporant et la laissant se décharger dans l’ouvert. Ayant accueilli et accepté la présence de l’émotion nous utilisons l’alternance du cycle respiratoire pour incorporer et laisser se décharger l’émotion. Particulièrement dans l’inspiration nous accueillons son énergie et l’incorporons, faisons corps avec elle. Dans l’expiration nous nous relâchons complètement et laissons cette énergie se décharger dans l’ouvert.\nExercice (Durée : 5 mn)\n\nToujours installé dans la posture confortable, les sens tout ouverts et détendu dans le regard panoramique, ça respire naturellement.\n……\n\n\nA présent, après avoir accueilli l’émotion, vous vous familiarisez avec sa présence et entrez en son énergie sans peur ni résistance. Vous restez dans son ressenti en respirant dans sa sensation.\n……\n\n\nVous incorporez l’émotion, vous vous laissez aller dans la sensation de son énergie, faisant de plus en plus corps avec elle.\n……\n\n\nCette incorporation de l’émotion se vit associée à la respiration, à la pulsation du souffle. Vous vous laissez aller dans celle-ci au rythme de l’inspiration et de l’expiration. Particulièrement, vous associez l’accueil avec l’inspiration et le lâcher prise dans l’ouvert avec l’expiration.\n……\n\n\nEn respirant ainsi, vous vous détendez et vous vous abandonnez dans l’énergie de l’émotion. Dans le va-et-vient de la respiration, progressivement, vous incorporez l’émotion et la laissez se décharger.\n……\n\n\nVous continuez ainsi laissant l’énergie de l’émotion être telle qu’elle est. Dans le lâcher prise associé à la détente la distance entre vous et l’émotion se réduit et finalement disparaît, laissant simplement son énergie dans l’ouvert. L’émotion devient alors une énergie qui n’est pas possédée, une énergie libre qui rayonne et se décharge.\n……\n\n\nEn pratiquant ainsi le temps nécessaire, l’intensité émotionnelle diminue, retombe et finalement se dissout. Le reliquat de son énergie n’est plus conflictuel et peut même devenir source d’une intelligence qui va animer la troisième étape.\n……\n\nTroisième étape : Rester apaisé dans l’état d’observateur abstrait en harmonie avec la situation\nDescriptif\nDans cette troisième étape, une fois que l’émotion s’est déchargée nous restons tel quel dans la simple présence ouverte globale, en état d’observateur abstrait. Nous sommes alors en harmonie avec la situation et pouvons, si la situation le demande, y répondre de façon adaptée.\n Exercice (Durée : 5 à 10 mn)\n\nToujours installé confortablement, les sens tout ouverts et détendu dans le regard panoramique, ça respire.\n……\n\n\nPour cette troisième étape d’intégration de l’émotion, vous restez apaisé dans l’ouvert, en l’état d’observateur abstrait. Lors de la deuxième étape la charge émotionnelle s’est déchargée, le corps et l’esprit sont maintenant relâchés. Vous restez au repos, tel quel, dans la simple présence ouverte de l’observateur abstrait.\n……\n\n\nNaturellement et tranquillement, ça respire. Vous êtes un, apaisé dans la situation.\n……\n\n\nDans cet état de pleine présence, attentive, ouverte et empathique, vous êtes en harmonie avec la situation et son intelligence, et ainsi, une réponse adaptée peut émerger, que ce soit de dire ou faire quelque chose ou de ne rien dire ni rien faire.\n……\n\n\nAu départ, quand l’émotion était virulente, vous auriez réagi émotionnellement. Mais à présent, l’émotion s’étant déchargée, vous pouvez répondre de façon harmonieuse et empathique, en percevant la situation sur un mode beaucoup plus ouvert, réaliste et bienveillant. Cette réponse harmonieuse peut prendre n’importe quelle forme. Vous êtes libres de répondre de façon appropriée et intelligente, adaptée aux circonstances. Dans tous les cas, la réponse harmonieuse se fera dans l’empathie et la bienveillance plutôt que dans l’agression du conflit émotionnel.\n\n",40 "metadata": {41 "sort_chapter": 3,42 "sort_step_nb": 5,43 "sort_section_nb": 20,44 "sort_paragraph_nb": 2,45 "page_title": "PRATIQUE 32",46 "contents_to_embed_length": 1000,47 "url": "https://www.openmindfulness.net/20-etape-5-p32/",48 "source": "3.5.20.02",49 },50 },51 {52 "id": "3.5.20.03",53 "document": "Première étape : la reconnaissance et l’accueil\n\nDescriptif\nLe propos de cet exercice est de reconnaitre la présence de l’émotion. Habituellement, nous ne repérons pas l’arrivée d’une émotion. Si nous pouvions voir l’émotion dès qu’elle apparaît, nous pourrions ne pas nous laisser emporter par son énergie. Pour ce faire, « le tableau de bord corporel » présenté dans la première étape est très utile. Ce que nous avons alors nommé « le baromètre corporel » nous permet de déceler l’émergence d’une émotion à partir de nos sensations corporelles, en étant attentifs à la sensation de notre corps.\nExercice (Durée : 5 mn)\n\nComme d’habitude : installez-vous dans une posture confortable, les sens tout ouverts, détendus dans le regard panoramique, ça respire.\n……\n\n\nDans cet état : sentez votre corps, observez-le. Observez ce qui s’y passe et déceler y les signes d’émergence d’une émotion.\n……\n\n\nNotez particulièrement comment est votre respiration, comment bat votre cœur, les petites sensations dans votre ventre, gorge ou ailleurs, traduisant la présence d’une émotion. Cette attention à la sensation du corps vous aide à reconnaitre l’apparition d’une émotion.\n……\n\n\nSi vous n’avez dans l’instant aucune émotion décelable vous pouvez évoquer une situation émotionnelle de votre vie récente. Vous trouverez certainement facilement une situation qui vous a provoqué une émotion. Evoquez-la et sentez l’émotion.\n……\n\n\nA présent ayant reconnu la présence d’une émotion, vous l’accueillez. Plutôt que de vouloir la suivre ou la fuir, vous accueillez et acceptez simplement sa présence, sans jugement. Vous sentez pleinement son énergie, sa chaleur : cela peut se manifester de différentes façons suivant la nature de l’émotion. Se peut être « la moutarde qui monte au nez », une production accrue d’adrénaline, une respiration plus intense, un rythme cardiaque accéléré… Quoi qu’il en soit, vous accueillez simplement cette émotion et son énergie avec bienveillance, dans une sorte de « oui » qui est comme un sourire bienveillant, un accueil sans jugement.\n……\n\n\nNe vous demandez pas s’il est bien que cette émotion soit là ou pas. Restez simplement dans un état d’attention relâché, accueillant l’émotion, la laissant venir.\n……\nSi cela vous aide, vous pouvez comme pour les pensées avoir recours à la reconnaissance verbale avec l’étiquetage : « émotion » ou encore à la simple reconnaissance non verbale. Cette reconnaissance permet un accueil neutre et bienveillant des émotions, permet d’entrer en amitié avec ce que l’on porte d’émotionnel et de conflictuel en soi.\n……\n\nDeuxième étape : Respirer dans l’émotion, l’incorporant et la laissant se décharger\nDescriptif\nLa deuxième étape consiste à respirer dans l’émotion en l’incorporant et la laissant se décharger dans l’ouvert. Ayant accueilli et accepté la présence de l’émotion nous utilisons l’alternance du cycle respiratoire pour incorporer et laisser se décharger l’émotion. Particulièrement dans l’inspiration nous accueillons son énergie et l’incorporons, faisons corps avec elle. Dans l’expiration nous nous relâchons complètement et laissons cette énergie se décharger dans l’ouvert.\nExercice (Durée : 5 mn)\n\nToujours installé dans la posture confortable, les sens tout ouverts et détendu dans le regard panoramique, ça respire naturellement.\n……\n\n\nA présent, après avoir accueilli l’émotion, vous vous familiarisez avec sa présence et entrez en son énergie sans peur ni résistance. Vous restez dans son ressenti en respirant dans sa sensation.\n……\n\n\nVous incorporez l’émotion, vous vous laissez aller dans la sensation de son énergie, faisant de plus en plus corps avec elle.\n……\n\n\nCette incorporation de l’émotion se vit associée à la respiration, à la pulsation du souffle. Vous vous laissez aller dans celle-ci au rythme de l’inspiration et de l’expiration. Particulièrement, vous associez l’accueil avec l’inspiration et le lâcher prise dans l’ouvert avec l’expiration.\n……\n\n\nEn respirant ainsi, vous vous détendez et vous vous abandonnez dans l’énergie de l’émotion. Dans le va-et-vient de la respiration, progressivement, vous incorporez l’émotion et la laissez se décharger.\n……\n\n\nVous continuez ainsi laissant l’énergie de l’émotion être telle qu’elle est. Dans le lâcher prise associé à la détente la distance entre vous et l’émotion se réduit et finalement disparaît, laissant simplement son énergie dans l’ouvert. L’émotion devient alors une énergie qui n’est pas possédée, une énergie libre qui rayonne et se décharge.\n……\n\n\nEn pratiquant ainsi le temps nécessaire, l’intensité émotionnelle diminue, retombe et finalement se dissout. Le reliquat de son énergie n’est plus conflictuel et peut même devenir source d’une intelligence qui va animer la troisième étape.\n……\n\nTroisième étape : Rester apaisé dans l’état d’observateur abstrait en harmonie avec la situation\nDescriptif\nDans cette troisième étape, une fois que l’émotion s’est déchargée nous restons tel quel dans la simple présence ouverte globale, en état d’observateur abstrait. Nous sommes alors en harmonie avec la situation et pouvons, si la situation le demande, y répondre de façon adaptée.\n Exercice (Durée : 5 à 10 mn)\n\nToujours installé confortablement, les sens tout ouverts et détendu dans le regard panoramique, ça respire.\n……\n\n\nPour cette troisième étape d’intégration de l’émotion, vous restez apaisé dans l’ouvert, en l’état d’observateur abstrait. Lors de la deuxième étape la charge émotionnelle s’est déchargée, le corps et l’esprit sont maintenant relâchés. Vous restez au repos, tel quel, dans la simple présence ouverte de l’observateur abstrait.\n……\n\n\nNaturellement et tranquillement, ça respire. Vous êtes un, apaisé dans la situation.\n……\n\n\nDans cet état de pleine présence, attentive, ouverte et empathique, vous êtes en harmonie avec la situation et son intelligence, et ainsi, une réponse adaptée peut émerger, que ce soit de dire ou faire quelque chose ou de ne rien dire ni rien faire.\n……\n\n\nAu départ, quand l’émotion était virulente, vous auriez réagi émotionnellement. Mais à présent, l’émotion s’étant déchargée, vous pouvez répondre de façon harmonieuse et empathique, en percevant la situation sur un mode beaucoup plus ouvert, réaliste et bienveillant. Cette réponse harmonieuse peut prendre n’importe quelle forme. Vous êtes libres de répondre de façon appropriée et intelligente, adaptée aux circonstances. Dans tous les cas, la réponse harmonieuse se fera dans l’empathie et la bienveillance plutôt que dans l’agression du conflit émotionnel.\n\n",54 "metadata": {55 "sort_chapter": 3,56 "sort_step_nb": 5,57 "sort_section_nb": 20,58 "sort_paragraph_nb": 3,59 "page_title": "PRATIQUE 32",60 "contents_to_embed_length": 991,61 "url": "https://www.openmindfulness.net/20-etape-5-p32/",62 "source": "3.5.20.03",63 },64 },65 {66 "id": "3.5.24.01",67 "document": "Le conseil pour intégrer les émotions dans la pleine présence\n\nLe conseil pour intégrer les émotions dans la pleine présence est de les reconnaitre puis de les incorporer et de les laisser se libérer d’elles-mêmes.\n\n\nLe résumé de l’intégration des émotions dans la pleine présence\n\nLa pratique de la pleine présence dans les émotions nous apprend à les intégrer dans une méthode à trois temps :\n1- Reconnaître les émotions\n2- Les incorporer et les laisser se décharger en respirant avec elles\n3- Répondre harmonieusement en état d’observateur abstrait, en une présence sans saisie en laquelle une réponse adaptée et bienveillante émerge naturellement.\n",68 "metadata": {69 "sort_chapter": 3,70 "sort_step_nb": 5,71 "sort_section_nb": 24,72 "sort_paragraph_nb": 1,73 "page_title": "Conseil et résumé pour l'intégration des émotions",74 "contents_to_embed_length": 103,75 "url": "https://www.openmindfulness.net/24-etape-5-conseil-et-resume-emotions/",76 "source": "3.5.24.01",77 },78 },79 ]80 metadata = {81 "cost": {82 "Total Cost (USD)": 0.23,83 "Successful Requests": 2,84 },85 "tokens": {86 "Total Tokens": 11618,87 "Prompt Tokens": 10650,88 "Completion Tokens": 968,89 },90 }91 else:92 answer, sources_json, metadata = run_query_with_qa_with_sources(93 query, collection_name=collection_name, response_size=response_size94 )95 96 sources = format_sources(sources_json, mocked, collection_name)97 # = "Total Tokens: 2854 \nPrompt Tokens: 2688 \nCompletion Tokens: 166 \nSuccessful Requests: 2 \nTotal Cost (USD): $0.05708"98 return answer, sources, metadata, sources_json99 100 101def format_sources(sources_json, mocked, collection_name) -> list[str]:102 documents = {}103 sources_markdown = ""104 if collection_name == COL_STATE_OF_THE_UNION:105 for source in sources_json:106 documents[source["id"]] = {107 "title": source["id"],108 "contents": f"{source['document']}",109 }110 111 elif mocked or collection_name == COL_OPEN_MINDFULNESS:112 for source in sources_json:113 metadata = source["metadata"]114 url = metadata["url"]115 116 if url in documents:117 doc = documents[url]118 doc["contents"] = (119 doc["contents"] + f"\n\n[...]\n\n {source['document']}"120 )121 else:122 title = f"Chapitre {metadata['sort_chapter']}"123 if metadata["sort_section_nb"] != 0:124 title += f" Étape {metadata['sort_step_nb']}"125 if metadata["page_title"] != "":126 title += f": {metadata['page_title']}"127 128 doc = {"title": title, "contents": f"{source['document']}"}129 130 documents[url] = doc131 132 return documents133 134 135def make_grid(cols, rows):136 grid = [0] * cols137 for i in range(cols):138 with st.container():139 grid[i] = st.columns(rows)140 return grid141 142 143# Define main function for Streamlit app144def main():145 st.title("Moteur de recherche - pleine présence")146 st.write(147 "Ce moteur de recherche vous permet de trouver des réponses à vos questions sur la pleine présence."148 )149 st.write(150 "Il utilise les contenus du site [Open Mindfulness](https://www.openmindfulness.net/)."151 )152 st.divider()153 user_type = st.sidebar.selectbox("Type d'utilisateur", ["yogi", "admin"])154 if user_type == "yogi":155 is_mocked = False156 # is_mocked = True157 collection_name = COL_OPEN_MINDFULNESS158 response_size = ResponseSize.SMALL159 160 openai_token = st.sidebar.text_input("OpenAPI Token", type="password")161 else:162 st.sidebar.title("Settings")163 164 # # Add language selector to sidebar165 # language = st.sidebar.selectbox("Language", ["English", "French"])166 is_mocked = st.sidebar.selectbox("is mocked", [True, False])167 168 if is_mocked:169 collection_name = COL_OPEN_MINDFULNESS170 response_size = ResponseSize.SMALL171 else:172 openai_token = st.sidebar.text_input("OpenAPI Token", type="password")173 if openai_token != "":174 collection_name = st.sidebar.selectbox(175 "Collection name", [COL_OPEN_MINDFULNESS, COL_STATE_OF_THE_UNION]176 )177 response_size = st.sidebar.selectbox(178 "Response size",179 [ResponseSize.SMALL, ResponseSize.MEDIUM, ResponseSize.LARGE],180 )181 182 if not is_mocked and openai_token != "":183 os.environ["OPENAI_API_KEY"] = openai_token184 185 if not is_mocked and openai_token == "":186 st.info(187 "Veuillez pour commencer fournir une clé OpenAI dans le menu de gauche pour lancer une requête. Voir ce [tuto](https://www.commentcoder.com/api-chatgpt/#comment-avoir-sa-cl%C3%A9-dapi-chatgpt-)."188 )189 remove_embeddings()190 else:191 if collection_name == COL_STATE_OF_THE_UNION:192 query = st.text_input(193 "Enter your query here",194 "What did the president say about Justice Breyer ?",195 )196 elif collection_name == COL_OPEN_MINDFULNESS:197 query = st.text_input(198 "Entrez votre requête ci-dessous",199 "Comment intégrer ses émotions avec la méthode en trois temps ?",200 )201 202 if st.button("🔍 Recherche") and query != "":203 answer, sources, metadata, sources_json = run_query(204 query,205 mocked=is_mocked,206 collection_name=collection_name,207 response_size=response_size,208 )209 st.header("Réponse")210 st.markdown(answer)211 st.header("Sources")212 tab1, tab2 = st.tabs(["Sources", "data"])213 # tab1.markdown(sources)214 for url in sources:215 with tab1.expander(sources[url]["title"]):216 st.markdown(f"[{url}]({url})")217 st.markdown(sources[url]["contents"])218 tab2.json(sources_json)219 st.header("Metadata")220 for k, v in metadata.items():221 # st.subheader(k)222 grid = make_grid(1, len(v.items()))223 for index, (k2, v2) in enumerate(v.items()):224 if k2 == "Total Cost (USD)":225 v2 = f"${v2:.2f}"226 elif user_type == "yogi":227 break228 grid[0][index].metric(k2, v2)229 230 231# Run main function232if __name__ == "__main__":233 main()234 