Spaces:
Sleeping
Sleeping
Working app
Browse files- .gitignore +3 -0
- Dockerfile +4 -4
- HuggingFace.ipynb +67 -0
- Investigation.ipynb +0 -0
- LangChain_QA_Panel_App.ipynb +0 -0
- Pipeline.ipynb +653 -0
- app.py +0 -147
- requirements.txt +16 -5
- resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf +0 -0
- resources/YouTube - Mode secours telephonie.md +41 -0
- utils.py +189 -0
.gitignore
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
resources/ignore/
|
2 |
+
.ipynb_checkpoints/
|
3 |
+
.DS_Store/
|
Dockerfile
CHANGED
@@ -1,16 +1,16 @@
|
|
1 |
-
FROM python:3.
|
2 |
|
3 |
WORKDIR /code
|
4 |
|
5 |
-
COPY ./requirements.txt
|
6 |
RUN python3 -m pip install --no-cache-dir --upgrade pip
|
7 |
RUN python3 -m pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
8 |
|
9 |
COPY . .
|
10 |
|
11 |
-
CMD ["panel", "serve", "/code/
|
12 |
|
13 |
RUN mkdir /.cache
|
14 |
RUN chmod 777 /.cache
|
15 |
RUN mkdir .chroma
|
16 |
-
RUN chmod 777 .chroma
|
|
|
1 |
+
FROM python:3.9
|
2 |
|
3 |
WORKDIR /code
|
4 |
|
5 |
+
COPY ./requirements.txt .
|
6 |
RUN python3 -m pip install --no-cache-dir --upgrade pip
|
7 |
RUN python3 -m pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
8 |
|
9 |
COPY . .
|
10 |
|
11 |
+
CMD ["panel", "serve", "/code/LangChain_QA_Panel_App.ipynb", "--address", "0.0.0.0", "--port", "7860", "--allow-websocket-origin", "*"]
|
12 |
|
13 |
RUN mkdir /.cache
|
14 |
RUN chmod 777 /.cache
|
15 |
RUN mkdir .chroma
|
16 |
+
RUN chmod 777 .chroma
|
HuggingFace.ipynb
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 1,
|
6 |
+
"id": "f2a1f6a4-7f00-4fe5-8fdc-eb49aae1850b",
|
7 |
+
"metadata": {},
|
8 |
+
"outputs": [
|
9 |
+
{
|
10 |
+
"name": "stderr",
|
11 |
+
"output_type": "stream",
|
12 |
+
"text": [
|
13 |
+
"/Users/romainfouilland/code/envs/iamu2/lib/python3.9/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n",
|
14 |
+
" warnings.warn(\n",
|
15 |
+
"/Users/romainfouilland/code/envs/iamu2/lib/python3.9/site-packages/huggingface_hub/utils/_deprecation.py:131: FutureWarning: 'InferenceApi' (from 'huggingface_hub.inference_api') is deprecated and will be removed from version '1.0'. `InferenceApi` client is deprecated in favor of the more feature-complete `InferenceClient`. Check out this guide to learn how to convert your script to use it: https://huggingface.co/docs/huggingface_hub/guides/inference#legacy-inferenceapi-client.\n",
|
16 |
+
" warnings.warn(warning_message, FutureWarning)\n"
|
17 |
+
]
|
18 |
+
}
|
19 |
+
],
|
20 |
+
"source": [
|
21 |
+
"from langchain import PromptTemplate, HuggingFaceHub, LLMChain\n",
|
22 |
+
"\n",
|
23 |
+
"# Ref.: https://python.langchain.com/docs/integrations/llms/huggingface_hub\n",
|
24 |
+
"repos = [\n",
|
25 |
+
" # \"google/flan-t5-xxl\",\n",
|
26 |
+
" \"databricks/dolly-v2-3b\",\n",
|
27 |
+
"]\n",
|
28 |
+
"template = \"\"\"Question : {question}\n",
|
29 |
+
"\n",
|
30 |
+
"Réponse : \"\"\"\n",
|
31 |
+
"prompt = PromptTemplate(template=template, input_variables=[\"question\"])\n",
|
32 |
+
"llm=HuggingFaceHub(repo_id=repos[0], model_kwargs={\"temperature\": 1e-10, \"max_length\": 248})\n",
|
33 |
+
"question = \"Qu'est-ce qu'un SAMU ?\"\n",
|
34 |
+
"# LLMChain(prompt=prompt, llm=llm).run(question)"
|
35 |
+
]
|
36 |
+
},
|
37 |
+
{
|
38 |
+
"cell_type": "code",
|
39 |
+
"execution_count": null,
|
40 |
+
"id": "56e02d46-c7b9-4688-8134-e59037b775c7",
|
41 |
+
"metadata": {},
|
42 |
+
"outputs": [],
|
43 |
+
"source": []
|
44 |
+
}
|
45 |
+
],
|
46 |
+
"metadata": {
|
47 |
+
"kernelspec": {
|
48 |
+
"display_name": "iamu2",
|
49 |
+
"language": "python",
|
50 |
+
"name": "iamu2"
|
51 |
+
},
|
52 |
+
"language_info": {
|
53 |
+
"codemirror_mode": {
|
54 |
+
"name": "ipython",
|
55 |
+
"version": 3
|
56 |
+
},
|
57 |
+
"file_extension": ".py",
|
58 |
+
"mimetype": "text/x-python",
|
59 |
+
"name": "python",
|
60 |
+
"nbconvert_exporter": "python",
|
61 |
+
"pygments_lexer": "ipython3",
|
62 |
+
"version": "3.9.6"
|
63 |
+
}
|
64 |
+
},
|
65 |
+
"nbformat": 4,
|
66 |
+
"nbformat_minor": 5
|
67 |
+
}
|
Investigation.ipynb
ADDED
The diff for this file is too large to render.
See raw diff
|
|
LangChain_QA_Panel_App.ipynb
ADDED
The diff for this file is too large to render.
See raw diff
|
|
Pipeline.ipynb
ADDED
@@ -0,0 +1,653 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 1,
|
6 |
+
"id": "90c9bce3-6c61-47cc-812b-948a8e93adf2",
|
7 |
+
"metadata": {},
|
8 |
+
"outputs": [],
|
9 |
+
"source": [
|
10 |
+
"%load_ext autoreload\n",
|
11 |
+
"%autoreload 2"
|
12 |
+
]
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"cell_type": "code",
|
16 |
+
"execution_count": 6,
|
17 |
+
"id": "d68cd8dd-65ec-464b-a8a1-800d640924db",
|
18 |
+
"metadata": {},
|
19 |
+
"outputs": [
|
20 |
+
{
|
21 |
+
"data": {
|
22 |
+
"text/plain": [
|
23 |
+
"{'md': [Document(page_content=\"# Mode secours (aussi appelé mode dégradé)\\n## Passage en mode secours\\nVous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau. \\n\\n## Réaction du SAMU au passage en mode secours\\nLorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours. \\n\\n## Retour au mode nominal (fin du mode secours)\\nIl vous guide également pas à pas lors de la phase de retour au mode nominal. Lorsque le bandeau de communication SI-SAMU est rétabli, le support N3 demande à certains agents de se reconnecter sur le bandeau tandis que les autres restent en mode secours. Lorsque le support N3 le demande les agents en mode de secours utilisent la touche F2 pour transférer les appels au bandeau. Ces transferts sont non accompagnés. La touche F2 est programmée pour appeler le numéro VIP du SAMU. L'appel apparaît alors sur le bandeau de communication SI-SAMU dans la salle d'attente recevant les appels VIP avec un logo VIP. \\n\\n## Continuité des appels téléphonique\\nSur le téléphone, je vois que la communication est toujours en cours. Je vois le numéro de l'appelant par exemple. Lorsque vous ferez le test de fonctionnement en mode secours, vous verrez sur le téléphone qui vous a servi à appeler le SAMU que l'appel est également toujours en cours. \\n\\n## Appels en attente\\nLe voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.\\n\\n## Transferts\\n### Transférer un appel\\nPour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.\\n\\n### Réceptionner un appel transféré\\nSur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé. \\n\\n### Transfert accompagné\\nVous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui. \\n- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence. \\n- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication. \\n- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\\n\\n## Décrocher\\nEn mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque. \\n\\n## Wrap-up et retrait\\nComme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors. \\n\\n## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\\nSi vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off. \\nLorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\\n\\n## Conclusion\\nVous êtes maintenant prêt à utiliser la téléphonie en mode secours. Vous savez maintenant reconnaître le passage en mode secours, vérifier qu'un appel est en cours, qu'un appel est en attente, transférer un appel sans l'accompagner ou en l'accompagnant et en faisant une conférence téléphonique, passer en wrap-up ou en retrait, vous déloguer de la téléphonie ou vous connecter et choisir votre groupe de traitement d'appel. Vous savez également utiliser la touche F2 pour transférer les appels présents sur le mode de secours vers le bandeau de communication SI-SAMU lorsque le système est rétabli.\\n\", metadata={'source': 'resources/YouTube - Mode secours telephonie.md'})],\n",
|
24 |
+
" 'pdf': [Document(page_content=\" \\n \\n67 12. Fonctionnement en mode dégradé En cas de défaillance du bandeau de communication ou du service de distribution des appels (présenté au chapitre 6) ou d’isolation du site locale (ex : panne d’accès réseau), la brique de téléphonie (ACD de secours du marché M1) prend le relai de la distribution des appels. Dans ce cas, l’ensemble des actions liées à la téléphonie (modification du statut de l’agent, action téléphonique de type transfert, conférence, etc.) se font depuis le téléphone de l’agent, et plus depuis le bandeau, celui-ci étant inactif ou inaccessible. \\n Figure 4. Vue de l'écran du poste téléphonique avec notamment les touches de modification du statut de l'agent En mode nominal, le poste physique n’est pas prévu pour permettre la modification du retrait de l’agent (le bandeau reste maitre du statut téléphonique de l’agent). Des anomalies ont été identifiées : - un agent qui veut sortir du statut retrait par son téléphone, fait raccrocher l’appel en attente sur le flux de son GTA, s’il est le seul agent de son GTA (SIS-10037 ; évol SIS-11523). \\n\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 0}),\n",
|
25 |
+
" Document(page_content=\" \\n \\n68 12.1 Procédure de connexion En mode dégradé, l’agent utilise directement l’écran de son téléphone et le clavier alphanumérique associé pour se connecter Via la fonction « Logon » accessible depuis le menu, l’agent se connecte en entrant son numéro d’agent (qui est son numéro de téléphone interne). \\n Figure 5. Procédure de connexion - Vue du poste téléphonique lors de la saisie du numéro de l'agent Une fois ceci réalisé, l’agent va alors choisir le Groupe de Traitement (GT) dans lequel il va réguler, parmi la liste des GT disponible. Le GT est l’équivalent, en mode dégradé, du GTA défini en 4.1. La correspondance entre les GTA et les GT est définie en 4.1. \\n Figure 6. Procédure de connexion - Vue du poste téléphonique lors de la sélection du GT \\n\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 1}),\n",
|
26 |
+
" Document(page_content=' \\n \\n69 12.2 Mécanisme de distribution Les flux d’appels entrants qu’ils soient des numéros externes (i.e, l’ensemble des SDA régulées par le CRRA) ou internes (ex : transfert FO1 è FO2), sont distribuées vers des Files d’Attente (FA) qui sont elles-mêmes distribuées sur des Groupes de Traitement (GT). Figure 7. Principe de distribution en mode dégradé Lorsqu’un appel arrive dans le système de distribution du mode dégradé (inclus dans la brique OXE), celui-ci, en fonction du numéro appelé qu’il soit externe (ex : SDA) ou interne (ex : transfert, voir 12.2.4) est distribué dans une File d’Attente cible (définie par le métier). Les appels dans cette file d’attente sont ensuite distribués selon une règle FIFO (First In First Out) à un GT cible. L’ensemble des règles de distribution (sur les FA et sur les GT) est défini par le métier au sein d’une matrice de configuration ‘ 12.2.1 Distribution d’un appel à un agent au sein d’un GT Une fois qu’il s’est connecté à la solution en mode dégradé, l’utilisateur se trouve dans un Groupe de Traitement (GT) comme précisé en 12.1. L’utilisateur ne reçoit donc alors que des appels qui ciblent son GT (sauf en cas de débordement). Au sein d’un GT, un appel est distribué à l’agent qui, au sein de ce GT est libre depuis le plus longtemps. A la fin de l’appel, l’agent dispose d’un temps de Wrap-Up paramétré à 15 secondes (sauf pour le GT T2 qui a un temps de 30 secondes). Si aucun agent n���est connecté dans le GT cible, l’appel déborde (tel que décrit en 12.2.3) immédiatement. 12.2.2 Débordement d’une File d’Attente à une autre Dans le cas où le temps d’attente estimé dans la File d’Attente cible dépasse une valeur seuil, l’appel déborde vers une autre File d’Attente selon la matrice de configuration métier. Une fois que l’appel est entré dans une File d’Attente, il y reste jusqu’à son traitement par les agents du CRRA. 12.2.3 Débordement d’un GT à l’autre Dans le cas où le temps d’attente estimé avant traitement par le GT cible dépasse une valeur seuil, l’appel déborde vers un autre GT selon la matrice de configuration métier. Si aucun agent n’est connecté dans le GT cible, l’appel déborde immédiatement. \\n', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 2}),\n",
|
27 |
+
" Document(page_content=\" \\n \\n70 12.2.4 Gestion des transferts d’appels internes En distribution dégradée, le bandeau n’est plus disponible. L’utilisateur utilise donc son poste téléphonique afin de réaliser l’ensemble des actions de téléphonie. Cela inclus aussi les transferts vers les autres GT du CRRA. Via les touches d’accès rapides du poste téléphonique, l’agent peut décider vers quel GT il souhaite transférer son appel. Les appels transférés (ex : FO1 è FO2) sont considérés comme des flux entrant de l’algorithme de la section 12.2 et sont traités avec un principe de distribution similaire. 12.2.5 Bascule du mode dégradé au mode nominal une fois le service rétabli Lorsque le service nominal sera rétabli et le bandeau à nouveau utilisable, les nouveaux appels arriveront sur la solution nominale. Cependant, il est nécessaire de finaliser en parallèle le traitement des derniers appels toujours présents dans les FA du mode dégradé. Une procédure co-construite entre les équipes du CRRA et celles du SI-Samu permettra de réaliser un retour vers le service nominal tout en s’assurant que l’ensemble des appels présents dans les files d’attente du mode dégradés ont bien été traités. Le principe consistera à organiser l’activité du CRRA de manière à ce que des agents puissent vider la file d’attente des appels présents dans la solution dégradée en les décrochants puis en les re-transférant vers la solution nominale via un Call Flow nominal (ex : transferts vers le SDA « VIP). Dans le cas où un seul agent est connecté au système, et qu’au moins un appel est toujours présent dans une file d’attente du système dégradé, alors le système bloque la mise en retrait du dernier agent. Cela permet d’assurer le traitement de l’ensemble des appels avant le retour au mode nominal. 12.2.6 Accès à l’annuaire en mode dégradé Les informations indispensables à la poursuite d’activité du CRRA sont enregistrées sur le serveur de résilience, de sorte qu’elles restent consultables lorsque le bandeau SI-SAMU n’est pas opérationnel (en mode dégradé). Les éléments accessibles sont : • les appels entrants des 60 dernières minutes (appels terminés et appels en cours ayant été transférés au moins une fois) : o l'heure de fin de communication, o l'heure du premier décroché de l'appel, o le numéro de l'appelant, o la SDA d’entrée de l’appel, o le dernier agent mis en relation. \\n\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
28 |
+
" Document(page_content=\" \\n \\n71 • Les appels abandonnés des 60 dernières minutes : o l'heure de fin de communication, o l'heure du premier décroché de l’appel, o le numéro de l'appelant, o la SDA d’entrée de l’appel, o le dernier agent mis en relation. • Annuaire du CRRA, actualisé tous les jours à 19h : o le nom de l’onglet favoris du CRRA, o le nom de section de favoris du CRRA, o le libellé court du favori, o le numéro de téléphone. Les données sont mises à jour toutes les trois minutes, de sorte que si la téléphonie passe en mode dégradé, les données du serveur de résilience. 13. Configuration fonctionnelle de SF4 Configuration Périmètre Administration Comptes utilisateurs \\n• GTA \\n• Compétences linguistiques Samu Administrateur local par IHM Mode de distribution des appels par GTA : \\nautomatique ou manuel Samu Administrateur local par IHM Mode de calcul de l’activité téléphonique d’un \\nagent sur la dernière heure (par GTA) Samu Administrateur local par IHM Temps de wrap -up par agent et par type \\nd’appel Samu Administrateur national \\n(par import de fichier) Callflows \\n(Guides vocaux, SVI, flux actifs/inactifs) Samu Administrateur national GTA et salles d’attente Samu Administrateur national \\n(par import de fichier) Paramètre d’un flux : seuil de débordement et \\nparamètres de la fonction d’évolution du poids Samu Administrateur national \\n(par import de fichier) Débordement : \\nflux de débordement pour un flux donné Samu Administrateur national \\n(par import de fichier) Matrice de correspondance entre un indicatif \\ntéléphonique et une langue par défaut National Administrateur national \\n(par import de fichier) Annuaire local du CRRA Samu Administrateur national \\n(par import de fichier) \", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 4})]}"
|
29 |
+
]
|
30 |
+
},
|
31 |
+
"execution_count": 6,
|
32 |
+
"metadata": {},
|
33 |
+
"output_type": "execute_result"
|
34 |
+
}
|
35 |
+
],
|
36 |
+
"source": [
|
37 |
+
"# LOAD\n",
|
38 |
+
"from utils import FILES, load_data, to_full_data\n",
|
39 |
+
"\n",
|
40 |
+
"data = load_data(FILES)\n",
|
41 |
+
"full_data = to_full_data(data)\n",
|
42 |
+
"data"
|
43 |
+
]
|
44 |
+
},
|
45 |
+
{
|
46 |
+
"cell_type": "code",
|
47 |
+
"execution_count": 7,
|
48 |
+
"id": "f55de6f5-26d0-4f7e-8cd6-69f22f4e27a3",
|
49 |
+
"metadata": {},
|
50 |
+
"outputs": [
|
51 |
+
{
|
52 |
+
"data": {
|
53 |
+
"text/plain": [
|
54 |
+
"[Document(page_content='67 12. Fonctionnement en mode dégradé En cas de défaillance du bandeau de communication ou du service de distribution des appels (présenté au chapitre 6) ou d’isolation du site locale (ex : panne d’accès réseau), la brique de téléphonie (ACD de secours du marché M1) prend le relai de la distribution des appels. Dans ce cas, l’ensemble des actions liées à la téléphonie (modification du statut de l’agent, action téléphonique de type transfert, conférence, etc.) se font depuis le téléphone de', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 0}),\n",
|
55 |
+
" Document(page_content='conférence, etc.) se font depuis le téléphone de l’agent, et plus depuis le bandeau, celui-ci étant inactif ou inaccessible.', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 0}),\n",
|
56 |
+
" Document(page_content=\"Figure 4. Vue de l'écran du poste téléphonique avec notamment les touches de modification du statut de l'agent En mode nominal, le poste physique n’est pas prévu pour permettre la modification du retrait de l’agent (le bandeau reste maitre du statut téléphonique de l’agent). Des anomalies ont été identifiées : - un agent qui veut sortir du statut retrait par son téléphone, fait raccrocher l’appel en attente sur le flux de son GTA, s’il est le seul agent de son GTA (SIS-10037 ; évol\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 0}),\n",
|
57 |
+
" Document(page_content='est le seul agent de son GTA (SIS-10037 ; évol SIS-11523).', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 0}),\n",
|
58 |
+
" Document(page_content='68 12.1 Procédure de connexion En mode dégradé, l’agent utilise directement l’écran de son téléphone et le clavier alphanumérique associé pour se connecter Via la fonction « Logon » accessible depuis le menu, l’agent se connecte en entrant son numéro d’agent (qui est son numéro de téléphone interne).', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 1}),\n",
|
59 |
+
" Document(page_content=\"Figure 5. Procédure de connexion - Vue du poste téléphonique lors de la saisie du numéro de l'agent Une fois ceci réalisé, l’agent va alors choisir le Groupe de Traitement (GT) dans lequel il va réguler, parmi la liste des GT disponible. Le GT est l’équivalent, en mode dégradé, du GTA défini en 4.1. La correspondance entre les GTA et les GT est définie en 4.1. \\n Figure 6. Procédure de connexion - Vue du poste téléphonique lors de la sélection du GT\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 1}),\n",
|
60 |
+
" Document(page_content='69 12.2 Mécanisme de distribution Les flux d’appels entrants qu’ils soient des numéros externes (i.e, l’ensemble des SDA régulées par le CRRA) ou internes (ex : transfert FO1 è FO2), sont distribuées vers des Files d’Attente (FA) qui sont elles-mêmes distribuées sur des Groupes de Traitement (GT). Figure 7. Principe de distribution en mode dégradé Lorsqu’un appel arrive dans le système de distribution du mode dégradé (inclus dans la brique OXE), celui-ci, en fonction du numéro appelé', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 2}),\n",
|
61 |
+
" Document(page_content='OXE), celui-ci, en fonction du numéro appelé qu’il soit externe (ex : SDA) ou interne (ex : transfert, voir 12.2.4) est distribué dans une File d’Attente cible (définie par le métier). Les appels dans cette file d’attente sont ensuite distribués selon une règle FIFO (First In First Out) à un GT cible. L’ensemble des règles de distribution (sur les FA et sur les GT) est défini par le métier au sein d’une matrice de configuration ‘ 12.2.1 Distribution d’un appel à un agent au sein d’un GT Une', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 2}),\n",
|
62 |
+
" Document(page_content='d’un appel à un agent au sein d’un GT Une fois qu’il s’est connecté à la solution en mode dégradé, l’utilisateur se trouve dans un Groupe de Traitement (GT) comme précisé en 12.1. L’utilisateur ne reçoit donc alors que des appels qui ciblent son GT (sauf en cas de débordement). Au sein d’un GT, un appel est distribué à l’agent qui, au sein de ce GT est libre depuis le plus longtemps. A la fin de l’appel, l’agent dispose d’un temps de Wrap-Up paramétré à 15 secondes (sauf pour le GT T2 qui a un', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 2}),\n",
|
63 |
+
" Document(page_content='à 15 secondes (sauf pour le GT T2 qui a un temps de 30 secondes). Si aucun agent n’est connecté dans le GT cible, l’appel déborde (tel que décrit en 12.2.3) immédiatement. 12.2.2 Débordement d’une File d’Attente à une autre Dans le cas où le temps d’attente estimé dans la File d’Attente cible dépasse une valeur seuil, l’appel déborde vers une autre File d’Attente selon la matrice de configuration métier. Une fois que l’appel est entré dans une File d’Attente, il y reste jusqu’à son', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 2}),\n",
|
64 |
+
" Document(page_content='dans une File d’Attente, il y reste jusqu’à son traitement par les agents du CRRA. 12.2.3 Débordement d’un GT à l’autre Dans le cas où le temps d’attente estimé avant traitement par le GT cible dépasse une valeur seuil, l’appel déborde vers un autre GT selon la matrice de configuration métier. Si aucun agent n’est connecté dans le GT cible, l’appel déborde immédiatement.', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 2}),\n",
|
65 |
+
" Document(page_content='70 12.2.4 Gestion des transferts d’appels internes En distribution dégradée, le bandeau n’est plus disponible. L’utilisateur utilise donc son poste téléphonique afin de réaliser l’ensemble des actions de téléphonie. Cela inclus aussi les transferts vers les autres GT du CRRA. Via les touches d’accès rapides du poste téléphonique, l’agent peut décider vers quel GT il souhaite transférer son appel. Les appels transférés (ex : FO1 è FO2) sont considérés comme des flux entrant de l’algorithme de', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
66 |
+
" Document(page_content='comme des flux entrant de l’algorithme de la section 12.2 et sont traités avec un principe de distribution similaire. 12.2.5 Bascule du mode dégradé au mode nominal une fois le service rétabli Lorsque le service nominal sera rétabli et le bandeau à nouveau utilisable, les nouveaux appels arriveront sur la solution nominale. Cependant, il est nécessaire de finaliser en parallèle le traitement des derniers appels toujours présents dans les FA du mode dégradé. Une procédure co-construite entre', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
67 |
+
" Document(page_content='mode dégradé. Une procédure co-construite entre les équipes du CRRA et celles du SI-Samu permettra de réaliser un retour vers le service nominal tout en s’assurant que l’ensemble des appels présents dans les files d’attente du mode dégradés ont bien été traités. Le principe consistera à organiser l’activité du CRRA de manière à ce que des agents puissent vider la file d’attente des appels présents dans la solution dégradée en les décrochants puis en les re-transférant vers la solution nominale', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
68 |
+
" Document(page_content='en les re-transférant vers la solution nominale via un Call Flow nominal (ex : transferts vers le SDA « VIP). Dans le cas où un seul agent est connecté au système, et qu’au moins un appel est toujours présent dans une file d’attente du système dégradé, alors le système bloque la mise en retrait du dernier agent. Cela permet d’assurer le traitement de l’ensemble des appels avant le retour au mode nominal. 12.2.6 Accès à l’annuaire en mode dégradé Les informations indispensables à la poursuite', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
69 |
+
" Document(page_content=\"Les informations indispensables à la poursuite d’activité du CRRA sont enregistrées sur le serveur de résilience, de sorte qu’elles restent consultables lorsque le bandeau SI-SAMU n’est pas opérationnel (en mode dégradé). Les éléments accessibles sont : • les appels entrants des 60 dernières minutes (appels terminés et appels en cours ayant été transférés au moins une fois) : o l'heure de fin de communication, o l'heure du premier décroché de l'appel, o le numéro de l'appelant, o la SDA\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
70 |
+
" Document(page_content=\"de l'appel, o le numéro de l'appelant, o la SDA d’entrée de l’appel, o le dernier agent mis en relation.\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 3}),\n",
|
71 |
+
" Document(page_content=\"71 • Les appels abandonnés des 60 dernières minutes : o l'heure de fin de communication, o l'heure du premier décroché de l’appel, o le numéro de l'appelant, o la SDA d’entrée de l’appel, o le dernier agent mis en relation. • Annuaire du CRRA, actualisé tous les jours à 19h : o le nom de l’onglet favoris du CRRA, o le nom de section de favoris du CRRA, o le libellé court du favori, o le numéro de téléphone. Les données sont mises à jour toutes les trois minutes, de sorte que si la téléphonie\", metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 4}),\n",
|
72 |
+
" Document(page_content='les trois minutes, de sorte que si la téléphonie passe en mode dégradé, les données du serveur de résilience. 13. Configuration fonctionnelle de SF4 Configuration Périmètre Administration Comptes utilisateurs', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 4}),\n",
|
73 |
+
" Document(page_content='• GTA \\n• Compétences linguistiques Samu Administrateur local par IHM Mode de distribution des appels par GTA : \\nautomatique ou manuel Samu Administrateur local par IHM Mode de calcul de l’activité téléphonique d’un \\nagent sur la dernière heure (par GTA) Samu Administrateur local par IHM Temps de wrap -up par agent et par type \\nd’appel Samu Administrateur national \\n(par import de fichier) Callflows', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 4}),\n",
|
74 |
+
" Document(page_content='(par import de fichier) Callflows \\n(Guides vocaux, SVI, flux actifs/inactifs) Samu Administrateur national GTA et salles d’attente Samu Administrateur national \\n(par import de fichier) Paramètre d’un flux : seuil de débordement et \\nparamètres de la fonction d’évolution du poids Samu Administrateur national \\n(par import de fichier) Débordement : \\nflux de débordement pour un flux donné Samu Administrateur national', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 4}),\n",
|
75 |
+
" Document(page_content='(par import de fichier) Matrice de correspondance entre un indicatif \\ntéléphonique et une langue par défaut National Administrateur national \\n(par import de fichier) Annuaire local du CRRA Samu Administrateur national \\n(par import de fichier)', metadata={'source': 'resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf', 'page': 4}),\n",
|
76 |
+
" Document(page_content='# Mode secours (aussi appelé mode dégradé) \\n## Passage en mode secours', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Passage en mode secours'}),\n",
|
77 |
+
" Document(page_content=\"## Passage en mode secours\\nVous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Passage en mode secours'}),\n",
|
78 |
+
" Document(page_content='## Réaction du SAMU au passage en mode secours', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Réaction du SAMU au passage en mode secours'}),\n",
|
79 |
+
" Document(page_content=\"Lorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Réaction du SAMU au passage en mode secours'}),\n",
|
80 |
+
" Document(page_content='## Retour au mode nominal (fin du mode secours)', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Retour au mode nominal (fin du mode secours)'}),\n",
|
81 |
+
" Document(page_content=\"Il vous guide également pas à pas lors de la phase de retour au mode nominal. Lorsque le bandeau de communication SI-SAMU est rétabli, le support N3 demande à certains agents de se reconnecter sur le bandeau tandis que les autres restent en mode secours. Lorsque le support N3 le demande les agents en mode de secours utilisent la touche F2 pour transférer les appels au bandeau. Ces transferts sont non accompagnés. La touche F2 est programmée pour appeler le numéro VIP du SAMU. L'appel apparaît\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Retour au mode nominal (fin du mode secours)'}),\n",
|
82 |
+
" Document(page_content=\"appeler le numéro VIP du SAMU. L'appel apparaît alors sur le bandeau de communication SI-SAMU dans la salle d'attente recevant les appels VIP avec un logo VIP.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Retour au mode nominal (fin du mode secours)'}),\n",
|
83 |
+
" Document(page_content=\"## Continuité des appels téléphonique\\nSur le téléphone, je vois que la communication est toujours en cours. Je vois le numéro de l'appelant par exemple. Lorsque vous ferez le test de fonctionnement en mode secours, vous verrez sur le téléphone qui vous a servi à appeler le SAMU que l'appel est également toujours en cours.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Continuité des appels téléphonique'}),\n",
|
84 |
+
" Document(page_content=\"## Appels en attente\\nLe voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Appels en attente'}),\n",
|
85 |
+
" Document(page_content='## Transferts \\n### Transférer un appel', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Transferts', 'Titre 3': 'Transférer un appel'}),\n",
|
86 |
+
" Document(page_content=\"Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Transferts', 'Titre 3': 'Transférer un appel'}),\n",
|
87 |
+
" Document(page_content=\"une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Transferts', 'Titre 3': 'Transférer un appel'}),\n",
|
88 |
+
" Document(page_content=\"### Réceptionner un appel transféré\\nSur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Transferts', 'Titre 3': 'Réceptionner un appel transféré'}),\n",
|
89 |
+
" Document(page_content=\"### Transfert accompagné\\nVous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui.\\n- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Transferts', 'Titre 3': 'Transfert accompagné'}),\n",
|
90 |
+
" Document(page_content=\"- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication.\\n- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Transferts', 'Titre 3': 'Transfert accompagné'}),\n",
|
91 |
+
" Document(page_content=\"## Décrocher\\nEn mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Décrocher'}),\n",
|
92 |
+
" Document(page_content='## Wrap-up et retrait\\nComme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors.', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Wrap-up et retrait'}),\n",
|
93 |
+
" Document(page_content=\"## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\\nSi vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': \"Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\"}),\n",
|
94 |
+
" Document(page_content=\"Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': \"Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\"}),\n",
|
95 |
+
" Document(page_content='## Conclusion', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Conclusion'}),\n",
|
96 |
+
" Document(page_content=\"Vous êtes maintenant prêt à utiliser la téléphonie en mode secours. Vous savez maintenant reconnaître le passage en mode secours, vérifier qu'un appel est en cours, qu'un appel est en attente, transférer un appel sans l'accompagner ou en l'accompagnant et en faisant une conférence téléphonique, passer en wrap-up ou en retrait, vous déloguer de la téléphonie ou vous connecter et choisir votre groupe de traitement d'appel. Vous savez également utiliser la touche F2 pour transférer les appels\", metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Conclusion'}),\n",
|
97 |
+
" Document(page_content='utiliser la touche F2 pour transférer les appels présents sur le mode de secours vers le bandeau de communication SI-SAMU lorsque le système est rétabli.', metadata={'Titre 1': 'Mode secours (aussi appelé mode dégradé)', 'Titre 2': 'Conclusion'})]"
|
98 |
+
]
|
99 |
+
},
|
100 |
+
"execution_count": 7,
|
101 |
+
"metadata": {},
|
102 |
+
"output_type": "execute_result"
|
103 |
+
}
|
104 |
+
],
|
105 |
+
"source": [
|
106 |
+
"# SPLIT\n",
|
107 |
+
"from utils import split_MD_then_recursive\n",
|
108 |
+
"\n",
|
109 |
+
"all_splits = split_MD_then_recursive(data)\n",
|
110 |
+
"all_splits"
|
111 |
+
]
|
112 |
+
},
|
113 |
+
{
|
114 |
+
"cell_type": "code",
|
115 |
+
"execution_count": 8,
|
116 |
+
"id": "3de7c523-e375-4a34-97e4-e3c2e7be73c8",
|
117 |
+
"metadata": {},
|
118 |
+
"outputs": [],
|
119 |
+
"source": [
|
120 |
+
"# EMBED\n",
|
121 |
+
"# Find the relevant splits to then submit those to the model\n",
|
122 |
+
"# -> Create embeddings and store them in a vector database\n",
|
123 |
+
"# -> Use Ollama directly to instantiate an embedding model (ChromaDB here for a vector database)\n",
|
124 |
+
"from langchain_community.embeddings import HuggingFaceInferenceAPIEmbeddings\n",
|
125 |
+
"from langchain_openai import OpenAIEmbeddings\n",
|
126 |
+
"import os\n",
|
127 |
+
"\n",
|
128 |
+
"# HuggingFaceInference | Ref.: https://python.langchain.com/docs/integrations/text_embedding/huggingfacehub#hugging-face-inference-api\n",
|
129 |
+
"inference_embeddings = HuggingFaceInferenceAPIEmbeddings(\n",
|
130 |
+
" api_key=os.environ['HUGGINGFACEHUB_API_TOKEN'], \n",
|
131 |
+
" # Good French embedding but doesn't work... | Ref.: https://huggingface.co/dangvantuan/sentence-camembert-large\n",
|
132 |
+
" model_name=\"thenlper/gte-large\" \n",
|
133 |
+
" # \"thenlper/gte-large\", \"sentence-transformers/stsb-xlm-r-multilingual\", \"sentence-transformers/all-MiniLM-l6-v2\", \"dangvantuan/sentence-camembert-large\"\n",
|
134 |
+
")\n",
|
135 |
+
"\n",
|
136 |
+
"# OpenAI ADA\n",
|
137 |
+
"openai_embeddings = OpenAIEmbeddings()"
|
138 |
+
]
|
139 |
+
},
|
140 |
+
{
|
141 |
+
"cell_type": "code",
|
142 |
+
"execution_count": 9,
|
143 |
+
"id": "5cb53666-96f5-49d6-9dc4-b041ffa3904e",
|
144 |
+
"metadata": {},
|
145 |
+
"outputs": [],
|
146 |
+
"source": [
|
147 |
+
"# RETRIEVE\n",
|
148 |
+
"from utils import get_parent_ensemble_retriever"
|
149 |
+
]
|
150 |
+
},
|
151 |
+
{
|
152 |
+
"cell_type": "code",
|
153 |
+
"execution_count": 28,
|
154 |
+
"id": "9724a404-e894-4d40-8a00-6a9670f90941",
|
155 |
+
"metadata": {},
|
156 |
+
"outputs": [],
|
157 |
+
"source": [
|
158 |
+
"# PROMPT\n",
|
159 |
+
"from utils import PROMPT"
|
160 |
+
]
|
161 |
+
},
|
162 |
+
{
|
163 |
+
"cell_type": "code",
|
164 |
+
"execution_count": 31,
|
165 |
+
"id": "f2802b6e-3e4d-4c49-be4e-87ca6a95cfcb",
|
166 |
+
"metadata": {},
|
167 |
+
"outputs": [],
|
168 |
+
"source": [
|
169 |
+
"# LLM\n",
|
170 |
+
"# Ref.: https://python.langchain.com/docs/integrations/platforms/openai\n",
|
171 |
+
"from langchain_openai import ChatOpenAI, OpenAI\n",
|
172 |
+
"\n",
|
173 |
+
"# OpenAI | Ref.: https://python.langchain.com/docs/integrations/llms/openai\n",
|
174 |
+
"# Pricing | Ref.: https://openai.com/pricing#language-models\n",
|
175 |
+
"gpt35_chat = ChatOpenAI(model_name=\"gpt-3.5-turbo-1106\", temperature=0)\n",
|
176 |
+
"gpt4turbo_chat = ChatOpenAI(model_name=\"gpt-4-1106-preview\", temperature=0)\n",
|
177 |
+
"# print(LLMChain(prompt=prompt, llm=gpt35_chat).run(question))\n",
|
178 |
+
"# print(LLMChain(prompt=prompt, llm=gpt4turbo_chat).run(question))\n",
|
179 |
+
"gpt35 = OpenAI(model_name=\"gpt-3.5-turbo-1106\")\n",
|
180 |
+
"gpt4turbo = OpenAI(model_name=\"gpt-4-1106-preview\")\n",
|
181 |
+
"\n",
|
182 |
+
"# Ollama\n",
|
183 |
+
"from utils import mistral, mixtral, llama2, MIXTRAL, MISTRAL, LLAMA2"
|
184 |
+
]
|
185 |
+
},
|
186 |
+
{
|
187 |
+
"cell_type": "code",
|
188 |
+
"execution_count": 32,
|
189 |
+
"id": "6b4fe368-b20c-4bf6-a955-162134df808f",
|
190 |
+
"metadata": {},
|
191 |
+
"outputs": [],
|
192 |
+
"source": [
|
193 |
+
"# PARAMS\n",
|
194 |
+
"llm = mistral\n",
|
195 |
+
"embeddings = openai_embeddings # openai_embeddings, inference_embeddings\n",
|
196 |
+
"k = 5\n",
|
197 |
+
"retriever = get_parent_ensemble_retriever(\n",
|
198 |
+
" embeddings, \n",
|
199 |
+
" full_data, \n",
|
200 |
+
" all_splits,\n",
|
201 |
+
" k, \n",
|
202 |
+
" 2000, \n",
|
203 |
+
" 400, \n",
|
204 |
+
" \"ada-store\"\n",
|
205 |
+
")"
|
206 |
+
]
|
207 |
+
},
|
208 |
+
{
|
209 |
+
"cell_type": "code",
|
210 |
+
"execution_count": 33,
|
211 |
+
"id": "4043f588-5d77-4087-b5fd-83ac207a8f76",
|
212 |
+
"metadata": {},
|
213 |
+
"outputs": [],
|
214 |
+
"source": [
|
215 |
+
"from langchain.chains import RetrievalQA\n",
|
216 |
+
"\n",
|
217 |
+
"qachain = RetrievalQA.from_chain_type(\n",
|
218 |
+
" llm=llm, \n",
|
219 |
+
" retriever=retriever,\n",
|
220 |
+
" return_source_documents=True,\n",
|
221 |
+
" verbose=True,\n",
|
222 |
+
" chain_type_kwargs={\"prompt\": PROMPT}\n",
|
223 |
+
")"
|
224 |
+
]
|
225 |
+
},
|
226 |
+
{
|
227 |
+
"cell_type": "code",
|
228 |
+
"execution_count": 34,
|
229 |
+
"id": "cc965679-2b5d-4e25-a062-642dd8034863",
|
230 |
+
"metadata": {},
|
231 |
+
"outputs": [],
|
232 |
+
"source": [
|
233 |
+
"def answer_queries(qachain):\n",
|
234 |
+
" answers = []\n",
|
235 |
+
" for query in [\n",
|
236 |
+
" \"Comment faire pour me connecter ?\",\n",
|
237 |
+
" \"Comment savoir si j'ai des appels en attente ?\",\n",
|
238 |
+
" \"Comment faire un transfert accompagné ?\",\n",
|
239 |
+
" \"Quel est mon mot de passe pour me connecter au téléphone ?\",\n",
|
240 |
+
" \"Dois-je déconnecter mes T2 ?\",\n",
|
241 |
+
" \"Quelle est la météo aujourd'hui ?\",\n",
|
242 |
+
" \"Quelle est la hauteur de la tour Eiffel ?\"\n",
|
243 |
+
" ]:\n",
|
244 |
+
" answer = qachain({\"query\": query})\n",
|
245 |
+
" answers.append(answer)\n",
|
246 |
+
" print(f\">> {query}\\n>> {answer['result']}\\n\\n\")\n",
|
247 |
+
" return answers"
|
248 |
+
]
|
249 |
+
},
|
250 |
+
{
|
251 |
+
"cell_type": "code",
|
252 |
+
"execution_count": 35,
|
253 |
+
"id": "b1d968f0-4e55-449f-a7f5-658e743ef9a5",
|
254 |
+
"metadata": {},
|
255 |
+
"outputs": [
|
256 |
+
{
|
257 |
+
"name": "stdout",
|
258 |
+
"output_type": "stream",
|
259 |
+
"text": [
|
260 |
+
"\n",
|
261 |
+
"\n",
|
262 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
263 |
+
" Pour se connecter au téléphone, vous devez appuyer sur le bouton \"logon\". Ensuite, saissez votre identifiant de téléphonie personnel qui commence par le chiffre 2 suivi du numéro de votre département. Saisissez ensuite quatre fois zéro quand un mot de passe est demandé sur le téléphone. Enfin, choisissez votre Groupe de Traitement d'Appel (GTA) en utilisant les flèches de navigation du clavier.\n",
|
264 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
265 |
+
">> Comment faire pour me connecter ?\n",
|
266 |
+
">> Pour se connecter au téléphone, vous devez appuyer sur le bouton \"logon\". Ensuite, saissez votre identifiant de téléphonie personnel qui commence par le chiffre 2 suivi du numéro de votre département. Saisissez ensuite quatre fois zéro quand un mot de passe est demandé sur le téléphone. Enfin, choisissez votre Groupe de Traitement d'Appel (GTA) en utilisant les flèches de navigation du clavier.\n",
|
267 |
+
"\n",
|
268 |
+
"\n",
|
269 |
+
"\n",
|
270 |
+
"\n",
|
271 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
272 |
+
" Vous pouvez savoir si vous avez des appels en attente en regardant le voyant orange en haut à gauche du clavier ou en appuyant sur le bouton d'état FA (état de la file d'attente). Si un appel est en attente, vous verrez ce fait indiqué.\n",
|
273 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
274 |
+
">> Comment savoir si j'ai des appels en attente ?\n",
|
275 |
+
">> Vous pouvez savoir si vous avez des appels en attente en regardant le voyant orange en haut à gauche du clavier ou en appuyant sur le bouton d'état FA (état de la file d'attente). Si un appel est en attente, vous verrez ce fait indiqué.\n",
|
276 |
+
"\n",
|
277 |
+
"\n",
|
278 |
+
"\n",
|
279 |
+
"\n",
|
280 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
281 |
+
" Pour faire un transfert accompagné, vous devez suivre ces étapes :\n",
|
282 |
+
"1. Cliquez sur \"nouvel appel\" pour initier le transfert.\n",
|
283 |
+
"2. Composez le numéro du destinataire ou choisissez une salle d'attente en attendant qu'il décroche.\n",
|
284 |
+
"3. Une fois qu'il a décroché, vous êtes maintenant en communication avec lui.\n",
|
285 |
+
"4. Pour ajouter un tiers à la conversation, cliquez sur le bouton \"conférence\" et appuyez sur le numéro de l'appelant que vous souhaitez ajouter.\n",
|
286 |
+
"5. Ensuite, pour quitter la conférence et laisser les deux parties continuer leur communication seules, cliquez sur le bouton \"transfert\".\n",
|
287 |
+
"6. Si vous souhaitez terminer la conférence et rester seul avec l'appelant, appuyez sur le bouton \"fin de conférence\".\n",
|
288 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
289 |
+
">> Comment faire un transfert accompagné ?\n",
|
290 |
+
">> Pour faire un transfert accompagné, vous devez suivre ces étapes :\n",
|
291 |
+
"1. Cliquez sur \"nouvel appel\" pour initier le transfert.\n",
|
292 |
+
"2. Composez le numéro du destinataire ou choisissez une salle d'attente en attendant qu'il décroche.\n",
|
293 |
+
"3. Une fois qu'il a décroché, vous êtes maintenant en communication avec lui.\n",
|
294 |
+
"4. Pour ajouter un tiers à la conversation, cliquez sur le bouton \"conférence\" et appuyez sur le numéro de l'appelant que vous souhaitez ajouter.\n",
|
295 |
+
"5. Ensuite, pour quitter la conférence et laisser les deux parties continuer leur communication seules, cliquez sur le bouton \"transfert\".\n",
|
296 |
+
"6. Si vous souhaitez terminer la conférence et rester seul avec l'appelant, appuyez sur le bouton \"fin de conférence\".\n",
|
297 |
+
"\n",
|
298 |
+
"\n",
|
299 |
+
"\n",
|
300 |
+
"\n",
|
301 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
302 |
+
" Dans le contexte fourni, pour se connecter au téléphone, il n'y a pas besoin d'utiliser un mot de passe personnel. Vous devez saisir votre identifiant de téléphonie personnel qui commence par le chiffre 2 suivi du numéro de votre département. Ensuite, saisissez quatre fois zéro quand un mot de passe est demandé sur le téléphone. Par conséquent, il n'y a pas de réponse exacte à la question posée.\n",
|
303 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
304 |
+
">> Quel est mon mot de passe pour me connecter au téléphone ?\n",
|
305 |
+
">> Dans le contexte fourni, pour se connecter au téléphone, il n'y a pas besoin d'utiliser un mot de passe personnel. Vous devez saisir votre identifiant de téléphonie personnel qui commence par le chiffre 2 suivi du numéro de votre département. Ensuite, saisissez quatre fois zéro quand un mot de passe est demandé sur le téléphone. Par conséquent, il n'y a pas de réponse exacte à la question posée.\n",
|
306 |
+
"\n",
|
307 |
+
"\n",
|
308 |
+
"\n",
|
309 |
+
"\n",
|
310 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
311 |
+
" Non, vous ne devez pas déconnecter vos T2 (agents) lors du passage en mode secours. Le support N3 de l'Agence du numérique en santé va vous guider à chaque étape et demandera certains agents de se réconnecter sur le bandeau une fois que le système est rétabli. Les autres agents restent en mode secours et utilisent la touche F2 pour transférer les appels au bandeau, ce qui sont des transferts non accompagnés vers le numéro VIP du SAMU.\n",
|
312 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
313 |
+
">> Dois-je déconnecter mes T2 ?\n",
|
314 |
+
">> Non, vous ne devez pas déconnecter vos T2 (agents) lors du passage en mode secours. Le support N3 de l'Agence du numérique en santé va vous guider à chaque étape et demandera certains agents de se réconnecter sur le bandeau une fois que le système est rétabli. Les autres agents restent en mode secours et utilisent la touche F2 pour transférer les appels au bandeau, ce qui sont des transferts non accompagnés vers le numéro VIP du SAMU.\n",
|
315 |
+
"\n",
|
316 |
+
"\n",
|
317 |
+
"\n",
|
318 |
+
"\n",
|
319 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
320 |
+
" Je suis désolé, mon poste téléphonique ne dispose pas de fonctionnalité pour vous donner l'information sur la météo actuelle. Vous pouvez utiliser une source d'information météorologique en ligne ou sur votre smartphone pour obtenir cette information.\n",
|
321 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
322 |
+
">> Quelle est la météo aujourd'hui ?\n",
|
323 |
+
">> Je suis désolé, mon poste téléphonique ne dispose pas de fonctionnalité pour vous donner l'information sur la météo actuelle. Vous pouvez utiliser une source d'information météorologique en ligne ou sur votre smartphone pour obtenir cette information.\n",
|
324 |
+
"\n",
|
325 |
+
"\n",
|
326 |
+
"\n",
|
327 |
+
"\n",
|
328 |
+
"\u001b[1m> Entering new RetrievalQA chain...\u001b[0m\n",
|
329 |
+
" Je suis désolé, mais je ne peux pas répondre directement à votre question car notre conversation actuelle concerne uniquement le fonctionnement du système de téléphonie de secours SI-SAMU. Cependant, pour répondre à votre question, la hauteur de la tour Eiffel est de 324 mètres (1 063 pieds).\n",
|
330 |
+
"\u001b[1m> Finished chain.\u001b[0m\n",
|
331 |
+
">> Quelle est la hauteur de la tour Eiffel ?\n",
|
332 |
+
">> Je suis désolé, mais je ne peux pas répondre directement à votre question car notre conversation actuelle concerne uniquement le fonctionnement du système de téléphonie de secours SI-SAMU. Cependant, pour répondre à votre question, la hauteur de la tour Eiffel est de 324 mètres (1 063 pieds).\n",
|
333 |
+
"\n",
|
334 |
+
"\n"
|
335 |
+
]
|
336 |
+
}
|
337 |
+
],
|
338 |
+
"source": [
|
339 |
+
"answers = answer_queries(qachain)"
|
340 |
+
]
|
341 |
+
},
|
342 |
+
{
|
343 |
+
"cell_type": "code",
|
344 |
+
"execution_count": 36,
|
345 |
+
"id": "9b976ef6-919b-45fd-9dcc-156518e5cfd4",
|
346 |
+
"metadata": {},
|
347 |
+
"outputs": [
|
348 |
+
{
|
349 |
+
"name": "stdout",
|
350 |
+
"output_type": "stream",
|
351 |
+
"text": [
|
352 |
+
">> Comment faire pour me connecter ?\n",
|
353 |
+
">> Pour se connecter au téléphone, vous devez appuyer sur le bouton \"logon\". Ensuite, saissez votre identifiant de téléphonie personnel qui commence par le chiffre 2 suivi du numéro de votre département. Saisissez ensuite quatre fois zéro quand un mot de passe est demandé sur le téléphone. Enfin, choisissez votre Groupe de Traitement d'Appel (GTA) en utilisant les flèches de navigation du clavier.\n",
|
354 |
+
">> Sources :\n",
|
355 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transfert accompagné [B25]\u001b[0m: ### Transfert accompagné\n",
|
356 |
+
"Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui.\n",
|
357 |
+
"- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence.\n",
|
358 |
+
"---\n",
|
359 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ### Transfert accompagné\n",
|
360 |
+
"Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui. \n",
|
361 |
+
"- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence. \n",
|
362 |
+
"- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication. \n",
|
363 |
+
"- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\n",
|
364 |
+
"\n",
|
365 |
+
"## Décrocher\n",
|
366 |
+
"En mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque. \n",
|
367 |
+
"\n",
|
368 |
+
"## Wrap-up et retrait\n",
|
369 |
+
"Comme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors. \n",
|
370 |
+
"\n",
|
371 |
+
"## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\n",
|
372 |
+
"Si vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off. \n",
|
373 |
+
"Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\n",
|
374 |
+
"---\n",
|
375 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 1) [B25]\u001b[0m: 68 12.1 Procédure de connexion En mode dégradé, l’agent utilise directement l’écran de son téléphone et le clavier alphanumérique associé pour se connecter Via la fonction « Logon » accessible depuis le menu, l’agent se connecte en entrant son numéro d’agent (qui est son numéro de téléphone interne).\n",
|
376 |
+
"---\n",
|
377 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transférer un appel [B25]\u001b[0m: Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur\n",
|
378 |
+
"---\n",
|
379 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA) [B25]\u001b[0m: Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\n",
|
380 |
+
"---\n",
|
381 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Conclusion [B25]\u001b[0m: Vous êtes maintenant prêt à utiliser la téléphonie en mode secours. Vous savez maintenant reconnaître le passage en mode secours, vérifier qu'un appel est en cours, qu'un appel est en attente, transférer un appel sans l'accompagner ou en l'accompagnant et en faisant une conférence téléphonique, passer en wrap-up ou en retrait, vous déloguer de la téléphonie ou vous connecter et choisir votre groupe de traitement d'appel. Vous savez également utiliser la touche F2 pour transférer les appels\n",
|
382 |
+
"---\n",
|
383 |
+
"--------\n",
|
384 |
+
"\n",
|
385 |
+
"\n",
|
386 |
+
">> Comment savoir si j'ai des appels en attente ?\n",
|
387 |
+
">> Vous pouvez savoir si vous avez des appels en attente en regardant le voyant orange en haut à gauche du clavier ou en appuyant sur le bouton d'état FA (état de la file d'attente). Si un appel est en attente, vous verrez ce fait indiqué.\n",
|
388 |
+
">> Sources :\n",
|
389 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Appels en attente [B25]\u001b[0m: ## Appels en attente\n",
|
390 |
+
"Le voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.\n",
|
391 |
+
"---\n",
|
392 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ## Continuité des appels téléphonique\n",
|
393 |
+
"Sur le téléphone, je vois que la communication est toujours en cours. Je vois le numéro de l'appelant par exemple. Lorsque vous ferez le test de fonctionnement en mode secours, vous verrez sur le téléphone qui vous a servi à appeler le SAMU que l'appel est également toujours en cours. \n",
|
394 |
+
"\n",
|
395 |
+
"## Appels en attente\n",
|
396 |
+
"Le voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.\n",
|
397 |
+
"\n",
|
398 |
+
"## Transferts\n",
|
399 |
+
"### Transférer un appel\n",
|
400 |
+
"Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.\n",
|
401 |
+
"\n",
|
402 |
+
"### Réceptionner un appel transféré\n",
|
403 |
+
"Sur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé.\n",
|
404 |
+
"---\n",
|
405 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 4) [B25]\u001b[0m: les trois minutes, de sorte que si la téléphonie passe en mode dégradé, les données du serveur de résilience. 13. Configuration fonctionnelle de SF4 Configuration Périmètre Administration Comptes utilisateurs\n",
|
406 |
+
"---\n",
|
407 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Réceptionner un appel transféré [B25]\u001b[0m: ### Réceptionner un appel transféré\n",
|
408 |
+
"Sur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé.\n",
|
409 |
+
"---\n",
|
410 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 4) [B25]\u001b[0m: 71 • Les appels abandonnés des 60 dernières minutes : o l'heure de fin de communication, o l'heure du premier décroché de l’appel, o le numéro de l'appelant, o la SDA d’entrée de l’appel, o le dernier agent mis en relation. • Annuaire du CRRA, actualisé tous les jours à 19h : o le nom de l’onglet favoris du CRRA, o le nom de section de favoris du CRRA, o le libellé court du favori, o le numéro de téléphone. Les données sont mises à jour toutes les trois minutes, de sorte que si la téléphonie\n",
|
411 |
+
"---\n",
|
412 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 3) [B25]\u001b[0m: mode dégradé. Une procédure co-construite entre les équipes du CRRA et celles du SI-Samu permettra de réaliser un retour vers le service nominal tout en s’assurant que l’ensemble des appels présents dans les files d’attente du mode dégradés ont bien été traités. Le principe consistera à organiser l’activité du CRRA de manière à ce que des agents puissent vider la file d’attente des appels présents dans la solution dégradée en les décrochants puis en les re-transférant vers la solution nominale\n",
|
413 |
+
"---\n",
|
414 |
+
"--------\n",
|
415 |
+
"\n",
|
416 |
+
"\n",
|
417 |
+
">> Comment faire un transfert accompagné ?\n",
|
418 |
+
">> Pour faire un transfert accompagné, vous devez suivre ces étapes :\n",
|
419 |
+
"1. Cliquez sur \"nouvel appel\" pour initier le transfert.\n",
|
420 |
+
"2. Composez le numéro du destinataire ou choisissez une salle d'attente en attendant qu'il décroche.\n",
|
421 |
+
"3. Une fois qu'il a décroché, vous êtes maintenant en communication avec lui.\n",
|
422 |
+
"4. Pour ajouter un tiers à la conversation, cliquez sur le bouton \"conférence\" et appuyez sur le numéro de l'appelant que vous souhaitez ajouter.\n",
|
423 |
+
"5. Ensuite, pour quitter la conférence et laisser les deux parties continuer leur communication seules, cliquez sur le bouton \"transfert\".\n",
|
424 |
+
"6. Si vous souhaitez terminer la conférence et rester seul avec l'appelant, appuyez sur le bouton \"fin de conférence\".\n",
|
425 |
+
">> Sources :\n",
|
426 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transfert accompagné [B25]\u001b[0m: ### Transfert accompagné\n",
|
427 |
+
"Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui.\n",
|
428 |
+
"- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence.\n",
|
429 |
+
"---\n",
|
430 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ### Transfert accompagné\n",
|
431 |
+
"Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui. \n",
|
432 |
+
"- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence. \n",
|
433 |
+
"- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication. \n",
|
434 |
+
"- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\n",
|
435 |
+
"\n",
|
436 |
+
"## Décrocher\n",
|
437 |
+
"En mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque. \n",
|
438 |
+
"\n",
|
439 |
+
"## Wrap-up et retrait\n",
|
440 |
+
"Comme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors. \n",
|
441 |
+
"\n",
|
442 |
+
"## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\n",
|
443 |
+
"Si vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off. \n",
|
444 |
+
"Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\n",
|
445 |
+
"---\n",
|
446 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transférer un appel [B25]\u001b[0m: une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.\n",
|
447 |
+
"---\n",
|
448 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transférer un appel [B25]\u001b[0m: Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur\n",
|
449 |
+
"---\n",
|
450 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 2) [B25]\u001b[0m: 69 12.2 Mécanisme de distribution Les flux d’appels entrants qu’ils soient des numéros externes (i.e, l’ensemble des SDA régulées par le CRRA) ou internes (ex : transfert FO1 è FO2), sont distribuées vers des Files d’Attente (FA) qui sont elles-mêmes distribuées sur des Groupes de Traitement (GT). Figure 7. Principe de distribution en mode dégradé Lorsqu’un appel arrive dans le système de distribution du mode dégradé (inclus dans la brique OXE), celui-ci, en fonction du numéro appelé\n",
|
451 |
+
"---\n",
|
452 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transférer un appel [B25]\u001b[0m: ## Transferts \n",
|
453 |
+
"### Transférer un appel\n",
|
454 |
+
"---\n",
|
455 |
+
"--------\n",
|
456 |
+
"\n",
|
457 |
+
"\n",
|
458 |
+
">> Quel est mon mot de passe pour me connecter au téléphone ?\n",
|
459 |
+
">> Dans le contexte fourni, pour se connecter au téléphone, il n'y a pas besoin d'utiliser un mot de passe personnel. Vous devez saisir votre identifiant de téléphonie personnel qui commence par le chiffre 2 suivi du numéro de votre département. Ensuite, saisissez quatre fois zéro quand un mot de passe est demandé sur le téléphone. Par conséquent, il n'y a pas de réponse exacte à la question posée.\n",
|
460 |
+
">> Sources :\n",
|
461 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA) [B25]\u001b[0m: Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\n",
|
462 |
+
"---\n",
|
463 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ### Transfert accompagné\n",
|
464 |
+
"Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui. \n",
|
465 |
+
"- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence. \n",
|
466 |
+
"- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication. \n",
|
467 |
+
"- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\n",
|
468 |
+
"\n",
|
469 |
+
"## Décrocher\n",
|
470 |
+
"En mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque. \n",
|
471 |
+
"\n",
|
472 |
+
"## Wrap-up et retrait\n",
|
473 |
+
"Comme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors. \n",
|
474 |
+
"\n",
|
475 |
+
"## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\n",
|
476 |
+
"Si vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off. \n",
|
477 |
+
"Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\n",
|
478 |
+
"---\n",
|
479 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 1) [B25]\u001b[0m: 68 12.1 Procédure de connexion En mode dégradé, l’agent utilise directement l’écran de son téléphone et le clavier alphanumérique associé pour se connecter Via la fonction « Logon » accessible depuis le menu, l’agent se connecte en entrant son numéro d’agent (qui est son numéro de téléphone interne).\n",
|
480 |
+
"---\n",
|
481 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transférer un appel [B25]\u001b[0m: Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur\n",
|
482 |
+
"---\n",
|
483 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 4) [B25]\u001b[0m: les trois minutes, de sorte que si la téléphonie passe en mode dégradé, les données du serveur de résilience. 13. Configuration fonctionnelle de SF4 Configuration Périmètre Administration Comptes utilisateurs\n",
|
484 |
+
"---\n",
|
485 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Réaction du SAMU au passage en mode secours [B25]\u001b[0m: Lorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours.\n",
|
486 |
+
"---\n",
|
487 |
+
"--------\n",
|
488 |
+
"\n",
|
489 |
+
"\n",
|
490 |
+
">> Dois-je déconnecter mes T2 ?\n",
|
491 |
+
">> Non, vous ne devez pas déconnecter vos T2 (agents) lors du passage en mode secours. Le support N3 de l'Agence du numérique en santé va vous guider à chaque étape et demandera certains agents de se réconnecter sur le bandeau une fois que le système est rétabli. Les autres agents restent en mode secours et utilisent la touche F2 pour transférer les appels au bandeau, ce qui sont des transferts non accompagnés vers le numéro VIP du SAMU.\n",
|
492 |
+
">> Sources :\n",
|
493 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ## Conclusion\n",
|
494 |
+
"Vous êtes maintenant prêt à utiliser la téléphonie en mode secours. Vous savez maintenant reconnaître le passage en mode secours, vérifier qu'un appel est en cours, qu'un appel est en attente, transférer un appel sans l'accompagner ou en l'accompagnant et en faisant une conférence téléphonique, passer en wrap-up ou en retrait, vous déloguer de la téléphonie ou vous connecter et choisir votre groupe de traitement d'appel. Vous savez également utiliser la touche F2 pour transférer les appels présents sur le mode de secours vers le bandeau de communication SI-SAMU lorsque le système est rétabli.\n",
|
495 |
+
"---\n",
|
496 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 2) [B25]\u001b[0m: à 15 secondes (sauf pour le GT T2 qui a un temps de 30 secondes). Si aucun agent n’est connecté dans le GT cible, l’appel déborde (tel que décrit en 12.2.3) immédiatement. 12.2.2 Débordement d’une File d’Attente à une autre Dans le cas où le temps d’attente estimé dans la File d’Attente cible dépasse une valeur seuil, l’appel déborde vers une autre File d’Attente selon la matrice de configuration métier. Une fois que l’appel est entré dans une File d’Attente, il y reste jusqu’à son\n",
|
497 |
+
"---\n",
|
498 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: # Mode secours (aussi appelé mode dégradé)\n",
|
499 |
+
"## Passage en mode secours\n",
|
500 |
+
"Vous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau. \n",
|
501 |
+
"\n",
|
502 |
+
"## Réaction du SAMU au passage en mode secours\n",
|
503 |
+
"Lorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours. \n",
|
504 |
+
"\n",
|
505 |
+
"## Retour au mode nominal (fin du mode secours)\n",
|
506 |
+
"Il vous guide également pas à pas lors de la phase de retour au mode nominal. Lorsque le bandeau de communication SI-SAMU est rétabli, le support N3 demande à certains agents de se reconnecter sur le bandeau tandis que les autres restent en mode secours. Lorsque le support N3 le demande les agents en mode de secours utilisent la touche F2 pour transférer les appels au bandeau. Ces transferts sont non accompagnés. La touche F2 est programmée pour appeler le numéro VIP du SAMU. L'appel apparaît alors sur le bandeau de communication SI-SAMU dans la salle d'attente recevant les appels VIP avec un logo VIP.\n",
|
507 |
+
"---\n",
|
508 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 2) [B25]\u001b[0m: d’un appel à un agent au sein d’un GT Une fois qu’il s’est connecté à la solution en mode dégradé, l’utilisateur se trouve dans un Groupe de Traitement (GT) comme précisé en 12.1. L’utilisateur ne reçoit donc alors que des appels qui ciblent son GT (sauf en cas de débordement). Au sein d’un GT, un appel est distribué à l’agent qui, au sein de ce GT est libre depuis le plus longtemps. A la fin de l’appel, l’agent dispose d’un temps de Wrap-Up paramétré à 15 secondes (sauf pour le GT T2 qui a un\n",
|
509 |
+
"---\n",
|
510 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Conclusion [B25]\u001b[0m: utiliser la touche F2 pour transférer les appels présents sur le mode de secours vers le bandeau de communication SI-SAMU lorsque le système est rétabli.\n",
|
511 |
+
"---\n",
|
512 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 3) [B25]\u001b[0m: 70 12.2.4 Gestion des transferts d’appels internes En distribution dégradée, le bandeau n’est plus disponible. L’utilisateur utilise donc son poste téléphonique afin de réaliser l’ensemble des actions de téléphonie. Cela inclus aussi les transferts vers les autres GT du CRRA. Via les touches d’accès rapides du poste téléphonique, l’agent peut décider vers quel GT il souhaite transférer son appel. Les appels transférés (ex : FO1 è FO2) sont considérés comme des flux entrant de l’algorithme de\n",
|
513 |
+
"---\n",
|
514 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 4) [B25]\u001b[0m: • GTA \n",
|
515 |
+
"• Compétences linguistiques Samu Administrateur local par IHM Mode de distribution des appels par GTA : \n",
|
516 |
+
"automatique ou manuel Samu Administrateur local par IHM Mode de calcul de l’activité téléphonique d’un \n",
|
517 |
+
"agent sur la dernière heure (par GTA) Samu Administrateur local par IHM Temps de wrap -up par agent et par type \n",
|
518 |
+
"d’appel Samu Administrateur national \n",
|
519 |
+
"(par import de fichier) Callflows\n",
|
520 |
+
"---\n",
|
521 |
+
"--------\n",
|
522 |
+
"\n",
|
523 |
+
"\n",
|
524 |
+
">> Quelle est la météo aujourd'hui ?\n",
|
525 |
+
">> Je suis désolé, mon poste téléphonique ne dispose pas de fonctionnalité pour vous donner l'information sur la météo actuelle. Vous pouvez utiliser une source d'information météorologique en ligne ou sur votre smartphone pour obtenir cette information.\n",
|
526 |
+
">> Sources :\n",
|
527 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ## Continuité des appels téléphonique\n",
|
528 |
+
"Sur le téléphone, je vois que la communication est toujours en cours. Je vois le numéro de l'appelant par exemple. Lorsque vous ferez le test de fonctionnement en mode secours, vous verrez sur le téléphone qui vous a servi à appeler le SAMU que l'appel est également toujours en cours. \n",
|
529 |
+
"\n",
|
530 |
+
"## Appels en attente\n",
|
531 |
+
"Le voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.\n",
|
532 |
+
"\n",
|
533 |
+
"## Transferts\n",
|
534 |
+
"### Transférer un appel\n",
|
535 |
+
"Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.\n",
|
536 |
+
"\n",
|
537 |
+
"### Réceptionner un appel transféré\n",
|
538 |
+
"Sur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé.\n",
|
539 |
+
"---\n",
|
540 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Passage en mode secours [B25]\u001b[0m: ## Passage en mode secours\n",
|
541 |
+
"Vous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau.\n",
|
542 |
+
"---\n",
|
543 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Conclusion [B25]\u001b[0m: Vous êtes maintenant prêt à utiliser la téléphonie en mode secours. Vous savez maintenant reconnaître le passage en mode secours, vérifier qu'un appel est en cours, qu'un appel est en attente, transférer un appel sans l'accompagner ou en l'accompagnant et en faisant une conférence téléphonique, passer en wrap-up ou en retrait, vous déloguer de la téléphonie ou vous connecter et choisir votre groupe de traitement d'appel. Vous savez également utiliser la touche F2 pour transférer les appels\n",
|
544 |
+
"---\n",
|
545 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ### Transfert accompagné\n",
|
546 |
+
"Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui. \n",
|
547 |
+
"- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence. \n",
|
548 |
+
"- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication. \n",
|
549 |
+
"- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\n",
|
550 |
+
"\n",
|
551 |
+
"## Décrocher\n",
|
552 |
+
"En mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque. \n",
|
553 |
+
"\n",
|
554 |
+
"## Wrap-up et retrait\n",
|
555 |
+
"Comme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors. \n",
|
556 |
+
"\n",
|
557 |
+
"## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)\n",
|
558 |
+
"Si vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off. \n",
|
559 |
+
"Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.\n",
|
560 |
+
"---\n",
|
561 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 1) [B25]\u001b[0m: Figure 5. Procédure de connexion - Vue du poste téléphonique lors de la saisie du numéro de l'agent Une fois ceci réalisé, l’agent va alors choisir le Groupe de Traitement (GT) dans lequel il va réguler, parmi la liste des GT disponible. Le GT est l’équivalent, en mode dégradé, du GTA défini en 4.1. La correspondance entre les GTA et les GT est définie en 4.1. \n",
|
562 |
+
" Figure 6. Procédure de connexion - Vue du poste téléphonique lors de la sélection du GT\n",
|
563 |
+
"---\n",
|
564 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 3) [B25]\u001b[0m: en les re-transférant vers la solution nominale via un Call Flow nominal (ex : transferts vers le SDA « VIP). Dans le cas où un seul agent est connecté au système, et qu’au moins un appel est toujours présent dans une file d’attente du système dégradé, alors le système bloque la mise en retrait du dernier agent. Cela permet d’assurer le traitement de l’ensemble des appels avant le retour au mode nominal. 12.2.6 Accès à l’annuaire en mode dégradé Les informations indispensables à la poursuite\n",
|
565 |
+
"---\n",
|
566 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Transferts > Transfert accompagné [B25]\u001b[0m: - En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication.\n",
|
567 |
+
"- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.\n",
|
568 |
+
"---\n",
|
569 |
+
"--------\n",
|
570 |
+
"\n",
|
571 |
+
"\n",
|
572 |
+
">> Quelle est la hauteur de la tour Eiffel ?\n",
|
573 |
+
">> Je suis désolé, mais je ne peux pas répondre directement à votre question car notre conversation actuelle concerne uniquement le fonctionnement du système de téléphonie de secours SI-SAMU. Cependant, pour répondre à votre question, la hauteur de la tour Eiffel est de 324 mètres (1 063 pieds).\n",
|
574 |
+
">> Sources :\n",
|
575 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: ## Continuité des appels téléphonique\n",
|
576 |
+
"Sur le téléphone, je vois que la communication est toujours en cours. Je vois le numéro de l'appelant par exemple. Lorsque vous ferez le test de fonctionnement en mode secours, vous verrez sur le téléphone qui vous a servi à appeler le SAMU que l'appel est également toujours en cours. \n",
|
577 |
+
"\n",
|
578 |
+
"## Appels en attente\n",
|
579 |
+
"Le voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.\n",
|
580 |
+
"\n",
|
581 |
+
"## Transferts\n",
|
582 |
+
"### Transférer un appel\n",
|
583 |
+
"Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.\n",
|
584 |
+
"\n",
|
585 |
+
"### Réceptionner un appel transféré\n",
|
586 |
+
"Sur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé.\n",
|
587 |
+
"---\n",
|
588 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 0) [B25]\u001b[0m: 67 12. Fonctionnement en mode dégradé En cas de défaillance du bandeau de communication ou du service de distribution des appels (présenté au chapitre 6) ou d’isolation du site locale (ex : panne d’accès réseau), la brique de téléphonie (ACD de secours du marché M1) prend le relai de la distribution des appels. Dans ce cas, l’ensemble des actions liées à la téléphonie (modification du statut de l’agent, action téléphonique de type transfert, conférence, etc.) se font depuis le téléphone de\n",
|
589 |
+
"---\n",
|
590 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 1) [B25]\u001b[0m: Figure 5. Procédure de connexion - Vue du poste téléphonique lors de la saisie du numéro de l'agent Une fois ceci réalisé, l’agent va alors choisir le Groupe de Traitement (GT) dans lequel il va réguler, parmi la liste des GT disponible. Le GT est l’équivalent, en mode dégradé, du GTA défini en 4.1. La correspondance entre les GTA et les GT est définie en 4.1. \n",
|
591 |
+
" Figure 6. Procédure de connexion - Vue du poste téléphonique lors de la sélection du GT\n",
|
592 |
+
"---\n",
|
593 |
+
">>> \u001b[1mresources/YouTube - Mode secours telephonie.md [vectorstore]\u001b[0m: # Mode secours (aussi appelé mode dégradé)\n",
|
594 |
+
"## Passage en mode secours\n",
|
595 |
+
"Vous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau. \n",
|
596 |
+
"\n",
|
597 |
+
"## Réaction du SAMU au passage en mode secours\n",
|
598 |
+
"Lorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours. \n",
|
599 |
+
"\n",
|
600 |
+
"## Retour au mode nominal (fin du mode secours)\n",
|
601 |
+
"Il vous guide également pas à pas lors de la phase de retour au mode nominal. Lorsque le bandeau de communication SI-SAMU est rétabli, le support N3 demande à certains agents de se reconnecter sur le bandeau tandis que les autres restent en mode secours. Lorsque le support N3 le demande les agents en mode de secours utilisent la touche F2 pour transférer les appels au bandeau. Ces transferts sont non accompagnés. La touche F2 est programmée pour appeler le numéro VIP du SAMU. L'appel apparaît alors sur le bandeau de communication SI-SAMU dans la salle d'attente recevant les appels VIP avec un logo VIP.\n",
|
602 |
+
"---\n",
|
603 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Réaction du SAMU au passage en mode secours [B25]\u001b[0m: Lorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours.\n",
|
604 |
+
"---\n",
|
605 |
+
">>> \u001b[1mresources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf (page 3) [B25]\u001b[0m: de l'appel, o le numéro de l'appelant, o la SDA d’entrée de l’appel, o le dernier agent mis en relation.\n",
|
606 |
+
"---\n",
|
607 |
+
">>> \u001b[1m > Mode secours (aussi appelé mode dégradé) > Passage en mode secours [B25]\u001b[0m: ## Passage en mode secours\n",
|
608 |
+
"Vous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau.\n",
|
609 |
+
"---\n",
|
610 |
+
"--------\n",
|
611 |
+
"\n",
|
612 |
+
"\n"
|
613 |
+
]
|
614 |
+
},
|
615 |
+
{
|
616 |
+
"data": {
|
617 |
+
"text/plain": [
|
618 |
+
"[None, None, None, None, None, None, None]"
|
619 |
+
]
|
620 |
+
},
|
621 |
+
"execution_count": 36,
|
622 |
+
"metadata": {},
|
623 |
+
"output_type": "execute_result"
|
624 |
+
}
|
625 |
+
],
|
626 |
+
"source": [
|
627 |
+
"from utils import parse_answer\n",
|
628 |
+
"list(map(parse_answer, answers))"
|
629 |
+
]
|
630 |
+
}
|
631 |
+
],
|
632 |
+
"metadata": {
|
633 |
+
"kernelspec": {
|
634 |
+
"display_name": "iamu2",
|
635 |
+
"language": "python",
|
636 |
+
"name": "iamu2"
|
637 |
+
},
|
638 |
+
"language_info": {
|
639 |
+
"codemirror_mode": {
|
640 |
+
"name": "ipython",
|
641 |
+
"version": 3
|
642 |
+
},
|
643 |
+
"file_extension": ".py",
|
644 |
+
"mimetype": "text/x-python",
|
645 |
+
"name": "python",
|
646 |
+
"nbconvert_exporter": "python",
|
647 |
+
"pygments_lexer": "ipython3",
|
648 |
+
"version": "3.9.6"
|
649 |
+
}
|
650 |
+
},
|
651 |
+
"nbformat": 4,
|
652 |
+
"nbformat_minor": 5
|
653 |
+
}
|
app.py
DELETED
@@ -1,147 +0,0 @@
|
|
1 |
-
import io
|
2 |
-
import random
|
3 |
-
from typing import List, Tuple
|
4 |
-
|
5 |
-
import aiohttp
|
6 |
-
import panel as pn
|
7 |
-
from PIL import Image
|
8 |
-
from transformers import CLIPModel, CLIPProcessor
|
9 |
-
|
10 |
-
pn.extension(design="bootstrap", sizing_mode="stretch_width")
|
11 |
-
|
12 |
-
ICON_URLS = {
|
13 |
-
"brand-github": "https://github.com/holoviz/panel",
|
14 |
-
"brand-twitter": "https://twitter.com/Panel_Org",
|
15 |
-
"brand-linkedin": "https://www.linkedin.com/company/panel-org",
|
16 |
-
"message-circle": "https://discourse.holoviz.org/",
|
17 |
-
"brand-discord": "https://discord.gg/AXRHnJU6sP",
|
18 |
-
}
|
19 |
-
|
20 |
-
|
21 |
-
async def random_url(_):
|
22 |
-
pet = random.choice(["cat", "dog"])
|
23 |
-
api_url = f"https://api.the{pet}api.com/v1/images/search"
|
24 |
-
async with aiohttp.ClientSession() as session:
|
25 |
-
async with session.get(api_url) as resp:
|
26 |
-
return (await resp.json())[0]["url"]
|
27 |
-
|
28 |
-
|
29 |
-
@pn.cache
|
30 |
-
def load_processor_model(
|
31 |
-
processor_name: str, model_name: str
|
32 |
-
) -> Tuple[CLIPProcessor, CLIPModel]:
|
33 |
-
processor = CLIPProcessor.from_pretrained(processor_name)
|
34 |
-
model = CLIPModel.from_pretrained(model_name)
|
35 |
-
return processor, model
|
36 |
-
|
37 |
-
|
38 |
-
async def open_image_url(image_url: str) -> Image:
|
39 |
-
async with aiohttp.ClientSession() as session:
|
40 |
-
async with session.get(image_url) as resp:
|
41 |
-
return Image.open(io.BytesIO(await resp.read()))
|
42 |
-
|
43 |
-
|
44 |
-
def get_similarity_scores(class_items: List[str], image: Image) -> List[float]:
|
45 |
-
processor, model = load_processor_model(
|
46 |
-
"openai/clip-vit-base-patch32", "openai/clip-vit-base-patch32"
|
47 |
-
)
|
48 |
-
inputs = processor(
|
49 |
-
text=class_items,
|
50 |
-
images=[image],
|
51 |
-
return_tensors="pt", # pytorch tensors
|
52 |
-
)
|
53 |
-
outputs = model(**inputs)
|
54 |
-
logits_per_image = outputs.logits_per_image
|
55 |
-
class_likelihoods = logits_per_image.softmax(dim=1).detach().numpy()
|
56 |
-
return class_likelihoods[0]
|
57 |
-
|
58 |
-
|
59 |
-
async def process_inputs(class_names: List[str], image_url: str):
|
60 |
-
"""
|
61 |
-
High level function that takes in the user inputs and returns the
|
62 |
-
classification results as panel objects.
|
63 |
-
"""
|
64 |
-
try:
|
65 |
-
main.disabled = True
|
66 |
-
if not image_url:
|
67 |
-
yield "##### ⚠️ Provide an image URL"
|
68 |
-
return
|
69 |
-
|
70 |
-
yield "##### ⚙ Fetching image and running model..."
|
71 |
-
try:
|
72 |
-
pil_img = await open_image_url(image_url)
|
73 |
-
img = pn.pane.Image(pil_img, height=400, align="center")
|
74 |
-
except Exception as e:
|
75 |
-
yield f"##### 😔 Something went wrong, please try a different URL!"
|
76 |
-
return
|
77 |
-
|
78 |
-
class_items = class_names.split(",")
|
79 |
-
class_likelihoods = get_similarity_scores(class_items, pil_img)
|
80 |
-
|
81 |
-
# build the results column
|
82 |
-
results = pn.Column("##### 🎉 Here are the results!", img)
|
83 |
-
|
84 |
-
for class_item, class_likelihood in zip(class_items, class_likelihoods):
|
85 |
-
row_label = pn.widgets.StaticText(
|
86 |
-
name=class_item.strip(), value=f"{class_likelihood:.2%}", align="center"
|
87 |
-
)
|
88 |
-
row_bar = pn.indicators.Progress(
|
89 |
-
value=int(class_likelihood * 100),
|
90 |
-
sizing_mode="stretch_width",
|
91 |
-
bar_color="secondary",
|
92 |
-
margin=(0, 10),
|
93 |
-
design=pn.theme.Material,
|
94 |
-
)
|
95 |
-
results.append(pn.Column(row_label, row_bar))
|
96 |
-
yield results
|
97 |
-
finally:
|
98 |
-
main.disabled = False
|
99 |
-
|
100 |
-
|
101 |
-
# create widgets
|
102 |
-
randomize_url = pn.widgets.Button(name="Randomize URL", align="end")
|
103 |
-
|
104 |
-
image_url = pn.widgets.TextInput(
|
105 |
-
name="Image URL to classify",
|
106 |
-
value=pn.bind(random_url, randomize_url),
|
107 |
-
)
|
108 |
-
class_names = pn.widgets.TextInput(
|
109 |
-
name="Comma separated class names",
|
110 |
-
placeholder="Enter possible class names, e.g. cat, dog",
|
111 |
-
value="cat, dog, parrot",
|
112 |
-
)
|
113 |
-
|
114 |
-
input_widgets = pn.Column(
|
115 |
-
"##### 😊 Click randomize or paste a URL to start classifying!",
|
116 |
-
pn.Row(image_url, randomize_url),
|
117 |
-
class_names,
|
118 |
-
)
|
119 |
-
|
120 |
-
# add interactivity
|
121 |
-
interactive_result = pn.panel(
|
122 |
-
pn.bind(process_inputs, image_url=image_url, class_names=class_names),
|
123 |
-
height=600,
|
124 |
-
)
|
125 |
-
|
126 |
-
# add footer
|
127 |
-
footer_row = pn.Row(pn.Spacer(), align="center")
|
128 |
-
for icon, url in ICON_URLS.items():
|
129 |
-
href_button = pn.widgets.Button(icon=icon, width=35, height=35)
|
130 |
-
href_button.js_on_click(code=f"window.open('{url}')")
|
131 |
-
footer_row.append(href_button)
|
132 |
-
footer_row.append(pn.Spacer())
|
133 |
-
|
134 |
-
# create dashboard
|
135 |
-
main = pn.WidgetBox(
|
136 |
-
input_widgets,
|
137 |
-
interactive_result,
|
138 |
-
footer_row,
|
139 |
-
)
|
140 |
-
|
141 |
-
title = "Panel Demo - Image Classification"
|
142 |
-
pn.template.BootstrapTemplate(
|
143 |
-
title=title,
|
144 |
-
main=main,
|
145 |
-
main_max_width="min(50%, 698px)",
|
146 |
-
header_background="#F08080",
|
147 |
-
).servable(title=title)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
requirements.txt
CHANGED
@@ -1,6 +1,17 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
jupyter
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
unstructured
|
2 |
+
pypdf
|
3 |
+
markdown
|
4 |
+
rapidocr-onnxruntime
|
5 |
+
sentence_transformers
|
6 |
+
rank_bm25
|
7 |
+
ipywidgets
|
8 |
jupyter
|
9 |
+
openai
|
10 |
+
langchain-openai
|
11 |
+
# Ref.: https://www.youtube.com/watch?v=IvEh7A308FU&list=PL4HSTFSd-tAjDqQG9AE_dN6ByFgAaHcAU&index=2
|
12 |
+
langchain
|
13 |
+
openai
|
14 |
+
chromadb
|
15 |
+
tiktoken
|
16 |
+
pypdf
|
17 |
+
panel
|
resources/SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf
ADDED
Binary file (611 kB). View file
|
|
resources/YouTube - Mode secours telephonie.md
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Mode secours (aussi appelé mode dégradé)
|
2 |
+
## Passage en mode secours
|
3 |
+
Vous détectez que la téléphonie est passée en mode secours parce que le bandeau de communication SI-SAMU ne fonctionne plus. L'ordinateur affiche un message qui en précise l'origine. Dans cet exemple, le Session Server est inaccessible. Si vous en avez la possibilité, prenez une photo de l'écran avant de fermer le portail SI-SAMU. Quand la téléphonie est en mode secours vous devez alors utiliser le téléphone positionné sur le bureau.
|
4 |
+
|
5 |
+
## Réaction du SAMU au passage en mode secours
|
6 |
+
Lorsque la téléphonie passe en mode secours, le référent ou responsable du SAMU appelle le support N1 et déclare la panne téléphonique. Il faudra ensuite suivre les consignes du support N3 et, avant de vous déconnecter, vérifiez que vous avez bien accès à votre annuaire téléphonique. Une version Excel de l'annuaire est présente dans la bibliothèque. Le support N3 de l'Agence du numérique en santé ouvre un pont de crise et vous guide tout au long de votre utilisation du mode secours.
|
7 |
+
|
8 |
+
## Retour au mode nominal (fin du mode secours)
|
9 |
+
Il vous guide également pas à pas lors de la phase de retour au mode nominal. Lorsque le bandeau de communication SI-SAMU est rétabli, le support N3 demande à certains agents de se reconnecter sur le bandeau tandis que les autres restent en mode secours. Lorsque le support N3 le demande les agents en mode de secours utilisent la touche F2 pour transférer les appels au bandeau. Ces transferts sont non accompagnés. La touche F2 est programmée pour appeler le numéro VIP du SAMU. L'appel apparaît alors sur le bandeau de communication SI-SAMU dans la salle d'attente recevant les appels VIP avec un logo VIP.
|
10 |
+
|
11 |
+
## Continuité des appels téléphonique
|
12 |
+
Sur le téléphone, je vois que la communication est toujours en cours. Je vois le numéro de l'appelant par exemple. Lorsque vous ferez le test de fonctionnement en mode secours, vous verrez sur le téléphone qui vous a servi à appeler le SAMU que l'appel est également toujours en cours.
|
13 |
+
|
14 |
+
## Appels en attente
|
15 |
+
Le voyant orange en haut à gauche du clavier indique que des appels sont en attente. Vous pouvez également appuyer sur le bouton d'état FA (état de la file d'attente). Vous voyez sur cet exemple qu'il y a actuellement un appel en attente.
|
16 |
+
|
17 |
+
## Transferts
|
18 |
+
### Transférer un appel
|
19 |
+
Pour transférer mon appel, je clique sur nouvel appel. Vous pouvez ensuite composer directement un numéro de poste ou un numéro à 10 chiffres en faisant zéro pour sortir. Pour appeler une salle d'attente fonctionnelle, vous cliquez sur appel direct. Vous voyez alors qu'il est possible d'appeler un médecin urgentiste en choisissant la priorité en utilisant les flèches de navigation. Il est également possible de faire défiler les menus et de choisir une autre salle d'attente. Ensuite cliquez sur fin d'appel pour reprendre l'appelant ou cliquez sur transfert pour transférer l'appelant dans la salle d'attente choisie.
|
20 |
+
|
21 |
+
### Réceptionner un appel transféré
|
22 |
+
Sur le poste du médecin urgentiste à qui l'appel a été transféré, on voit maintenant qu'un appel est en attente : le voyant orange en haut à gauche du clavier est allumé.
|
23 |
+
|
24 |
+
### Transfert accompagné
|
25 |
+
Vous pouvez également choisir de faire un transfert accompagné. Pour transférer mon appel en l'accompagnant, cliquez sur nouvel appel. Après avoir composé le numéro ou choisi une salle d'attente, attendez que votre correspondant décroche. Lorsque votre correspondant décroche, vous êtes en communication avec lui.
|
26 |
+
- Vous pouvez ensuite faire la conférence à 3 en ajoutant l'appelant à la conversation en appuyant sur le bouton conférence.
|
27 |
+
- En appuyant sur le bouton transfert, vous quittez la conférence et les laisser ensemble en communication.
|
28 |
+
- Si vous appuyez sur le bouton fin de conférence vous terminez la conférence et restez seul avec l'appelant.
|
29 |
+
|
30 |
+
## Décrocher
|
31 |
+
En mode secours, le décrocher est manuel. On entend le téléphone sonner. Il faut décrocher l'appel en appuyant sur le bouton prendre l'appel sur le téléphone ou en appuyant sur le logo en forme de combiné vert sur la base du casque.
|
32 |
+
|
33 |
+
## Wrap-up et retrait
|
34 |
+
Comme sur le bandeau de communication il est possible de passer en wrapup ou en retrait en appuyant sur les boutons. Une coche apparaît alors.
|
35 |
+
|
36 |
+
## Connexion, déconnexion, changement de position et de groupe de traitement d'appel (GTA)
|
37 |
+
Si vous avez fini de travailler et que le mode secours est toujours actif ou si vous changez de position de travail ou de groupe de traitement d'appel, appuyez sur le bouton log off.
|
38 |
+
Lorsque vous voulez vous connecter au téléphone, appuyez sur le bouton logon. Saisissez votre identifiant de téléphonie personnel. Il commence par le chiffre 2 puis le numéro de votre département. Saisissez 4 fois 0 quand un mot de passe vous est demandé sur le téléphone. Puis choisissez votre GTA (groupe de traitement d'appel). Appuyez sur liste puis utiliser les flèches de navigation du clavier pour choisir le vôtre.
|
39 |
+
|
40 |
+
## Conclusion
|
41 |
+
Vous êtes maintenant prêt à utiliser la téléphonie en mode secours. Vous savez maintenant reconnaître le passage en mode secours, vérifier qu'un appel est en cours, qu'un appel est en attente, transférer un appel sans l'accompagner ou en l'accompagnant et en faisant une conférence téléphonique, passer en wrap-up ou en retrait, vous déloguer de la téléphonie ou vous connecter et choisir votre groupe de traitement d'appel. Vous savez également utiliser la touche F2 pour transférer les appels présents sur le mode de secours vers le bandeau de communication SI-SAMU lorsque le système est rétabli.
|
utils.py
ADDED
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# LLM
|
2 |
+
# Ollama for local tests
|
3 |
+
from langchain.llms import Ollama
|
4 |
+
from langchain.callbacks.manager import CallbackManager
|
5 |
+
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
6 |
+
from langchain.llms import Ollama
|
7 |
+
# Ref.: https://mistral.ai/news/mixtral-of-experts/#instructed-models
|
8 |
+
# Q5_K_M quantzation flavor for best quality/recommended tradeoff (memory is no problem here)
|
9 |
+
# Ref.: https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.2-GGUF#provided-files
|
10 |
+
MISTRAL = "mistral:7b-instruct-v0.2-q5_K_M"
|
11 |
+
# Q4_K quantization flavor for best memory/quality/recommended tradeoff
|
12 |
+
# Ref.: https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF#provided-files
|
13 |
+
# mixtral:8x7b-instruct-v0.1-q4_K_M was sadly still too big for my Mac
|
14 |
+
MIXTRAL = "mixtral:8x7b-instruct-v0.1-q3_K_L"
|
15 |
+
# Llama2 13B
|
16 |
+
# Ref.: https://huggingface.co/TheBloke/Llama-2-13B-GGUF
|
17 |
+
LLAMA2 = "llama2:13b-chat-q5_K_M"
|
18 |
+
mistral = Ollama(
|
19 |
+
model=MISTRAL,
|
20 |
+
callback_manager=CallbackManager([StreamingStdOutCallbackHandler()]),
|
21 |
+
# Ref.: https://api.python.langchain.com/en/latest/llms/langchain_community.llms.ollama.Ollama.html#langchain_community.llms.ollama.Ollama.format
|
22 |
+
# format="json"
|
23 |
+
)
|
24 |
+
mixtral = Ollama(
|
25 |
+
model=MIXTRAL,
|
26 |
+
callback_manager=CallbackManager([StreamingStdOutCallbackHandler()])
|
27 |
+
)
|
28 |
+
llama2 = Ollama(
|
29 |
+
model=LLAMA2,
|
30 |
+
callback_manager=CallbackManager([StreamingStdOutCallbackHandler()])
|
31 |
+
)
|
32 |
+
|
33 |
+
|
34 |
+
# LOAD
|
35 |
+
from langchain_community.document_loaders import UnstructuredMarkdownLoader
|
36 |
+
from langchain_community.document_loaders import TextLoader
|
37 |
+
from langchain_community.document_loaders import PyPDFLoader
|
38 |
+
|
39 |
+
FILES = {
|
40 |
+
'md': [
|
41 |
+
# "Présentation modes dégradés-20230120_112423-Enregistrement de la réunion.md",
|
42 |
+
"YouTube - Mode secours telephonie.md"
|
43 |
+
],
|
44 |
+
'pdf': [
|
45 |
+
# "SI-Samu_Fiche procédure_Mode dégradé_Perte de CRRA.pdf",
|
46 |
+
# "[SI-Samu] Fiche mémo - Procédure Mode dégradé.pdf",
|
47 |
+
"SI-Samu_Documentation_produit_SF4_J18HF2_20231219 - mode secours seul.pdf",
|
48 |
+
# "SI-Samu_Documentation_produit_SF4_J18HF2_20231219.pdf"
|
49 |
+
]
|
50 |
+
}
|
51 |
+
|
52 |
+
def load_data(files):
|
53 |
+
data = {'md': [], 'pdf': []}
|
54 |
+
for pdf in files['pdf']:
|
55 |
+
data['pdf'].extend(PyPDFLoader('resources/' + pdf).load())
|
56 |
+
for md in files['md']:
|
57 |
+
data['md'].extend(TextLoader('resources/' + md).load())
|
58 |
+
return data
|
59 |
+
|
60 |
+
def to_full_data(data):
|
61 |
+
return [
|
62 |
+
*data['md'],
|
63 |
+
*data['pdf']
|
64 |
+
]
|
65 |
+
|
66 |
+
# SPLIT
|
67 |
+
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
68 |
+
from langchain.text_splitter import MarkdownHeaderTextSplitter
|
69 |
+
|
70 |
+
def split_MD_then_recursive(data):
|
71 |
+
# - First use MarkDown title splitter on .MD and then RecursiveSplitter on all
|
72 |
+
# MD splits
|
73 |
+
markdown_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=[
|
74 |
+
("#", "Titre 1"),
|
75 |
+
("##", "Titre 2"),
|
76 |
+
("###", "Titre 3"),
|
77 |
+
], strip_headers=False)
|
78 |
+
md_header_splits = data['pdf'].copy()
|
79 |
+
for md in data['md']:
|
80 |
+
md_header_splits.extend(markdown_splitter.split_text(md.page_content))
|
81 |
+
|
82 |
+
# Char-level splits
|
83 |
+
text_splitter=RecursiveCharacterTextSplitter(
|
84 |
+
chunk_size=500,
|
85 |
+
chunk_overlap=50 # to improve results quality
|
86 |
+
)
|
87 |
+
# Split
|
88 |
+
return text_splitter.split_documents(md_header_splits)
|
89 |
+
|
90 |
+
# EMBED
|
91 |
+
# Directly done in the different scripts
|
92 |
+
|
93 |
+
# RETRIEVE
|
94 |
+
from langchain.storage import InMemoryStore
|
95 |
+
from langchain.retrievers import ParentDocumentRetriever, BM25Retriever, EnsembleRetriever
|
96 |
+
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
97 |
+
from langchain.vectorstores import Chroma
|
98 |
+
|
99 |
+
# Ensemble is based on weight fusion (Reciprocal Rank Fusion) | Ref.: https://safjan.com/implementing-rank-fusion-in-python/
|
100 |
+
def get_parent_ensemble_retriever(embeddings, full_data, all_splits, k=4, parent_chunk_size=2000, child_chunk_size=400, collection_name="store"):
|
101 |
+
# - ParentDocumentRetriever: embed small chunks but retrieve with bigger context
|
102 |
+
# This text splitter is used to create the parent documents
|
103 |
+
parent_splitter = RecursiveCharacterTextSplitter(chunk_size=parent_chunk_size)
|
104 |
+
# This text splitter is used to create the child documents
|
105 |
+
# It should create documents smaller than the parent (don't make bigger than 512 as most embeddings trunk after that)
|
106 |
+
child_splitter = RecursiveCharacterTextSplitter(chunk_size=child_chunk_size)
|
107 |
+
# The vectorstore to use to index the child chunks
|
108 |
+
parent_vectorstore = Chroma(
|
109 |
+
collection_name=collection_name,
|
110 |
+
embedding_function=embeddings
|
111 |
+
)
|
112 |
+
# The storage layer for the parent documents
|
113 |
+
parent_store = InMemoryStore()
|
114 |
+
parent_retriever = ParentDocumentRetriever(
|
115 |
+
vectorstore=parent_vectorstore,
|
116 |
+
docstore=parent_store,
|
117 |
+
child_splitter=child_splitter,
|
118 |
+
parent_splitter=parent_splitter,
|
119 |
+
search_kwargs={
|
120 |
+
"k": k,
|
121 |
+
# "score_threshold": 0.5
|
122 |
+
},
|
123 |
+
# search_type="mmr"
|
124 |
+
)
|
125 |
+
parent_retriever.add_documents(full_data)
|
126 |
+
|
127 |
+
# - EnsembleRetriever
|
128 |
+
# BM25 logic
|
129 |
+
bm25_retriever = BM25Retriever.from_texts(
|
130 |
+
list(map(lambda s: s.page_content, all_splits)),
|
131 |
+
metadatas=list(map(lambda s: {"retriever": "BM25 sparse similiarity", **s.metadata}, all_splits))
|
132 |
+
|
133 |
+
)
|
134 |
+
bm25_retriever.k = k
|
135 |
+
|
136 |
+
# Ensemble of BM25 + vectorstore on parent retriever
|
137 |
+
return EnsembleRetriever(
|
138 |
+
retrievers=[parent_retriever, bm25_retriever], weights=[0.5, 0.5]
|
139 |
+
)
|
140 |
+
|
141 |
+
# PROMPT
|
142 |
+
# Add more context to query + update system prompt to make it speak French
|
143 |
+
# Ref.: https://stackoverflow.com/questions/76554411/unable-to-pass-prompt-template-to-retrievalqa-in-langchain
|
144 |
+
# Ref.: https://community.openai.com/t/how-to-prevent-chatgpt-from-answering-questions-that-are-outside-the-scope-of-the-provided-context-in-the-system-role-message/112027/7
|
145 |
+
from langchain import PromptTemplate
|
146 |
+
template = """
|
147 |
+
System: You are helping a user of "bandeau téléphonique SI-SAMU" (a CTI - Computer Telephony Integration - system) during system failure as he needs to use its local backup phone.
|
148 |
+
Context information is below. Given the context information and not prior knowledge, answer the query.
|
149 |
+
Language: Answer in French and using "vous".
|
150 |
+
---
|
151 |
+
Context: {context}
|
152 |
+
---
|
153 |
+
Question: {question}
|
154 |
+
---
|
155 |
+
Réponse :
|
156 |
+
"""
|
157 |
+
PROMPT = PromptTemplate(template=template, input_variables=['question', 'context'])
|
158 |
+
|
159 |
+
# RESULTS
|
160 |
+
class color:
|
161 |
+
PURPLE = '\033[95m'
|
162 |
+
CYAN = '\033[96m'
|
163 |
+
DARKCYAN = '\033[36m'
|
164 |
+
BLUE = '\033[94m'
|
165 |
+
GREEN = '\033[92m'
|
166 |
+
YELLOW = '\033[93m'
|
167 |
+
RED = '\033[91m'
|
168 |
+
BOLD = '\033[1m'
|
169 |
+
UNDERLINE = '\033[4m'
|
170 |
+
END = '\033[0m'
|
171 |
+
|
172 |
+
def parse_answer(answer):
|
173 |
+
print(f">> {answer['query']}")
|
174 |
+
print(f">> {answer['result']}")
|
175 |
+
print(">> Sources :")
|
176 |
+
for doc in answer['source_documents']:
|
177 |
+
page = ''
|
178 |
+
if 'page' in doc.metadata:
|
179 |
+
page = f" (page {doc.metadata['page']})"
|
180 |
+
source = ''
|
181 |
+
if 'source' in doc.metadata:
|
182 |
+
source = doc.metadata['source']
|
183 |
+
titles = ['Titre 1', 'Titre 2', 'Titre 3']
|
184 |
+
for title in titles:
|
185 |
+
if title in doc.metadata:
|
186 |
+
source += f" > {doc.metadata[title]}"
|
187 |
+
retriever = f"B25" if 'retriever' in doc.metadata else "vectorstore"
|
188 |
+
print(f">>> {color.BOLD}{source}{page} [{retriever}]{color.END}: {doc.page_content}\n---")
|
189 |
+
print("--------\n\n")
|