Skip to content

Commit

Permalink
feat: update rag notebook (#105)
Browse files Browse the repository at this point in the history
Co-authored-by: leoguillaume <[email protected]>
  • Loading branch information
leoguillaume and leoguillaumegouv authored Dec 9, 2024
1 parent df72d54 commit 4f99763
Showing 1 changed file with 123 additions and 15 deletions.
138 changes: 123 additions & 15 deletions docs/tutorials/retrieval_augmented_generation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 17,
"id": "e80daa99-3416-4b81-a8aa-4fb7427bbe6c",
"metadata": {
"colab": {
Expand Down Expand Up @@ -114,7 +114,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 10,
"id": "Q_5YNzmR_JcK",
"metadata": {
"colab": {
Expand Down Expand Up @@ -147,15 +147,15 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 14,
"id": "a0f0adf2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collection ID: 6c6dd988-bd3d-4449-bfdd-106cda5d22ad\n"
"Collection ID: 39a36180-aab5-4a5a-8e07-4da01a8b8193\n"
]
}
],
Expand All @@ -180,7 +180,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 18,
"id": "6852fc7a-0b09-451b-bbc2-939fa96a4d28",
"metadata": {
"colab": {
Expand All @@ -189,15 +189,7 @@
"id": "6852fc7a-0b09-451b-bbc2-939fa96a4d28",
"outputId": "8555033d-d20f-4b0b-8bfa-7fa5c83a299b"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<Response [201]>\n"
]
}
],
"outputs": [],
"source": [
"files = {\"file\": (os.path.basename(file_path), open(file_path, \"rb\"), \"application/pdf\")}\n",
"data = {\"request\": '{\"collection\": \"%s\"}' % collection_id}\n",
Expand Down Expand Up @@ -267,6 +259,16 @@
"La méthode lexicale est la plus simple. Elle ne fait pas de recherche vectorielle mais se base uniquement sur la similarité lexicale entre la question et le contenu des documents à l'aide de l'algorithme [BM25](https://en.wikipedia.org/wiki/Okapi_BM25).\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "2668210f",
"metadata": {},
"outputs": [],
"source": [
"prompt = \"Qui est Ulrich Tan ?\""
]
},
{
"cell_type": "code",
"execution_count": 14,
Expand All @@ -282,7 +284,6 @@
}
],
"source": [
"prompt = \"Qui est Ulrich Tan ?\"\n",
"data = {\"collections\": [collection_id], \"k\": 6, \"prompt\": prompt, \"method\": \"lexical\"}\n",
"response = session.post(url=f\"{base_url}/search\", json=data, headers={\"Authorization\": f\"Bearer {api_key}\"})\n",
"\n",
Expand Down Expand Up @@ -460,6 +461,113 @@
"for source in sources:\n",
" print(source)"
]
},
{
"cell_type": "markdown",
"id": "2f00610e",
"metadata": {},
"source": [
"## Recherche par `/chat/completions`\n",
"\n",
"Il est possible de faire une recherche RAG avec l'endpoint `/chat/completions`. Pour ce faire, il faut spécifier le paramètre `search=True` et `search_args` avec les arguments de la recherche que vous souhaitez faire (idem que pour l'endpoint `/search`)."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "e2e1368a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Réponse du model: Selon les documents, Ulrich Tan est le chef du pôle Datamin du département \"Eatalab\".\n",
"\n",
"- Sources utilisées pour la génération:\n",
"\n",
"– M. Gilles Corbi, agent contractuel, chef du pôle Production du département « ISO » ; \n",
"– M. Yann Brûlé, grade, chef du pôle « SI RIE » du département « ISO » ; \n",
"– M. Ulrich Tan, chef du pôle Datamin du département « Etalab » ; \n",
"– Mme Marie-Christie Ritz, cheffe du pôle « RH et attractivité » ; \n",
"– Mme Fadila Leturcq, cheffe du pôle « Campus du numérique ». \n",
"\n",
"\f21 juin 2023 \n",
"\n",
"JOURNAL OFFICIEL DE LA RÉPUBLIQUE FRANÇAISE \n",
"\n",
"Texte 5 sur 95\n",
"– Mme Elsa Le Duigou, agent contractuel ; \n",
"– M. Valentin Brel, agent contractuel ; \n",
"– Mme Margot Sanchez, agent contractuel ; \n",
"– M. Paul Burgun, agent contractuel ; \n",
"– Mme Emma Ghariani, agent contractuel. \n",
"Art. 5. – Délégation est donnée à Mme Géraldine Taurand, attachée d’administration hors classe, cheffe de la \n",
"mission « Budget et achats », pour signer tous actes de gestion et procéder aux validations électronique dans l’outil\n",
"– M. Perica Sucevic, agent contractuel, préfigurateur de la mission « Droit et international » ; \n",
"– Mme Floriane Beaudron, agente contractuelle, cheffe de la mission « Communication ». \n",
"Art. 3. – Délégation est donnée à l’effet de signer au nom du ministre de la transformation et de la fonction \n",
"publiques ainsi qu’au nom de la Première ministre, tous actes relevant des attributions de leurs pôles, et notamment\n",
"– M. Ishan Bhojwani, agent contractuel, chef du département « Incubateur de services numériques » (ISN) ; \n",
"– Mme Marielle Chrisment, lieutenante-colonelle de gendarmerie, cheffe du département « Etalab » ; \n",
"– M. Guy Duplaquet, ingénieur général des mines, chef du département « Infrastructures et services opérés » \n",
"\n",
"(ISO) ; \n",
"\n",
"– M. Florian Delezenne, agent contractuel, chef du département « Opérateur de produits interministériels » \n",
"\n",
"(OPI).\n",
"– M. Louis di Benedetto, inspecteur en chef de la santé publique vétérinaire, chef du pôle « Pilotage de la \n",
"\n",
"qualité et des partenariats » du département « ISO » ; \n",
"\n",
"– M. Philippe Levillain, agent contractuel, chef du pôle « Réseau interministériel de l’Etat / SOI » du \n",
"\n",
"département « ISO » ;\n",
"– Mme Virginie Rozière, ingénieure en chef de l’armement, cheffe du pole « Expertise, contrôle et maitrise des \n",
"\n",
"risques » du département « ACE » ; \n",
"\n",
"– Mme Marine Boudeau, agente contractuelle, préfiguratrice du pôle « Brigade d’intervention numérique », du \n",
"\n",
"département « ACE » ; \n",
"\n",
"– M. Mohsen Souissi, agent contractuel, préfigurateur du pôle « Référentiels, capitalisation et observatoires » du \n",
"\n",
"département « ACE » ;\n"
]
}
],
"source": [
"response = session.post(\n",
" url=f\"{base_url}/chat/completions\",\n",
" json={\n",
" \"messages\": [{\"role\": \"user\", \"content\": prompt}],\n",
" \"model\": language_model,\n",
" \"stream\": False,\n",
" \"n\": 1,\n",
" \"search\": True,\n",
" \"search_args\": {\"collections\": [collection_id], \"k\": 6, \"method\": \"semantic\"}\n",
" }\n",
")\n",
"response = response.json()\n",
"\n",
"sources = [result[\"chunk\"][\"content\"] for result in response['search_results']]\n",
"\n",
"print(f\"\"\"- Réponse du model: {response['choices'][0]['message']['content']}\n",
"\n",
"- Sources utilisées pour la génération:\n",
"\n",
"{'\\n'.join(sources)}\"\"\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "545a2396",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand Down

0 comments on commit 4f99763

Please sign in to comment.