diff --git a/MyIA.AI.Notebooks/GenAI/Texte/06_PDF_Web_Search.ipynb b/MyIA.AI.Notebooks/GenAI/Texte/06_PDF_Web_Search.ipynb index 90c49f73e5..8976f9bcc6 100644 --- a/MyIA.AI.Notebooks/GenAI/Texte/06_PDF_Web_Search.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Texte/06_PDF_Web_Search.ipynb @@ -3,8 +3,21 @@ { "cell_type": "code", "execution_count": 1, - "id": "d89b75e0", + "id": "4f2bedad", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:48:29.604306Z", + "iopub.status.busy": "2026-10-07T01:48:29.603796Z", + "iopub.status.idle": "2026-10-07T01:48:29.611970Z", + "shell.execute_reply": "2026-10-07T01:48:29.610489Z" + }, + "papermill": { + "duration": 0.020396, + "end_time": "2026-10-07T01:48:29.613507+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:29.593111+00:00", + "status": "completed" + }, "tags": [ "injected-parameters" ] @@ -19,6 +32,13 @@ "cell_type": "markdown", "id": "9e872efc", "metadata": { + "papermill": { + "duration": 0.007958, + "end_time": "2026-10-07T01:48:29.630754+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:29.622796+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -46,9 +66,31 @@ "execution_count": 2, "id": "5393353b", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:48:29.650441Z", + "iopub.status.busy": "2026-10-07T01:48:29.649881Z", + "iopub.status.idle": "2026-10-07T01:48:52.064932Z", + "shell.execute_reply": "2026-10-07T01:48:52.063121Z" + }, + "papermill": { + "duration": 22.425304, + "end_time": "2026-10-07T01:48:52.066068+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:29.640764+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n", + "[notice] A new release of pip is available: 25.2 -> 26.2.1\n", + "[notice] To update, run: python.exe -m pip install --upgrade pip\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -60,7 +102,13 @@ "name": "stdout", "output_type": "stream", "text": [ - ".env charge depuis: .env\n", + ".env charge depuis: .env\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "OpenRouter : False | Outil web : web_search_preview\n", "Client OpenAI initialisé !\n", "Modèle par défaut: gpt-5-mini\n", @@ -123,6 +171,13 @@ "cell_type": "markdown", "id": "03c771c2", "metadata": { + "papermill": { + "duration": 0.006426, + "end_time": "2026-10-07T01:48:52.079188+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:52.072762+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -150,6 +205,19 @@ "execution_count": 3, "id": "cca7e848", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:48:52.094116Z", + "iopub.status.busy": "2026-10-07T01:48:52.093646Z", + "iopub.status.idle": "2026-10-07T01:48:52.269168Z", + "shell.execute_reply": "2026-10-07T01:48:52.267536Z" + }, + "papermill": { + "duration": 0.18528, + "end_time": "2026-10-07T01:48:52.270392+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:52.085112+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -158,7 +226,7 @@ "output_type": "stream", "text": [ "✓ Image de rapport créée: test_report.png\n", - " Taille: 40284 octets\n" + " Taille: 40286 octets\n" ] } ], @@ -229,12 +297,25 @@ "execution_count": 4, "id": "pdfws-display-report", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:48:52.287441Z", + "iopub.status.busy": "2026-10-07T01:48:52.286990Z", + "iopub.status.idle": "2026-10-07T01:48:52.305099Z", + "shell.execute_reply": "2026-10-07T01:48:52.304064Z" + }, + "papermill": { + "duration": 0.028467, + "end_time": "2026-10-07T01:48:52.306681+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:52.278214+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ { "data": { - "image/png": "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AAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiwAAAAADiGAAsAAACAYwiw4P+0Y8dEAAAwEMLqX3VNMPyQqOAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAAQWAMA2BwsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAAAEFgDANgcLACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAABBYAwDYHCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAGICCwAgJrAAAAQWAMA2BwsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAABiAgsAICawAACu9bBYgdRakSc7AAAAAElFTkSuQmCC", + "image/png": "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ixcvevfuvWvXLm63TU1N7dmz56+//krfSiQSd3f3Tp06sWNgr1696uvrq2T2zv/+9780qtrZ2bm4uAgEAnd3d19fXz8/P/nxxd7e3n5/aGhynXen3hZ6eXmpsu2WLVuio6MrKiroBfXy8mKfz8rPzx81atTx48f79ev39OlTPp/v7Ozs4eHBnrrHjx8PGjSobhfOiRMnfH19L1++TN/q6Oi4u7t36dKFTWlXr1718fFhRxqxEhISpk6dWlNTQx+zcHBw8PX1bd++PZvp9+3bx942oj03ql+F5p2lZh9LMzx//pztfPrPf/7TpG319PS8vb3p60OHDims5fF4PXr0OHXqVEpKioGBAfkTpaSk0BcBAQHswrt379IXrf/Q0LZsB1Vtbe3Dhw9bXi/7N6eDgwN9cfLkyVGjRtna2opEIn19fW9v74ULF8o/NgHwr/B/QQs47cF6+/btr7/+mpWVNWLECD6fTwtraGgcP35coeT69evZvU2bNk3h786TJ0926tSJLVBYWFhvfwmPx6OTcp05c4auqq2t3bFjB/s/fT09PYWnF1uy7enTp9nukLZt227bto39O7iiomLt2rVsmNDV1VV4HInt+aBr2RNSWlr6yy+/vA9PEarSwkZ7sKioqKiHDx/SVW/evBkxYoTCrZZRo0axPR8vX76UL5CVlSW/56KiIiMjI7rKyspq9+7d7CP0Mpns0KFDjo6OdK2JiYn81ANv3rxhp2r75JNP5PtBS0pKRo4cyda4d+9e+RqVX4WWnKVmH0vzerCOHTumZG6CRrETOwkEAradSvwJPVgZGRnsEW3fvp1dvmbNGrrQ3t5eyebys7Gz/+pbUi87vm38+PGvXr1q6C4hJhqFfxsErD9pJnctLa0dO3bU3RvbofXJJ5/UW538c9fJyckNfZ17eHiUlZUpbHvjxg12JM1///tfrrbt1q0bXW5qavrgwYO6bb506RI7ViMyMrKhL+aGntZ+fwJWQy1UJWANHTpUYauKigr5Xsm6V7y6uloqldK106dPl181duxYurxDhw71zvRRVlbG9h98/vnn7HK2E7FDhw51t5LJZOxgHYUrpXrAaupZavaxNC9gsZ0uhJAbN24wTcSmFkLIr7/++pcHrPv377Px1N3dXX5O9u+++44u79y5s/KdsH8gHT58uOX1shn0888/DwwMpK81NTVdXV27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ELAAAAAAOIaABQAAAMAxBCwAAAAAjiFgAQAAAHAMAQsAAACAYwhYAAAAABxDwAIAAADgGAIWAAAAAMcQsAAAAAA4hoAFAAAAwDEELAAAAACOIWABAAAAcAwBCwAAAIBjCFgAAAAAHEPAAgAAAOAYAhYAAAAAxxCwAAAAADiGgAUAAADAMQQsAAAAAI4hYAEAAABwDAELAAAAgGMIWAAAAAAcQ8ACAAAA4BgCFgAAAADHELAAAAAAOIaABQAAAMAxBCwAAAAAjiFgAQAAAHAMAQsAAACAYwhYAAAAABxDwAIAAADgGAIWAAAAAMcQsAAAAAA4hoAFAAAAwDEELAAAAACOIWABAAAAcAwBCwAAAIBjCFgAAAAAHEPAAgAAAOAYAhYAAAAAxxCwAAAAADiGgAUAAADAMQQsAAAAAI4hYAEAAABwDAELAAAAgGMIWAAAAAAcQ8ACAAAA4BgCFgAAAADHELAAAAAAOIaABQAAAMAxBCwAAAAAjiFgAQAAAHAMAQsAAACAYwhYAAAAABxDwAIAAADgGAIWAAAAAMcQsAAAAAA4hoAFAAAAwDEELAAAAACOIWABAAAAcAwBCwAAAIBjCFgAAAAAHEPAAgAAAOAYAhYAAAAAxxCwAAAAADiGgAUAAADAMQQsAAAAAI4hYAEAAABwDAELAAAAgGMIWAAAAAAcQ8ACAAAA4BgCFgD8f+3YMREAAAyEsPpXXRMMPyQqOACICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgAQWAAA2xwsAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAEFgAANscLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACABBYAADbHCwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgAQWAAA2xwsAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAuNYDg+CB1MX3ftcAAAAASUVORK5CYII=", "text/plain": [ "" ] @@ -254,6 +335,13 @@ "cell_type": "markdown", "id": "93d2728f", "metadata": { + "papermill": { + "duration": 0.007303, + "end_time": "2026-10-07T01:48:52.322702+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:52.315399+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -263,11 +351,11 @@ "\n", "**Options pour traiter des PDFs :**\n", "\n", - "1. **Assistants API** : Support natif des PDF via l'upload de fichiers (plus complexe)\n", - "2. **Conversion PDF → Image** : Utiliser `pdf2image` ou `PyMuPDF` (méthode utilisée ici)\n", - "3. **Extraction texte** : Si le PDF contient du texte sélectionnable (`PyPDF2`, `pdfplumber`)\n", + "1. **PDF natif dans Chat Completions** : envoyer le PDF directement dans le message (partie de contenu `type: \"file\"`) — c'est la voie qu'exerce l'exemple guidé 1, sur un PDF généré par `reportlab`\n", + "2. **Conversion PDF → Image** : `pdf2image` ou `PyMuPDF`, pour les modèles sans support PDF natif\n", + "3. **Extraction texte** : si le PDF contient du texte sélectionnable (`PyPDF2`, `pdfplumber`)\n", "\n", - "Dans ce notebook, nous créons une **image** qui simule un rapport pour démontrer l'analyse visuelle de documents." + "La cellule de test ci-dessous reste une image (le chemin le plus direct pour l'API Vision) ; l'exemple guidé 1 fabrique ensuite un **vrai PDF** et l'envoie nativement." ] }, { @@ -275,6 +363,19 @@ "execution_count": 5, "id": "f77b2375", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:48:52.337455Z", + "iopub.status.busy": "2026-10-07T01:48:52.337021Z", + "iopub.status.idle": "2026-10-07T01:49:01.852716Z", + "shell.execute_reply": "2026-10-07T01:49:01.851710Z" + }, + "papermill": { + "duration": 9.52524, + "end_time": "2026-10-07T01:49:01.853737+00:00", + "exception": false, + "start_time": "2026-10-07T01:48:52.328497+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -291,24 +392,13 @@ "output_type": "stream", "text": [ "=== Analyse du document ===\n", - "Voici les 3 points clés du rapport avec les chiffres associés :\n", - "\n", - "1) Performance commerciale et traction produit\n", - "- Chiffre d'affaires Q1 : 2,5 M EUR (+15%)\n", - "- Nouveaux clients : 150 (+25%)\n", - "- Satisfaction client : 4,5 / 5\n", - "(lié au lancement réussi du produit Alpha)\n", - "\n", - "2) Expansion géographique\n", - "- Expansion sur le marché européen (mentionnée comme point clé)\n", - "- Objectif Q2 : 3 M EUR (+20%) — indication d'une croissance visée grâce à cette expansion\n", - "\n", - "3) Renforcement des équipes\n", - "- Recrutement de 20 ingénieurs\n", + "Voici les 3 points clés avec les chiffres associés extraits du rapport :\n", "\n", - "Souhaitez‑vous que je synthétise ces points en recommandations ou que j'extraie d'autres indicateurs du rapport ?\n", + "1. Chiffre d'affaires — 2,5 M EUR (+15%). \n", + "2. Acquisition clients & satisfaction — 150 nouveaux clients (+25%) ; satisfaction client 4,5/5. \n", + "3. Recrutement et perspectives — recrutement de 20 ingénieurs ; objectif Q2 : 3 M EUR (+20%).\n", "\n", - "Tokens utilisés: 1983\n" + "Tokens utilisés: 1908\n" ] } ], @@ -354,6 +444,13 @@ "cell_type": "markdown", "id": "4595cd74", "metadata": { + "papermill": { + "duration": 0.006307, + "end_time": "2026-10-07T01:49:01.866233+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:01.859926+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -392,6 +489,13 @@ "cell_type": "markdown", "id": "dd7a4652", "metadata": { + "papermill": { + "duration": 0.008799, + "end_time": "2026-10-07T01:49:01.881471+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:01.872672+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -405,7 +509,9 @@ "\n", "**Points à remarquer :**\n", "- La fonction `get_font()` essaie plusieurs polices (`arial.ttf`, `DejaVuSans.ttf`) avec repli sur la police par défaut : l'image reste lisible quelle que soit la machine\n", - "- Le budget `max_completion_tokens=4000` suit la règle du notebook : les tokens de raisonnement sont déduits de cette limite, et un budget trop bas laisse la réponse vide (#3571)\n" + "- Le budget `max_completion_tokens=4000` suit la règle du notebook : les tokens de raisonnement sont déduits de cette limite, et un budget trop bas laisse la réponse vide (#3571)\n", + "\n", + "**Seconde passe (#18574, item 6).** La résolution de l'étudiante s'arrêtait à l'image — or ce notebook s'intitule « PDF et Web Search », et `reportlab` y est installé depuis la première cellule sans jamais avoir servi. Un volet PDF a été ajouté **après** sa résolution, sans rien lui retirer : le même tableau de ventes, cette fois composé en vrai document PDF, envoyé nativement à l'API. La Lecture compare les deux lectures.\n" ] }, { @@ -413,6 +519,19 @@ "execution_count": 6, "id": "555f6bba", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:49:01.903085Z", + "iopub.status.busy": "2026-10-07T01:49:01.902646Z", + "iopub.status.idle": "2026-10-07T01:49:12.469671Z", + "shell.execute_reply": "2026-10-07T01:49:12.468260Z" + }, + "papermill": { + "duration": 10.57912, + "end_time": "2026-10-07T01:49:12.470884+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:01.891764+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -426,18 +545,16 @@ "- Mars : 160 k EUR\n", "- Avril : 180 k EUR\n", "\n", - "Évolution mois à mois :\n", - "- Févr vs Jan : +25 k EUR (+20,8 %)\n", - "- Mars vs Févr : +15 k EUR (+10,3 %)\n", - "- Avr vs Mars : +20 k EUR (+12,5 %)\n", - "- Total Jan → Avr : +60 k EUR (+50,0 %)\n", + "Analyse de la tendance :\n", + "- Tendance : hausse continue des ventes mois par mois.\n", + "- Gains absolus : +25 k (Jan→Fév), +15 k (Fév→Mar), +20 k (Mar→Avr).\n", + "- Croissances en % : +20,8% (Jan→Fév), +10,3% (Fév→Mar), +12,5% (Mar→Avr).\n", + "- Augmentation totale Janvier→Avril : +60 k (soit +50%).\n", + "- Moyenne : ≈ +20 k EUR par mois (équivalent à un CAGR ≈ 14,5%/mois sur cette période).\n", "\n", - "Tendance :\n", - "- Tendance linéaire (régression) ≈ +19,5 k EUR par mois (intercept ≈ 102,5 k EUR).\n", - "- Taux de croissance composé moyen ≈ 14,5 % par mois (CAGR sur 3 mois).\n", - "Conclusion : la tendance est clairement haussière sur ces 4 mois (croissance soutenue), bien que la série soit courte pour des projections robustes.\n", + "Conclusion : les ventes augmentent régulièrement avec une progression moyenne d'environ 20 k EUR par mois.\n", "\n", - "Tokens utilisés: 1356\n" + "Tokens utilisés: 971\n" ] } ], @@ -501,12 +618,25 @@ "execution_count": 7, "id": "pdfws-ex1-display", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:49:12.492204Z", + "iopub.status.busy": "2026-10-07T01:49:12.491726Z", + "iopub.status.idle": "2026-10-07T01:49:12.499535Z", + "shell.execute_reply": "2026-10-07T01:49:12.498169Z" + }, + "papermill": { + "duration": 0.01993, + "end_time": "2026-10-07T01:49:12.500548+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:12.480618+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "" ] @@ -522,24 +652,149 @@ "display(DisplayImage(data=base64.b64decode(img_b64)))" ] }, + { + "cell_type": "code", + "execution_count": 8, + "id": "pdfws-eg1-pdf-volet", + "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:49:12.520771Z", + "iopub.status.busy": "2026-10-07T01:49:12.520147Z", + "iopub.status.idle": "2026-10-07T01:49:20.013405Z", + "shell.execute_reply": "2026-10-07T01:49:20.011852Z" + }, + "papermill": { + "duration": 7.507146, + "end_time": "2026-10-07T01:49:20.015454+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:12.508308+00:00", + "status": "completed" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PDF genere : 1600 octets, une page A4, 4 lignes de ventes\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Voici l'extraction et l'analyse à partir du document (page 1 : \"Ventes Mensuelles 2026\") :\n", + "\n", + "Données extraites\n", + "- Janvier : 120 kEUR\n", + "- Février : 145 kEUR\n", + "- Mars : 160 kEUR\n", + "- Avril : 180 kEUR\n", + "\n", + "Variations mensuelles\n", + "- Févr vs Jan : +25 kEUR (+20,8 %)\n", + "- Mars vs Févr : +15 kEUR (+10,3 %)\n", + "- Avr vs Mars : +20 kEUR (+12,5 %)\n", + "\n", + "Résumé de la tendance\n", + "- Tendance : clairement haussière sur la période Janvier–Avril.\n", + "- Croissance totale Jan → Avr : +60 kEUR (+50 %).\n", + "- Gain moyen : ≈ 20 kEUR par mois.\n", + "- Taux de croissance moyen (CAGR mensuel) ≈ 14,5 % par mois.\n", + "\n", + "Projection simple pour Mai (optionnel)\n", + "- En prolongeant la progression linéaire moyenne (+20 kEUR/mois) → Mai ≈ 200 kEUR.\n", + "- En prolongeant le taux de croissance moyen (~14,5 %) → Mai ≈ 206 kEUR.\n", + "\n", + "Si vous voulez, je peux :\n", + "- Exporter ces données en CSV/Excel,\n", + "- Faire une projection plus sophistiquée (régression linéaire, lissage, intervalle de confiance),\n", + "- Ajouter un graphique.\n", + "\n", + "Tokens utilises: 1157\n" + ] + } + ], + "source": [ + "# Volet PDF (seconde passe #18574) : le tableau de ventes, mais en VRAI\n", + "# document PDF -- reportlab est installe depuis la cellule d'installation et\n", + "# c'est ici sa premiere utilisation. On reutilise la variable `ventes` definie\n", + "# par la resolution ci-dessus : meme contenu, autre medium.\n", + "from reportlab.lib.pagesizes import A4\n", + "from reportlab.pdfgen import canvas as pdf_canvas\n", + "\n", + "pdf_buffer = io.BytesIO()\n", + "c = pdf_canvas.Canvas(pdf_buffer, pagesize=A4)\n", + "c.setFont(\"Helvetica-Bold\", 16)\n", + "c.drawString(60, 800, \"Ventes Mensuelles 2026\")\n", + "c.setFont(\"Helvetica\", 12)\n", + "y = 760\n", + "for mois, valeur in ventes:\n", + " c.drawString(60, y, f\"{mois} : {valeur}\")\n", + " y -= 20\n", + "c.save()\n", + "pdf_bytes = pdf_buffer.getvalue()\n", + "pdf_b64 = base64.b64encode(pdf_bytes).decode()\n", + "print(f\"PDF genere : {len(pdf_bytes)} octets, une page A4, {len(ventes)} lignes de ventes\")\n", + "\n", + "# La section 1 laissait entendre que Chat Completions n'accepte pas les PDF.\n", + "# La partie de contenu de type \"file\" le permet pourtant -- testons sur un\n", + "# document reel si gpt-5-mini lit un PDF aussi bien qu'une image.\n", + "response_pdf = client.chat.completions.create(\n", + " model=DEFAULT_MODEL,\n", + " messages=[{\n", + " \"role\": \"user\",\n", + " \"content\": [\n", + " {\"type\": \"text\",\n", + " \"text\": \"Extrais les ventes mensuelles de ce document PDF et identifie la tendance.\"},\n", + " {\"type\": \"file\",\n", + " \"file\": {\"filename\": \"ventes_2026.pdf\",\n", + " \"file_data\": f\"data:application/pdf;base64,{pdf_b64}\"}},\n", + " ],\n", + " }],\n", + " max_completion_tokens=4000,\n", + ")\n", + "print(response_pdf.choices[0].message.content)\n", + "print(f\"\\nTokens utilises: {response_pdf.usage.total_tokens}\")" + ] + }, { "cell_type": "markdown", "id": "pdfws-eg1-lecture", - "metadata": {}, + "metadata": { + "papermill": { + "duration": 0.017164, + "end_time": "2026-10-07T01:49:20.048866+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:20.031702+00:00", + "status": "completed" + }, + "tags": [] + }, "source": [ - "### Lecture du résultat : tableau de ventes\n", + "### Lecture du résultat : tableau de ventes — image et PDF\n", "\n", - "**Ce que la sortie montre** : à cette exécution, le modèle relit sans erreur les quatre valeurs du tableau (120k, 145k, 160k et 180k EUR), puis calcule de lui-même les écarts mois à mois, une pente de régression (+19,5 k EUR par mois) et un taux de croissance composé (14,5 % par mois). Ces deux derniers chiffres se vérifient à la main : ils sont justes.\n", + "**Ce que la sortie montre** : à cette exécution, le modèle relit sans erreur les quatre valeurs du tableau (120k, 145k, 160k et 180k EUR) **depuis l'image comme depuis le PDF**, puis calcule de lui-même les écarts mois à mois, un gain moyen de ≈ 20 k EUR par mois et un taux de croissance composé (14,5 % par mois). Ces chiffres se vérifient à la main : ils sont justes — et les deux lectures sont, sur les faits, **identiques**.\n", "\n", - "**Ce que l'exemple ne teste pas** : les valeurs sont **écrites** dans l'image. Le modèle fait donc de la lecture de texte, pas de la lecture de graphique. L'exercice 1 retire les chiffres : il faudra les estimer depuis la hauteur des barres.\n", + "**Ce que le volet PDF établit.** La section 1 laissait entendre que Chat Completions « n'accepte pas les PDF directement ». Cette exécution le réfute : le document de 1 600 octets est passé tel quel en pièce jointe (`type: \"file\"`), et le modèle l'a lu aussi proprement que l'image — même tableau, mêmes variations, même CAGR, plus une projection pour mai (≈ 200 à 206 k EUR selon la méthode) que l'appel image n'avait pas produite. La vérité terrain est vérifiable hors ligne : `pypdf` extrait du PDF exactement le texte qui y a été composé.\n", "\n", - "**Coût** : l'appel a consommé 1356 tokens au total, en comptant l'image et la question en entrée, le raisonnement et la réponse en sortie." + "**Ce que l'exemple ne teste toujours pas** : les valeurs sont **écrites** dans les deux documents. Le modèle fait de la lecture de texte, pas de la lecture de graphique. L'exercice 1 retire les chiffres : il faudra les estimer depuis la hauteur des barres.\n", + "\n", + "**Coût** : l'appel image a consommé **971 tokens**, l'appel PDF **1 157** — soit ≈ 19 % de plus pour le même contenu, le PDF transportant sa structure en plus de son texte. Les deux comptent l'entrée (document + question), le raisonnement et la réponse en sortie." ] }, { "cell_type": "markdown", "id": "pdfws-newex1-md", "metadata": { + "papermill": { + "duration": 0.009037, + "end_time": "2026-10-07T01:49:20.075423+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:20.066386+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -558,9 +813,22 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "pdfws-newex1-code", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:49:20.108912Z", + "iopub.status.busy": "2026-10-07T01:49:20.107966Z", + "iopub.status.idle": "2026-10-07T01:49:20.119194Z", + "shell.execute_reply": "2026-10-07T01:49:20.117674Z" + }, + "papermill": { + "duration": 0.028162, + "end_time": "2026-10-07T01:49:20.120987+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:20.092825+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -618,6 +886,13 @@ "cell_type": "markdown", "id": "f9131c7f", "metadata": { + "papermill": { + "duration": 0.013833, + "end_time": "2026-10-07T01:49:20.159682+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:20.145849+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -643,9 +918,22 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "97ff2601", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:49:20.189066Z", + "iopub.status.busy": "2026-10-07T01:49:20.188003Z", + "iopub.status.idle": "2026-10-07T01:49:57.630701Z", + "shell.execute_reply": "2026-10-07T01:49:57.629351Z" + }, + "papermill": { + "duration": 37.468027, + "end_time": "2026-10-07T01:49:57.642321+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:20.174294+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -678,21 +966,7 @@ "\n", "[]\n", "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=759, start_index=583, title='Videogame stocks slide on Google’s AI model that turns prompts into playable worlds By Reuters', type='url_citation', url='https://www.investing.com/news/stock-market-news/videogame-stocks-slide-on-googles-ai-model-that-turns-prompts-into-playable-worlds-4476909?utm_source=openai'), AnnotationURLCitation(end_index=1251, start_index=1180, title='Trinity Large: An Open 400B Sparse MoE Model | Arcee AI | Building Open Intelligence', type='url_citation', url='https://www.arcee.ai/blog/trinity-large?utm_source=openai'), AnnotationURLCitation(end_index=1666, start_index=1600, title='GLM 4.7', type='url_citation', url='https://zhipuai.ai/blog/f/glm-47?utm_source=openai'), AnnotationURLCitation(end_index=2302, start_index=2112, title='Event Recap: CES Las Vegas | January 2026', type='url_citation', url='https://omdia.tech.informa.com/-/media/tech/omdia/assetfamily/2026/01/16/event-recap-ces-las-vegas-2026/event-recap---ces-las-vegas-2026-pdf.pdf?utm_source=openai'), AnnotationURLCitation(end_index=2849, start_index=2694, title='EU Council puts brakes on Commission’s ambitions to simplify AI Act | AGENCE EUROPE', type='url_citation', url='https://agenceurope.eu/en/bulletin/article/13794/8/eu-council-puts-brakes-on-commissions-ambitions-to-simplify-ai-act?utm_source=openai')], text='Voici un résumé des principales avancées en intelligence artificielle pendant janvier 2026 (dates précises et sources pour chaque point).\\n\\n- Project Genie / Genie 3 — lancement public expérimental (29 janvier 2026) : Google DeepMind a ouvert « Project Genie » (interface web en accès restreint via l’abonnement AI Ultra) permettant de générer et d’explorer des mondes 3D interactifs en temps réel à partir de prompts. L’annonce a été perçue comme un jalon pour les « world models » et a même provoqué une réaction sur les marchés (baisse des actions d’éditeurs/plateformes de jeux). ([investing.com](https://www.investing.com/news/stock-market-news/videogame-stocks-slide-on-googles-ai-model-that-turns-prompts-into-playable-worlds-4476909?utm_source=openai))\\n\\n- Trinity Large — open-weights MoE à l’échelle « frontier » (27 janvier 2026) : le laboratoire Arcee a publié en preview des poids d’un modèle sparse Mixture‑of‑Experts de ~400 milliards de paramètres (activation ~13B), ouvrant un accès rare aux poids d’un modèle à grande échelle et alimentant la recherche et la personnalisation locale. Cela a relancé la dynamique « open-weight » pour modèles de très grande taille. ([arcee.ai](https://www.arcee.ai/blog/trinity-large?utm_source=openai))\\n\\n- GLM‑4.7 / GLM‑4.7‑Flash — MoE efficaces et modèles locaux (janvier 2026) : le groupe Zhipu (Z.ai) a publié des variantes GLM‑4.7 et une version « Flash » (30B total / ~3B activés) conçue pour déployer des capacités de codage/agents en local sur matériel grand public, montrant que les architectures MoE compactes gagnent en efficience pratique. ([zhipuai.ai](https://zhipuai.ai/blog/f/glm-47?utm_source=openai))\\n\\n- L’explosion des « agents » et des plateformes agentiques (début janvier 2026 / CES 2026) : janvier (et en particulier CES 2026) a confirmé la transition vers des systèmes « agentiques » — orchestrateurs multi‑agents, protocoles d’interopérabilité d’outils (qui émergent comme standards) et intégration d’agents dans produits et IDE — avec une effervescence d’outils d’orchestration locale et d’écosystèmes pour déployer des agents autonomes. ([omdia.tech.informa.com](https://omdia.tech.informa.com/-/media/tech/omdia/assetfamily/2026/01/16/event-recap-ces-las-vegas-2026/event-recap---ces-las-vegas-2026-pdf.pdf?utm_source=openai))\\n\\n- Gouvernance et régulation — activités importantes en janvier 2026 : les discussions et étapes opérationnelles autour de l’application de l’AI Act (Union européenne) et d’initiatives internationales se sont intensifiées (ex. consultations, travaux du Conseil/Commission, signatures et préparation d’actes d’application), montrant que janvier a été actif côté règles et mise en conformité. ([agenceurope.eu](https://agenceurope.eu/en/bulletin/article/13794/8/eu-council-puts-brakes-on-commissions-ambitions-to-simplify-ai-act?utm_source=openai))\\n\\nSi vous voulez, je peux :\\n- approfondir un de ces points (technique, impacts industriels ou juridiques) ; \\n- fournir une chronology jour‑par‑jour de janvier 2026 avec liens vers les annonces originales ; \\n- ou rassembler des articles de presse/rapports scientifiques complets sur un sujet précis. Quel niveau de détail préférez‑vous ?', type='output_text', logprobs=[])]\n", + "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=567, start_index=490, title='Introducing Prism | OpenAI', type='url_citation', url='https://openai.com/index/introducing-prism/?utm_source=openai'), AnnotationURLCitation(end_index=1066, start_index=972, title='Google DeepMind', type='url_citation', url='https://deepmind.google/search/?query=forecast+weather+&utm_source=openai'), AnnotationURLCitation(end_index=1551, start_index=1467, title='Advancing regulatory variant effect prediction with AlphaGenome | Nature', type='url_citation', url='https://www.nature.com/articles/s41586-025-10014-0?utm_source=openai'), AnnotationURLCitation(end_index=2019, start_index=1879, title='Preface\\n\\nOur vision for Claude’s character\\n\\nClaude', type='url_citation', url='https://www-cdn.anthropic.com/9214f02e82c4489fb6cf45441d448a1ecd1a3aca/claudes-constitution.pdf?utm_source=openai'), AnnotationURLCitation(end_index=2657, start_index=2492, title='EDPB and EDPS support streamlining AI Act implementation but call for stronger safeguards to protect fundamental rights | European Data Protection Board', type='url_citation', url='https://www.edpb.europa.eu/news/edpb-and-edps-support-streamlining-ai-act-implementation-but-call-for-stronger-safeguards-to_en?utm_source=openai')], text='Voici un résumé concis des principales avancées en intelligence artificielle pendant janvier 2026 (avec dates et pourquoi elles comptent).\\n\\n- OpenAI — Prism : lancement d’un espace de travail \"AI‑native\" pour la rédaction et la collaboration scientifique, intégré à GPT‑5.2 (annoncé le 27 janvier 2026). Objectif : accélérer la rédaction, la gestion des citations et l’analyse scientifique en incorporant un modèle de raisonnement avancé directement dans le flux de travail des chercheurs. ([openai.com](https://openai.com/index/introducing-prism/?utm_source=openai))\\n\\n- Google DeepMind — Project Genie / Genie 3 : mise à disposition d’un prototype (Project Genie, 29 janvier 2026) qui utilise Genie 3, un \"world model\" temps‑réel permettant de générer et d’explorer des mondes interactifs à partir de textes/images. C’est un pas important vers des modèles génératifs qui produisent des environnements dynamiques et jouables, pas seulement des images ou vidéos statiques. ([deepmind.google](https://deepmind.google/search/?query=forecast+weather+&utm_source=openai))\\n\\n- Google DeepMind — AlphaGenome (publication dans Nature, 28–29 janvier 2026) : modèle d’apprentissage profond capable de prédire les effets fonctionnels de variations génomiques sur de très longues séquences (jusqu’à ~1 million de bases). Avancée majeure pour l’application de l’IA en génomique et en biologie computationnelle (interprétation des régions non‑codantes, priorisation d’expériences). ([nature.com](https://www.nature.com/articles/s41586-025-10014-0?utm_source=openai))\\n\\n- Anthropic — \"Claude’s Constitution\" : publication en janvier 2026 d’un long document (≈80 pages) décrivant les valeurs et règles incorporées dans le comportement de Claude (approche dite \"Constitutional AI\"). Marque une étape dans la formalisation interne de la gouvernance et de l’alignement des assistants grands modèles. ([www-cdn.anthropic.com](https://www-cdn.anthropic.com/9214f02e82c4489fb6cf45441d448a1ecd1a3aca/claudes-constitution.pdf?utm_source=openai))\\n\\n- Régulation / gouvernance (UE et initiatives internationales) : en janvier 2026 on a vu une forte activité réglementaire — par exemple des avis et travaux de mise en œuvre autour du AI Act (EDPB/EDPS et groupes de travail sur l’étiquetage/transparence en janvier), préparation des codes de bonnes pratiques et des \"sandboxes\" réglementaires avant l’entrée en vigueur élargie en 2026. Cela reflète le basculement vers une phase d’application et d’enforcement des règles. ([edpb.europa.eu](https://www.edpb.europa.eu/news/edpb-and-edps-support-streamlining-ai-act-implementation-but-call-for-stronger-safeguards-to_en?utm_source=openai))\\n\\nRemarque rapide : janvier 2026 a aussi vu des dizaines d’autres annonces (nouveaux modèles, APIs, outils multimodaux et mises à jour de politiques d’entreprises). Si vous voulez, je peux :\\n- fournir une liste plus longue et classée (technique / produit / politique) avec liens,\\n- donner un résumé plus approfondi d’un des points ci‑dessus (ex. AlphaGenome ou Prism),\\n- ou traduire/résumer les communiqués originaux (PDF/articles) en français.\\n\\nQuelle option préférez‑vous ?', type='output_text', logprobs=[])]\n", "\n" ] } @@ -718,6 +992,13 @@ "cell_type": "markdown", "id": "b77b0e17", "metadata": { + "papermill": { + "duration": 0.006901, + "end_time": "2026-10-07T01:49:57.657581+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:57.650680+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -747,9 +1028,22 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "c46861d7", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:49:57.676264Z", + "iopub.status.busy": "2026-10-07T01:49:57.675829Z", + "iopub.status.idle": "2026-10-07T01:50:14.441125Z", + "shell.execute_reply": "2026-10-07T01:50:14.439616Z" + }, + "papermill": { + "duration": 16.775955, + "end_time": "2026-10-07T01:50:14.442292+00:00", + "exception": false, + "start_time": "2026-10-07T01:49:57.666337+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -772,11 +1066,7 @@ "\n", "[]\n", "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=346, start_index=253, title='Stock Price - Apple', type='url_citation', url='https://investor.apple.com/stock-price/default.aspx?utm_source=openai'), AnnotationURLCitation(end_index=619, start_index=526, title='Stock Price - Apple', type='url_citation', url='https://investor.apple.com/stock-price/default.aspx?utm_source=openai'), AnnotationURLCitation(end_index=866, start_index=780, title='Apple Stock Price In June 30 2026 | StatMuse Money', type='url_citation', url='https://www.statmuse.com/money/ask/apple-stock-price-in-june-30-2026')], text='Voici les chiffres demandés (mesures prises le 30 septembre 2026) :\\n\\n- Cours actuel (intraday) : 329,40 USD (dernier trade indiqué à 09:01:29 UTC le 30 sept. 2026). \\n- Cours de clôture de référence il y a 3 mois (30 juin 2026) : 289,36 USD (clôture). ([investor.apple.com](https://investor.apple.com/stock-price/default.aspx?utm_source=openai))\\n\\nPerformance sur 3 mois (30/06/2026 → 30/09/2026) : \\n- Variation absolue : +40,04 USD (329,40 − 289,36). \\n- Variation en pourcentage : +13,85 % ≈ ((329,40 / 289,36) − 1) × 100. ([investor.apple.com](https://investor.apple.com/stock-price/default.aspx?utm_source=openai))\\n\\nRemarque : si on utilise la clôture ajustée du 30/06/2026 (289,11 USD, qui tient compte des ajustements/dividendes), la performance serait d’environ +13,95 %. ([statmuse.com](https://www.statmuse.com/money/ask/apple-stock-price-in-june-30-2026))\\n\\nSouhaitez-vous que je :\\n- récupère le cours de clôture exact d’aujourd’hui (si le marché ferme) ? \\n- affiche un graphique des 3 derniers mois ? \\n- calcule la performance totale en incluant les dividendes réinvestis ?', type='output_text', logprobs=[])]\n", + "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=361, start_index=275, title='Apple Inc. (AAPL) Stock Historical Prices & Data - Yahoo Finance', type='url_citation', url='https://finance.yahoo.com/quote/AAPL/history/?utm_source=openai'), AnnotationURLCitation(end_index=596, start_index=510, title='Apple Inc. (AAPL) Stock Historical Prices & Data - Yahoo Finance', type='url_citation', url='https://finance.yahoo.com/quote/AAPL/history/?utm_source=openai')], text='Voici les informations demandées (valables au moment de la cote fournie) :\\n\\n- Cours actuel (dernier trade) : 333,63 USD — dernière transaction enregistrée le 7 octobre 2026 à 00:15:00 UTC. \\n- Cours de clôture il y a 3 mois (7 juillet 2026) : 310,66 USD (cours de clôture). ([finance.yahoo.com](https://finance.yahoo.com/quote/AAPL/history/?utm_source=openai))\\n\\nPerformance sur les 3 derniers mois (du 7 juillet 2026 au 7 octobre 2026) : +22,97 USD soit +7,40 %. Calcul : (333,63 − 310,66) / 310,66 = 7,40 %. ([finance.yahoo.com](https://finance.yahoo.com/quote/AAPL/history/?utm_source=openai))\\n\\nSouhaitez‑vous que je :\\n- rafraîchisse la cote en temps réel maintenant,\\n- affiche un graphique des 3 derniers mois,\\n- ou calcule le rendement total en tenant compte des dividendes ?', type='output_text', logprobs=[])]\n", "\n" ] } @@ -804,6 +1094,13 @@ "cell_type": "markdown", "id": "44666bc0", "metadata": { + "papermill": { + "duration": 0.009019, + "end_time": "2026-10-07T01:50:14.463063+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:14.454044+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -839,6 +1136,13 @@ "cell_type": "markdown", "id": "7203a152", "metadata": { + "papermill": { + "duration": 0.0103, + "end_time": "2026-10-07T01:50:14.483938+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:14.473638+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -857,9 +1161,22 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "eac64aba", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:50:14.507390Z", + "iopub.status.busy": "2026-10-07T01:50:14.506841Z", + "iopub.status.idle": "2026-10-07T01:50:50.770261Z", + "shell.execute_reply": "2026-10-07T01:50:50.768655Z" + }, + "papermill": { + "duration": 36.284251, + "end_time": "2026-10-07T01:50:50.780698+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:14.496447+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -867,50 +1184,60 @@ "name": "stdout", "output_type": "stream", "text": [ - "Bonne question — le débat est largement ouvert. Voici un résumé équilibré des principaux arguments pour et contre la régulation des modèles d’IA générative, avec des sources publiques représentatives.\n", + "Courte réponse : il y a des arguments solides des deux côtés. Beaucoup d’acteurs (États, ONG, entreprises) demandent une régulation pour réduire des risques réels (sécurité, désinformation, atteintes aux droits, contrefaçon), tandis que d’autres mettent en garde contre des règles trop larges ou mal conçues qui étoufferaient l’innovation, porteraient atteinte à la liberté d’expression, ou seraient difficiles à appliquer. Ci‑dessous : arguments pour / contre, avec sources.\n", "\n", "Arguments en faveur de la régulation\n", - "- Réduire les risques pour la sécurité publique et la démocratie : des experts et organisations (p. ex. Future of Life Institute) ont appelé à des garde‑fous — y compris des moratoires ciblés, des audits indépendants et un renforcement du financement de la recherche en sûreté — pour éviter des usages dangereux (désinformation à grande échelle, automatisation malveillante, risques systémiques). ([futureoflife.org](https://futureoflife.org/document/policymaking-in-the-pause/?utm_source=openai))\n", - "- Protéger les droits fondamentaux et les personnes (vie privée, non‑discrimination, intégrité cognitive) : des cadres internationaux (UNESCO) et des analyses universitaires recommandent des règles pour la collecte/usage des données, la transparence, et la responsabilité lorsqu’un système affecte la vie des personnes. ([unesco.org](https://www.unesco.org/en/articles/recommendation-ethics-artificial-intelligence?hub=66973&utm_source=openai))\n", - "- Responsabiliser les fournisseurs et améliorer la transparence : la Commission européenne a adopté un cadre (AI Act) qui impose, entre autres, des obligations de gestion des risques et des exigences sur l’identification des contenus générés par IA — objectif : traçabilité, signalement des incidents et niveau minimal de protections pour les utilisateurs. ([digital-strategy.ec.europa.eu](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai?utm_source=openai))\n", - "- Corriger les externalités économiques et sociales : régulation et politiques publiques (formation, filets sociaux, normes du travail) peuvent limiter des impacts négatifs sur l’emploi et répartir les gains technologiques. ([brookings.edu](https://www.brookings.edu/articles/generative-ai-the-american-worker-and-the-future-of-work/?utm_source=openai))\n", + "- Prévenir les risques pour les droits humains, la dignité et l’équité : des cadres internationaux insistent pour que le développement de l’IA respecte les droits humains, la transparence et l’imputabilité. La recommandation de l’UNESCO (2021) propose des principes et actions concrètes pour encadrer l’IA. ([unesdoc.unesco.org](https://unesdoc.unesco.org/in/rest/annotationSVC/DownloadWatermarkedAttachment/attach_import_fa6f4b4a-9298-4a92-ba07-8108ac513153?_=380455eng.pdf&from=1&to=21&utm_source=openai)) \n", + "- Réduire les risques de sécurité et de “modèles dangereux” : entreprises et chercheurs demandent des exigences de test, de surveillance et de reporting pour systèmes puissants (ex. déclarations publiques d’OpenAI appelant à une réglementation réfléchie et à des normes de sécurité). ([openai.com](https://openai.com/index/ai-policy-window/?utm_source=openai)) \n", + "- Lutter contre la désinformation et les deepfakes : les modèles génératifs peuvent produire des vidéos/voix/images très réalistes qui compliquent la détection et menacent la confiance publique — la littérature scientifique documente la difficulté de distinguer deepfakes et originaux. ([nature.com](https://www.nature.com/articles/s41467-024-51998-z?utm_source=openai)) \n", + "- Protéger la propriété intellectuelle et les revenus des créateurs : plusieurs poursuites récentes (ex. Getty / Stability AI, plaintes d’auteurs/illustrateurs) montrent des zones d’incertitude juridique sur l’utilisation d’œuvres pour entraîner des modèles, ce qui motive des règles claires sur les données d’entraînement et la rémunération/licensing. ([news.bloomberglaw.com](https://news.bloomberglaw.com/ip-law/getty-images-sues-stability-ai-over-art-generator-ip-violations?utm_source=openai)) \n", + "- Déployer des obligations adaptées aux “risques élevés” : l’UE a adopté un cadre (AI Act) qui impose obligations de transparence/contrôles pour certains systèmes (y compris obligations spécifiques pour IA générative), montrant qu’un régime juridique est techniquement réalisable. ([commission.europa.eu](https://commission.europa.eu/news-and-media/news/ai-act-enters-force-2024-08-01_en?utm_source=openai))\n", "\n", - "Arguments contre la régulation (ou en faveur d’une approche très prudente)\n", - "- Risque d’étouffer l’innovation et d’handicaper la compétitivité : certains économistes et think tanks estiment que des règles trop larges ou trop hâtives freineront la recherche utile et les retombées économiques positives, surtout si d’autres juridictions n’appliquent pas les mêmes contraintes. ([milkenreview.org](https://www.milkenreview.org/articles/the-case-for-not-regulating-ai?utm_source=openai))\n", - "- Les lois existantes peuvent suffire pour beaucoup de cas : des acteurs industriels et cabinets de conseil soulignent que de nombreuses pratiques nuisibles (fraude, diffamation, discrimination) sont déjà couvertes par le droit actuel, et que la priorité devrait être une application plus efficace plutôt qu’un corpus complètement nouveau. ([siia.net](https://www.siia.net/policies/hiding-in-plain-sight-how-existing-law-already-regulates-ai-and-what-that-means-for-policymaking/?utm_source=openai))\n", - "- Difficulté technique et cadre vite obsolète : la technologie évolue très vite ; une loi trop prescriptive risque de devenir rapidement inadaptée ou d’être contournée. Certains plaident pour des normes flexibles, fondées sur les effets (risk‑based) plutôt que sur des définitions techniques figées. ([brookings.edu](https://www.brookings.edu/articles/the-three-challenges-of-ai-regulation/?utm_source=openai))\n", - "- Coûts et inégalités d’accès : exigences lourdes (tests, audits, conformité) peuvent privilégier les grands acteurs qui ont les moyens, creusant la concentration industrielle si les PME et la recherche publique ne sont pas soutenues. ([openai.com](https://openai.com/index/frontier-ai-regulation/?utm_source=openai))\n", + "Arguments contre (ou réserves) à la régulation stricte\n", + "- Risque d’étouffement de l’innovation et de perte de compétitivité : des think tanks et acteurs industriels avertissent qu’une régulation trop contraignante, trop prescriptive ou uniforme pourrait ralentir la recherche, l’adoption bénéfique et la compétitivité nationale. Ils proposent souvent des approches proportionnelles ou volontaires. ([cato.org](https://www.cato.org/regulation/fall-2026/ai-how-safe-safe-enough?utm_source=openai)) \n", + "- Difficulté d’écrire des règles techniques durables : l’IA évolue vite — une loi rigide peut vite devenir obsolète ou mal adaptée ; beaucoup proposent des outils flexibles (normes, cadres de gestion du risque) plutôt que prescriptions détaillées. Le NIST, par exemple, a publié un AI Risk Management Framework volontaire pour aider à gérer les risques sans verrouiller la R&D. ([nvlpubs.nist.gov](https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf?utm_source=openai)) \n", + "- Liberté d’expression, vie privée et autres effets secondaires : certaines mesures (contrôles d’accès, obligations de filtrage ou vérification d’identité) peuvent porter atteinte à la liberté d’expression, à la vie privée ou aux usages légitimes de la technologie ; des groupes de défense des droits numériques attirent l’attention sur ces risques. ([eff.org](https://www.eff.org/wp/eff-transition-memo-incoming-trump-administration?utm_source=openai)) \n", + "- Coûts et mise en œuvre inégale : petites entreprises et chercheurs craignent des coûts de conformité disproportionnés ; si régulation lourde, on risque de concentrer l’écosystème entre quelques acteurs capables d’absorber ces coûts. ([brookings.edu](https://www.brookings.edu/articles/around-the-halls-what-should-the-regulation-of-generative-ai-look-like/?utm_source=openai))\n", "\n", - "Points pratiques à considérer (compromis et outils de régulation)\n", - "- Approche fondée sur les risques : règles plus strictes pour les usages à fort impact (santé, justice, sécurité nationale) et exigences allégées pour usages faibles risques. (recommandé par de nombreux experts). ([brookings.edu](https://www.brookings.edu/articles/the-three-challenges-of-ai-regulation/?utm_source=openai))\n", - "- Transparence et traçabilité : exigence de labellisation/filigrane des contenus générés, provenance des données d’entraînement, et registres/notification des incidents (le texte de l’AI Act européen inclut des obligations de ce type). ([digital-strategy.ec.europa.eu](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai?utm_source=openai))\n", - "- Tests et certifications indépendants pour les « modèles frontier » : propositions d’obligations d’audits, d’essais de sûreté et de registres publics pour les modèles très puissants (préconisé aussi par certains acteurs industriels). ([openai.com](https://openai.com/index/frontier-ai-regulation/?utm_source=openai))\n", - "- Responsabilité et recours : clarifier qui est responsable en cas de préjudice (fournisseur, intégrateur, utilisateur) et faciliter les voies de recours pour les victimes.\n", - "- Gouvernance internationale et aide aux pays à faibles ressources : coordination multilatérale pour éviter la course au moins disant réglementaire et pour partager standards, outils d’audit et financements pour la sûreté. ([futureoflife.org](https://futureoflife.org/our-work/policy-and-research/?utm_source=openai))\n", + "Synthèse pratique (quel compromis ?)\n", + "- La plupart des experts recommandent une approche équilibrée : règles ciblées sur les usages à risque élevé (p.ex. santé, justice, infrastructures critiques), exigences de transparence et d’audit, mécanismes de responsabilité, et instruments flexibles (normes techniques, profils sectoriels, cadres volontaires) pour les autres usages. Le modèle “risque‑basé + coopération internationale” est souvent préconisé. ([nist.gov](https://www.nist.gov/itl/ai-risk-management-framework?utm_source=openai)) \n", + "- Priorités opérationnelles : clarifier le statut des données d’entraînement et des licences (pour réduire l’incertitude juridique), imposer tests/évaluations de sécurité pour modèles puissants, définir obligations de transparence pour IA générative (p. ex. divulgation quand une sortie est synthétique), et renforcer les capacités des régulateurs pour faire appliquer les règles. ([copyrightalliance.org](https://copyrightalliance.org/ai-lawsuit-developments-2024/?utm_source=openai))\n", "\n", - "Conclusion (bref)\n", - "- La plupart des analyses sérieuses concluent qu’il faut des règles, mais ciblées et adaptatives : réguler « tout et partout » ferait courir des risques — tout comme laisser la technologie totalement non encadrée. En pratique, la solution privilégiée par beaucoup d’experts et d’institutions est une régulation basée sur les risques (plus stricte pour les usages dangereux), accompagnée d’outils concrets (audit, traçabilité, normes techniques, investissement public dans la sûreté et la formation). ([brookings.edu](https://www.brookings.edu/articles/around-the-halls-what-should-the-regulation-of-generative-ai-look-like/?utm_source=openai))\n", + "Sources principales (exemples cités ci‑dessus)\n", + "- UNESCO — Recommendation on the Ethics of Artificial Intelligence (2021). ([unesdoc.unesco.org](https://unesdoc.unesco.org/in/rest/annotationSVC/DownloadWatermarkedAttachment/attach_import_fa6f4b4a-9298-4a92-ba07-8108ac513153?_=380455eng.pdf&from=1&to=21&utm_source=openai)) \n", + "- European Commission — AI Act (entrée en vigueur / cadre européen). ([commission.europa.eu](https://commission.europa.eu/news-and-media/news/ai-act-enters-force-2024-08-01_en?utm_source=openai)) \n", + "- OpenAI — déclarations publiques appelant à une réglementation réfléchie et à des standards de sécurité. ([openai.com](https://openai.com/index/ai-policy-window/?utm_source=openai)) \n", + "- Nature Communications — étude sur la détection humaine des deepfakes (risques de désinformation). ([nature.com](https://www.nature.com/articles/s41467-024-51998-z?utm_source=openai)) \n", + "- Poursuites et débats sur le droit d’auteur (Getty v. Stability AI, autres litiges d’auteurs) — multiple sources d’actualité juridique. ([news.bloomberglaw.com](https://news.bloomberglaw.com/ip-law/getty-images-sues-stability-ai-over-art-generator-ip-violations?utm_source=openai)) \n", + "- Cato Institute / analyses critiques — mises en garde contre une régulation trop pesante qui pourrait freiner l’innovation. ([cato.org](https://www.cato.org/regulation/fall-2026/ai-how-safe-safe-enough?utm_source=openai)) \n", + "- NIST — AI Risk Management Framework (volontaire, 2023) comme alternative/pré‑réglementation pratique. ([nvlpubs.nist.gov](https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf?utm_source=openai))\n", "\n", "Si vous voulez, je peux :\n", - "- Résumer ces arguments en une fiche pour un décideur (1 page) ; ou\n", - "- Proposer un « paquet » réglementaire concret (mesures prioritaires, calendrier, acteurs responsables) adapté à la France/UE ou aux États‑Unis. Which do you prefer?\n", + "- résumer ces arguments en un court brief (1 page) ciblé pour un public politique ou juridique ; \n", + "- proposer un exemple d’approche réglementaire “risque‑basée” (principes + obligations concrètes) ; ou \n", + "- fournir une bibliographie étendue (avec liens et documents) en français. Laquelle préférez‑vous ?\n", "\n", - "Citations trouvées: 13\n", - " - Policymaking In The Pause - Future of Life Institute: https://futureoflife.org/document/policymaking-in-the-pause/?utm_source=openai\n", - " - Recommendation on the Ethics of Artificial Intelligence | UNESCO: https://www.unesco.org/en/articles/recommendation-ethics-artificial-intelligence?hub=66973&utm_source=openai\n", - " - AI Act | Shaping Europe’s digital future: https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai?utm_source=openai\n", - " - Generative AI, the American worker, and the future of work | Brookings: https://www.brookings.edu/articles/generative-ai-the-american-worker-and-the-future-of-work/?utm_source=openai\n", - " - The Case for Not Regulating AI - Milken Institute Review: https://www.milkenreview.org/articles/the-case-for-not-regulating-ai?utm_source=openai\n", - " - Hiding in Plain Sight: How Existing Law Already Regulates AI and What That Means for Policymaking - SIIA: https://www.siia.net/policies/hiding-in-plain-sight-how-existing-law-already-regulates-ai-and-what-that-means-for-policymaking/?utm_source=openai\n", - " - The three challenges of AI regulation | Brookings: https://www.brookings.edu/articles/the-three-challenges-of-ai-regulation/?utm_source=openai\n", - " - Frontier AI regulation: Managing emerging risks to public safety | OpenAI: https://openai.com/index/frontier-ai-regulation/?utm_source=openai\n", - " - The three challenges of AI regulation | Brookings: https://www.brookings.edu/articles/the-three-challenges-of-ai-regulation/?utm_source=openai\n", - " - AI Act | Shaping Europe’s digital future: https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai?utm_source=openai\n", - " - Frontier AI regulation: Managing emerging risks to public safety | OpenAI: https://openai.com/index/frontier-ai-regulation/?utm_source=openai\n", - " - Policy and Research - Future of Life Institute: https://futureoflife.org/our-work/policy-and-research/?utm_source=openai\n", + "Citations trouvées: 18\n", + " - Recommendation on the ethics of artificial intelligence: https://unesdoc.unesco.org/in/rest/annotationSVC/DownloadWatermarkedAttachment/attach_import_fa6f4b4a-9298-4a92-ba07-8108ac513153?_=380455eng.pdf&from=1&to=21&utm_source=openai\n", + " - The AI policy window is open. We need to act. | OpenAI: https://openai.com/index/ai-policy-window/?utm_source=openai\n", + " - Human detection of political speech deepfakes across transcripts, audio, and video | Nature Communications: https://www.nature.com/articles/s41467-024-51998-z?utm_source=openai\n", + " - Getty Images Sues Stability AI Over Art Generator IP Violations: https://news.bloomberglaw.com/ip-law/getty-images-sues-stability-ai-over-art-generator-ip-violations?utm_source=openai\n", + " - AI Act enters into force - European Commission: https://commission.europa.eu/news-and-media/news/ai-act-enters-force-2024-08-01_en?utm_source=openai\n", + " - AI: How Safe Is Safe Enough? | Cato Institute: https://www.cato.org/regulation/fall-2026/ai-how-safe-safe-enough?utm_source=openai\n", + " - Artificial Intelligence Risk Management Framework (AI RMF 1.0): https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf?utm_source=openai\n", + " - EFF Transition Memo to Trump Administration 2025 | Electronic Frontier Foundation: https://www.eff.org/wp/eff-transition-memo-incoming-trump-administration?utm_source=openai\n", " - Around the halls: What should the regulation of generative AI look like? | Brookings: https://www.brookings.edu/articles/around-the-halls-what-should-the-regulation-of-generative-ai-look-like/?utm_source=openai\n", + " - AI Risk Management Framework | NIST: https://www.nist.gov/itl/ai-risk-management-framework?utm_source=openai\n", + " - AI Lawsuit Developments in 2024 (Mid-Year Review) | Copyright Alliance: https://copyrightalliance.org/ai-lawsuit-developments-2024/?utm_source=openai\n", + " - Recommendation on the ethics of artificial intelligence: https://unesdoc.unesco.org/in/rest/annotationSVC/DownloadWatermarkedAttachment/attach_import_fa6f4b4a-9298-4a92-ba07-8108ac513153?_=380455eng.pdf&from=1&to=21&utm_source=openai\n", + " - AI Act enters into force - European Commission: https://commission.europa.eu/news-and-media/news/ai-act-enters-force-2024-08-01_en?utm_source=openai\n", + " - The AI policy window is open. We need to act. | OpenAI: https://openai.com/index/ai-policy-window/?utm_source=openai\n", + " - Human detection of political speech deepfakes across transcripts, audio, and video | Nature Communications: https://www.nature.com/articles/s41467-024-51998-z?utm_source=openai\n", + " - Getty Images Sues Stability AI Over Art Generator IP Violations: https://news.bloomberglaw.com/ip-law/getty-images-sues-stability-ai-over-art-generator-ip-violations?utm_source=openai\n", + " - AI: How Safe Is Safe Enough? | Cato Institute: https://www.cato.org/regulation/fall-2026/ai-how-safe-safe-enough?utm_source=openai\n", + " - Artificial Intelligence Risk Management Framework (AI RMF 1.0): https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf?utm_source=openai\n", "\n", - "Nombre de sources DISTINCTES: 10\n" + "Nombre de sources DISTINCTES: 11\n" ] } ], @@ -953,7 +1280,16 @@ { "cell_type": "markdown", "id": "pdfws-eg2-lecture", - "metadata": {}, + "metadata": { + "papermill": { + "duration": 0.009392, + "end_time": "2026-10-07T01:50:50.800260+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:50.790868+00:00", + "status": "completed" + }, + "tags": [] + }, "source": [ "### Lecture du résultat : comparaison multi-sources\n", "\n", @@ -968,6 +1304,13 @@ "cell_type": "markdown", "id": "pdfws-newex2-md", "metadata": { + "papermill": { + "duration": 0.010446, + "end_time": "2026-10-07T01:50:50.823771+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:50.813325+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -986,9 +1329,22 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "pdfws-newex2-code", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:50:50.849014Z", + "iopub.status.busy": "2026-10-07T01:50:50.848555Z", + "iopub.status.idle": "2026-10-07T01:50:50.855801Z", + "shell.execute_reply": "2026-10-07T01:50:50.854346Z" + }, + "papermill": { + "duration": 0.023189, + "end_time": "2026-10-07T01:50:50.856876+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:50.833687+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -1038,6 +1394,13 @@ "cell_type": "markdown", "id": "7813035f", "metadata": { + "papermill": { + "duration": 0.011659, + "end_time": "2026-10-07T01:50:50.877832+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:50.866173+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1059,9 +1422,22 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "76a872ee", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:50:50.900675Z", + "iopub.status.busy": "2026-10-07T01:50:50.900338Z", + "iopub.status.idle": "2026-10-07T01:50:58.413100Z", + "shell.execute_reply": "2026-10-07T01:50:58.411491Z" + }, + "papermill": { + "duration": 7.526139, + "end_time": "2026-10-07T01:50:58.414582+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:50.888443+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -1078,9 +1454,9 @@ "output_type": "stream", "text": [ "Données extraites du document:\n", - "- Chiffre d'affaires : 2.5M EUR \n", - "- Taux de croissance indiqué : +15% \n", - "- Perspectives Q2 : Objectif 3M EUR (+20%)\n", + "- Chiffre d'affaires : 2,5 M EUR\n", + "- Taux de croissance : +15%\n", + "- Perspectives Q2 : Objectif 3 M EUR (+20%)\n", "\n", "=== ÉTAPE 2 : Enrichissement avec données web ===\n", "\n" @@ -1093,13 +1469,7 @@ "=== Analyse enrichie (Document + Web) ===\n", "[]\n", "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[]\n", - "\n", - "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=566, start_index=414, title='FactSet Earnings Insight', type='url_citation', url='https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf'), AnnotationURLCitation(end_index=1244, start_index=1054, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars'), AnnotationURLCitation(end_index=1609, start_index=1457, title='FactSet Earnings Insight', type='url_citation', url='https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf'), AnnotationURLCitation(end_index=2176, start_index=2024, title='FactSet Earnings Insight', type='url_citation', url='https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf'), AnnotationURLCitation(end_index=2753, start_index=2601, title='FactSet Earnings Insight', type='url_citation', url='https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf'), AnnotationURLCitation(end_index=3160, start_index=3020, title='Global Economy Shakes Off Tariff Shock Amid Tech-Driven Boom', type='url_citation', url='https://www.imf.org/en/blogs/articles/2026/01/19/global-economy-shakes-off-tariff-shock-amid-tech-driven-boom?utm_source=openai'), AnnotationURLCitation(end_index=3764, start_index=3612, title='FactSet Earnings Insight', type='url_citation', url='https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf')], text='Voici une analyse comparative brève (Q1 2026 = 2,5 M€ ; croissance +15% ; objectif Q2 = 3,0 M€ soit +20%).\\n\\nPoints clés\\n- Référence secteur (Q1 / 2026) : la croissance moyenne des revenus pour l’ensemble du marché (S&P 500) sur Q1 2026 était d’environ +9,6%, tandis que le sous‑secteur Information Technology a affiché une croissance beaucoup plus élevée (fortement portée par les semi‑conducteurs) (~+27% en Q1). ([advantage.factset.com](https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf)) \\n- Prévisions 2026 / tendance : les grands instituts signalent une forte dynamique IT portée par les investissements en IA — les estimations de croissance du marché IT pour 2026 varient selon les sources (par ex. ~10–11% selon Gartner dans son prévision initiale, d’autres mises à jour/analyses relèvent des fourchettes plus élevées ~14% ou des prévisions plus modestes ~7–8% selon l’agence). Cela traduit une forte hétérogénéité sectorielle (IA, semi‑conducteurs, logiciel, services). ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars)) \\n- Perspectives Q2 2026 (analystes) : les estimateurs projettent pour le S&P/Q2 2026 une croissance des revenus autour de ~9% (projection consensus), donc nettement en dessous du +20% que votre entreprise vise. ([advantage.factset.com](https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf))\\n\\nComparaison synthétique avec votre entreprise\\n- Q1 (+15%) : au‑dessus de la moyenne large du marché (≈+9.6%) et de la plupart des estimations globales d’IT spending (~10–11%), donc performance supérieure au « marché global ». Toutefois votre croissance reste inférieure à la très forte performance moyenne du seul sous‑secteur IT (≈+27%) qui est distordue par quelques segments très cycliques (semi‑conducteurs). ([advantage.factset.com](https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf)) \\n- Objectif Q2 (+20% → 3,0 M€) : c’est ambitieux par rapport aux attentes sectorielles pour Q2 (≈+9%). Atteignable si votre entreprise exploite une niche à forte demande (ex. produits/services liés à l’IA, semiconducteurs, contrats d’entreprise récurrents) ou si vous avez des effets de base/une vente ponctuelle importante ; mais risqué si la croissance dépend uniquement d’un élargissement organique sur un marché moyen. ([advantage.factset.com](https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf))\\n\\nRisques/contexte macro (à garder en tête)\\n- Le cycle 2026 reste porté par l’investissement en IA mais exposé aux chocs macro (inflation/énergie/géopolitique) qui peuvent modérer la demande. Cela augmente l’incertitude pour des objectifs agressifs sur un trimestre. ([imf.org](https://www.imf.org/en/blogs/articles/2026/01/19/global-economy-shakes-off-tariff-shock-amid-tech-driven-boom?utm_source=openai))\\n\\nCourte conclusion\\n- Votre Q1 (+15%) est supérieur à la moyenne large du marché et à la plupart des prévisions globales d’IT spending, mais votre cible Q2 (+20%) est clairement au‑dessus du consensus sectoriel (≈+9%). Si vous opérez dans un segment AI/semiconducteurs ou avez des drivers ponctuels, l’objectif peut être réaliste ; sinon il faudra des éléments explicatifs (nouveaux contrats, lancements, saisonnalité) et surveiller les risques macro. ([advantage.factset.com](https://advantage.factset.com/hubfs/Website/Resources%20Section/Research%20Desk/Earnings%20Insight/EarningsInsight_031926.pdf))\\n\\nSi vous voulez, je peux : (a) remettre ces chiffres dans un mini‑tableau comparatif chiffré, (b) vérifier des benchmarks plus précis pour votre sous‑segment (software, semiconducteurs, services, etc.) — précisez le sous‑secteur et la zone géographique souhaitée.', type='output_text', logprobs=[])]\n", + "[ResponseOutputText(annotations=[], text='Avant de comparer précisément : préférez-vous une comparaison avec le secteur tech mondial, le secteur tech en Europe (ou zone euro / France), ou un sous-secteur particulier (ex. SaaS, hardware, semiconducteurs) ?', type='output_text', logprobs=[])]\n", "\n" ] } @@ -1167,6 +1537,13 @@ "cell_type": "markdown", "id": "254cf977", "metadata": { + "papermill": { + "duration": 0.010047, + "end_time": "2026-10-07T01:50:58.434919+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:58.424872+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1220,6 +1597,13 @@ "cell_type": "markdown", "id": "e2c6e005", "metadata": { + "papermill": { + "duration": 0.011303, + "end_time": "2026-10-07T01:50:58.456972+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:58.445669+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1230,9 +1614,22 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "e8e3f082", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:50:58.481677Z", + "iopub.status.busy": "2026-10-07T01:50:58.481087Z", + "iopub.status.idle": "2026-10-07T01:51:45.737788Z", + "shell.execute_reply": "2026-10-07T01:51:45.736324Z" + }, + "papermill": { + "duration": 47.284015, + "end_time": "2026-10-07T01:51:45.753613+00:00", + "exception": false, + "start_time": "2026-10-07T01:50:58.469598+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -1248,7 +1645,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Affirmation extraite: L'affirmation principale : pour le Q2 l'objectif est de 3M EUR, soit une croissance prévue de +20% (contre 2,5M EUR au Q1, +15%).\n", + "Affirmation extraite: L'affirmation principale est que pour le T2 l'objectif est de 3M EUR, soit une croissance prévue de +20% par rapport au T1.\n", "\n" ] }, @@ -1259,7 +1656,7 @@ "=== Résultat de la vérification ===\n", "[]\n", "[]\n", - "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=860, start_index=652, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?utm_source=openai'), AnnotationURLCitation(end_index=1196, start_index=1079, title='The AI Supercycle:', type='url_citation', url='https://www.idc.com/wp-content/uploads/2026/04/IDC-Directions-AI-Supercycle-Whalen.pdf?utm_source=openai'), AnnotationURLCitation(end_index=1772, start_index=1664, title='ICT sector - value added, employment and R&D', type='url_citation', url='https://ec.europa.eu/eurostat/statistics-explained/SEPDF/cache/64771.pdf?utm_source=openai'), AnnotationURLCitation(end_index=2217, start_index=2088, title='IDC - DX Software in Transition: AI Investment Trends by Sector', type='url_citation', url='https://www.idc.com/resource-center/blog/dx-software-in-transition-ai-investment-trends-by-sector/?utm_source=openai'), AnnotationURLCitation(end_index=2756, start_index=2548, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?utm_source=openai'), AnnotationURLCitation(end_index=3455, start_index=3334, title='McKinsey Technology Trends Outlook 2026', type='url_citation', url='https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-top-trends-in-tech?utm_source=openai'), AnnotationURLCitation(end_index=4047, start_index=3939, title='ICT sector - value added, employment and R&D', type='url_citation', url='https://ec.europa.eu/eurostat/statistics-explained/SEPDF/cache/64771.pdf?utm_source=openai'), AnnotationURLCitation(end_index=5345, start_index=5137, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?utm_source=openai'), AnnotationURLCitation(end_index=5570, start_index=5453, title='The AI Supercycle:', type='url_citation', url='https://www.idc.com/wp-content/uploads/2026/04/IDC-Directions-AI-Supercycle-Whalen.pdf?utm_source=openai'), AnnotationURLCitation(end_index=5799, start_index=5678, title='McKinsey Technology Trends Outlook 2026', type='url_citation', url='https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-top-trends-in-tech?utm_source=openai'), AnnotationURLCitation(end_index=6000, start_index=5892, title='ICT sector - value added, employment and R&D', type='url_citation', url='https://ec.europa.eu/eurostat/statistics-explained/SEPDF/cache/64771.pdf?utm_source=openai'), AnnotationURLCitation(end_index=6250, start_index=6109, title='Market Forecast: Worldwide Software as a Service Applications and Platform as a Service Forecast, 2026–2030', type='url_citation', url='https://www.marketresearch.com/IDC-v2477/Forecast-Worldwide-Software-Service-Applications-46211032/?utm_source=openai')], text='Résumé rapide de l’affirmation et calculs\\n- Affirmation : Q1 = 2,5 M€ (croissance +15%), objectif Q2 = 3,0 M€ (croissance +20% par rapport à Q1). \\n- Vérification arithmétique : 3,0 / 2,5 = 1,20 → +20% QoQ. Si ce taux de +20% était soutenu chaque trimestre, l’effet annualisé serait (1,20^4 − 1) ≈ +107% sur un an (x ≈ 2,07). \\n\\nTendances macro/secteur (2026) — points saillants\\n- Monde : les dépenses IT mondiales sont attendues en forte croissance en 2026 (autour de +10,8% selon Gartner, publication du 3 février 2026). Les dépenses liées à la GenAI croissent beaucoup plus vite (chiffres à deux‑chiffres/hauts pourcentages pour les modèles GenAI). ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?utm_source=openai)) \\n- Estimations alternatives : IDC indique aussi une forte dynamique 2026 liée à l’IA (notamment un « AI supercycle ») et des prévisions de croissance du marché IT global proches de 9–10% pour 2026 selon leurs guides. ([idc.com](https://www.idc.com/wp-content/uploads/2026/04/IDC-Directions-AI-Supercycle-Whalen.pdf?utm_source=openai)) \\n- Europe / UE : la croissance de la « valeur ajoutée » du secteur TIC en Europe est beaucoup plus modérée et volatile : Eurostat montre une croissance modeste ces dernières années (quelques % par an) avec des variations récentes et une part sectorielle qui s’est stabilisée/pas systématiquement en hausse. Les dynamiques nationales et segment par segment (cloud, SaaS, semi‑conducteurs, services AI) divergent fortement. (données Eurostat, mises à jour 2025–2026). ([ec.europa.eu](https://ec.europa.eu/eurostat/statistics-explained/SEPDF/cache/64771.pdf?utm_source=openai)) \\n- Segments haute‑croissance : les sous‑segments liés à l’IA, cloud, SaaS/plateformes et certains logiciels d’entreprise affichent des taux bien supérieurs à la moyenne sectorielle — IDC et McKinsey soulignent que agentic AI, plateformes cloud et logiciels AI‑first sont les moteurs principaux de croissance 2026. ([idc.com](https://www.idc.com/resource-center/blog/dx-software-in-transition-ai-investment-trends-by-sector/?utm_source=openai))\\n\\nL’affirmation (+20% Q‑o‑Q) est‑elle réaliste ?\\n- Contexte comparatif : +20% QoQ (soit ≈+107% YoY si soutenu) est nettement au‑dessus de la croissance moyenne du marché IT/tech (≈9–11% YoY en 2026 selon Gartner/IDC). Par conséquent, pour une entreprise « moyenne » du secteur la cible est ambitieuse par rapport au marché global. ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?utm_source=openai)) \\n- Cas où c’est réaliste : la cible est raisonnable / atteignable si l’entreprise se trouve dans l’un des cas suivants : lancement d’un produit à fort effet de levier (SaaS/plateforme) avec PMF confirmé, signature d’un ou plusieurs gros contrats récurrents qui basculent en Q2, forte accélération liée à une fonctionnalité AI différenciante, ou base de revenus petite (les pourcentages sont plus faciles à obtenir sur des bases faibles). Les rapports McKinsey/IDC montrent que les niches AI/agentic software peuvent connaître des croissance à plusieurs dizaines de pourcents. ([mckinsey.com](https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-top-trends-in-tech?utm_source=openai)) \\n- Cas où c’est peu réaliste : si vos revenus Q1 = 2,5 M€ sont déjà « matures » (clients récurrents stables, churn faible mais croissance organique lente), si votre pipeline commercial ne supporte pas la conversion requise, ou si la saisonnalité Q2 est historiquement faible, une progression de +20% serait improbable sans événement ponctuel (gros contrat, hausse de prix importante, fusion/acquisition). (Contexte Eurostat / tendances régionales : croissance sectorielle modérée). ([ec.europa.eu](https://ec.europa.eu/eurostat/statistics-explained/SEPDF/cache/64771.pdf?utm_source=openai))\\n\\nRecommandations rapides pour valider la faisabilité (checklist)\\n- Pipeline commercial (valeur totale, taux de conversion historique, délai moyen de closing) — calculer le revenu attendu par probabilité. \\n- Bookings et contrats signés déjà engagés pour Q2 (ARR/MRR convertibles). \\n- Churn et expansion net revenue retention (NRR) — NRR >100% rend des sauts plus plausibles. \\n- Taille moyenne des deals et nombre de deals requis pour atteindre +0,5 M€ additionnels. \\n- Impact de la saisonnalité et des remises/CPA nécessaires. \\n- Effets one‑off (un gros contrat non récurrent) à séparer des revenus récurrents.\\n\\nSi vous voulez, je peux :\\n- a) Simuler 2–3 scénarios (pessimiste / réaliste / optimiste) montrant combien de nouveaux deals / valeur pipeline / taux de conversion sont nécessaires pour atteindre 3,0 M€ en Q2 ; \\n- b) Évaluer votre objectif si vous me donnez le pipeline, le nombre moyen de deals, le taux de conversion et le churn. \\n\\nSources principales consultées (sélection 2026)\\n- Gartner — \"Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026\" (3 Feb 2026). ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?utm_source=openai)) \\n- IDC — analyses 2026 sur l’AI supercycle et guides de dépenses (WW 2026 forecasts / AI spending guide). ([idc.com](https://www.idc.com/wp-content/uploads/2026/04/IDC-Directions-AI-Supercycle-Whalen.pdf?utm_source=openai)) \\n- McKinsey — Technology Trends Outlook / Global Tech Agenda 2026 (analyses sur agentic AI, cloud, etc.). ([mckinsey.com](https://www.mckinsey.com/capabilities/tech-and-ai/our-insights/the-top-trends-in-tech?utm_source=openai)) \\n- Eurostat — séries et note sur le secteur ICT / valeur ajoutée (mises à jour 2025–2026). ([ec.europa.eu](https://ec.europa.eu/eurostat/statistics-explained/SEPDF/cache/64771.pdf?utm_source=openai)) \\n- IDC / Market forecasts — SaaS & PaaS 2026–2030 (croissance des logiciels cloud et impact d’agentic AI). ([marketresearch.com](https://www.marketresearch.com/IDC-v2477/Forecast-Worldwide-Software-Service-Applications-46211032/?utm_source=openai))\\n\\nSouhaitez‑vous que je fasse la simulation chiffrée (scénarios) pour votre objectif Q2 ? Si oui, fournissez pipeline / ARR / taux de conversion / churn pour un résultat précis.', type='output_text', logprobs=[])]\n" + "[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=578, start_index=341, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai'), AnnotationURLCitation(end_index=1019, start_index=939, title='SaaS Benchmarks 2026: Growth, NRR, CAC & Margins | Konabayev', type='url_citation', url='https://konabayev.com/blog/saas-benchmarks/?utm_source=openai'), AnnotationURLCitation(end_index=1452, start_index=1215, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai'), AnnotationURLCitation(end_index=2011, start_index=1774, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai'), AnnotationURLCitation(end_index=2524, start_index=2287, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai'), AnnotationURLCitation(end_index=3046, start_index=2966, title='SaaS Benchmarks 2026: Growth, NRR, CAC & Margins | Konabayev', type='url_citation', url='https://konabayev.com/blog/saas-benchmarks/?utm_source=openai'), AnnotationURLCitation(end_index=3366, start_index=3271, title='European Commission - Press', type='url_citation', url='https://europa.eu/newsroom/ecpc-failover/pdf/ip-26-1120_en.pdf?utm_source=openai'), AnnotationURLCitation(end_index=4273, start_index=4193, title='SaaS Benchmarks 2026: Growth, NRR, CAC & Margins | Konabayev', type='url_citation', url='https://konabayev.com/blog/saas-benchmarks/?utm_source=openai'), AnnotationURLCitation(end_index=4849, start_index=4612, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai'), AnnotationURLCitation(end_index=5255, start_index=5116, title='2026 Private B2B SaaS Company Growth Rate Benchmarks - SaaS Capital', type='url_citation', url='https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/?department=sales&utm_source=openai'), AnnotationURLCitation(end_index=5553, start_index=5473, title='SaaS Benchmarks 2026: Growth, NRR, CAC & Margins | Konabayev', type='url_citation', url='https://konabayev.com/blog/saas-benchmarks/?utm_source=openai'), AnnotationURLCitation(end_index=6079, start_index=5940, title='2026 Private B2B SaaS Company Growth Rate Benchmarks - SaaS Capital', type='url_citation', url='https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/?department=sales&utm_source=openai'), AnnotationURLCitation(end_index=6699, start_index=6619, title='SaaS Benchmarks 2026: Growth, NRR, CAC & Margins | Konabayev', type='url_citation', url='https://konabayev.com/blog/saas-benchmarks/?utm_source=openai'), AnnotationURLCitation(end_index=7479, start_index=7242, title='Gartner Forecasts Worldwide IT Spending to Grow 10.8% in 2026, Totaling $6.15 Trillion', type='url_citation', url='https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai'), AnnotationURLCitation(end_index=7702, start_index=7563, title='2026 Private B2B SaaS Company Growth Rate Benchmarks - SaaS Capital', type='url_citation', url='https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/?department=sales&utm_source=openai'), AnnotationURLCitation(end_index=7869, start_index=7789, title='SaaS Benchmarks 2026: Growth, NRR, CAC & Margins | Konabayev', type='url_citation', url='https://konabayev.com/blog/saas-benchmarks/?utm_source=openai'), AnnotationURLCitation(end_index=8086, start_index=7947, title='AI Radar 2026-Web-Jan-2026-Edit', type='url_citation', url='https://web-assets.bcg.com/73/8e/cc44cbc14a3b81695f8a3de28ff1/ai-radar-2026-web-jan-2026-edit.pdf?utm_source=openai'), AnnotationURLCitation(end_index=8287, start_index=8170, title='Digitalisation in Europe – 2026 edition - Interactive publications - Eurostat', type='url_citation', url='https://ec.europa.eu/eurostat/en/web/interactive-publications/digitalisation-2026?utm_source=openai')], text='Merci — je vais répondre en deux parties : 1) tendances macro / sectorielles 2026 pertinentes pour le « tech », et 2) évaluation de la faisabilité de l’objectif T2 = 3 M€ (+20 % vs T1) avec actions concrètes à vérifier.\\n\\nRésumé rapide (si vous n’avez pas le temps)\\n- Croissance des dépenses IT mondiale prévue en 2026 : ≈ +10,8 % (Gartner). ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai)) \\n- Benchmarks SaaS récents : la médiane de croissance annuelle s’est normalisée dans les mid‑20 % (benchmarks privés 2024–26), donc la croissance QoQ moyenne nécessaire pour atteindre ~26 % YoY est ~6 % par trimestre ; des croissances QoQ de +20 % sont plutôt caractéristiques d’entreprises très tôt/haut‑croissance ou tirées par des effets AI/événementiels. ([konabayev.com](https://konabayev.com/blog/saas-benchmarks/?utm_source=openai)) \\n- L’IA / spend GenAI est un gros vecteur de croissance (dépenses modèles GenAI projetées en forte hausse en 2026), ce qui peut rendre des cibles ambitieuses plus plausibles pour des offres AI. ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai))\\n\\n1) Tendances 2026 — points clés (avec sources)\\n- Dépenses IT / tech globales : Gartner prévoit une croissance des dépenses IT mondiales en 2026 de ~10,8 % (IT spending total attendu ~6,15 T$), avec des segments liés à l’IA en forte accélération. Cela indique un contexte global porteur mais hétérogène par sous‑secteur. ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai)) \\n- Poids de l’IA / GenAI : Gartner et autres observateurs mettent en avant des taux de croissance très élevés pour les dépenses liées aux modèles generative AI (ex. projections fortes en 2026), apportant des opportunités de croissance rapide pour les produits/solutions AI. ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai)) \\n- Benchmarks SaaS et croissance privée : les enquêtes et reviews 2025–2026 montrent que la médiane de croissance annuelle pour les sociétés SaaS privées s’est normalisée autour du milieu des 20 % (varie fortement selon stade/ARR). Les métriques (NRR, churn, CAC payback) sont devenues critiques pour soutenir une croissance soutenue. Les top‑quartile continuent d’afficher 50 %+ YoY; les entreprises « scale » affichent des taux plus bas. ([konabayev.com](https://konabayev.com/blog/saas-benchmarks/?utm_source=openai)) \\n- Europe / macro local : la croissance économique de l’UE en 2026 reste modérée (projections officielles 2026 en légère décélération vs 2025), ce qui peut freiner certains segments B2B dépendants du cycle macro en Europe. ([europa.eu](https://europa.eu/newsroom/ecpc-failover/pdf/ip-26-1120_en.pdf?utm_source=openai))\\n\\n2) Estimation de la réalisme de l’affirmation (T2 = 3M€, +20% vs T1)\\n- Implication chiffrée immédiate : si T2 = 3,0 M€ et que c’est +20 % vs T1, alors T1 = 2,5 M€. Une croissance séquentielle de +20 % sur un trimestre, si elle se répétait chaque trimestre, correspondrait à ~+107 % de croissance annualisée ((1,20)^4 − 1 ≈ 107 %). Cette conversion montre l’ambition : +20 % QoQ = très élevé comme rythme soutenu. (calcul simple, sans source externe)\\n- Comparaison aux benchmarks : la médiane SaaS YoY (~mid‑20 %) correspond à un QoQ moyen d’environ (1+0.26)^(1/4) − 1 ≈ +6 % par trimestre. Autrement dit, +20 % QoQ est nettement supérieur à la médiane sectorielle et s’aligne plutôt avec des entreprises early‑stage ou fortement alimentées par un effet temporaire (nouveau produit virulent, gros contrat ponctuel, effet IA). ([konabayev.com](https://konabayev.com/blog/saas-benchmarks/?utm_source=openai))\\n- Par sous‑secteur : pour des offres fortement liées à l’IA ou pour des startups en phase d’hyper‑croissance, +20 % QoQ est plausible (les dépenses GenAI et la demande pour solutions AI ont fortement augmenté en 2026). Pour hardware, semi‑conduc‑teurs ou entreprises B2B matures, c’est beaucoup moins probable sans événement particulier. ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai))\\n\\nConclusion synthétique\\n- L’objectif T2 = 3 M€ (+20 % vs T1) est ambitieux. Il est :\\n - Plausible si votre entreprise est en phase early‑growth / top‑quartile SaaS / offre fortement liée à l’IA, avec NRR élevé, pipeline qualifié et capacité commerciale suffisante. ([saas-capital.com](https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/?department=sales&utm_source=openai)) \\n - Probablement irréaliste comme objectif récurrent pour une société mature non‑AI ou sans accélérateurs (gros contrat ponctuel, campagne marketing exceptionnelle), car il dépasse largement la médiane sectorielle. ([konabayev.com](https://konabayev.com/blog/saas-benchmarks/?utm_source=openai))\\n\\n3) Vérifications opérationnelles à faire (checklist rapide)\\n- Chiffres de base : confirmer que T1 = 2,5 M€ (CA trimestriel). \\n- Pipeline commercial : couverture pipeline pour T2 ≥ 3× objectif de bookings (règle empirique) ; taux de conversion historique. \\n- Churn / NRR : NRR > 100–110 % rend une forte croissance plus soutenable ; churn élevé la rend impossible. (benchmarks SaaS). ([saas-capital.com](https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/?department=sales&utm_source=openai)) \\n- Sales capacity & ramp : quotas, nouveaux vendeurs et leur ramp time — peuvent-ils produire +20 % en 1 trimestre ? \\n- Contrats one‑offs vs récurrents : vérifier poids des gros contrats ponctuels (risque de revenir à la moyenne ensuite). \\n- Saisonnière et effet marché (ex. cycles budgétaires clients, événements IA, salons) : y a‑t‑il un effet Q2 qui favorise naturellement la hausse ? \\n- Coûts / burn : quel CAC / dépenses marketing nécessaires pour générer +20 % — acceptable pour la marge / trésorerie ? (benchmarks CAC payback). ([konabayev.com](https://konabayev.com/blog/saas-benchmarks/?utm_source=openai))\\n\\nSi vous voulez, je peux :\\n- A) Faire une évaluation plus précise et chiffrée pour votre cas : fournissez T1 exact (2,5 M€ ?), modèle (SaaS/B2B/hardware), NRR/churn, pipeline actuel et je simulerai la probabilité d’atteindre 3 M€ et le CAC attendu. \\n- B) Préparer un court tableau de seuils (pipeline requis, NRR minimal, churn max) qui rendent +20 % plausible selon votre ARR/stade.\\n\\nSources principales consultées (sélection) :\\n- Gartner — « Worldwide IT spending to grow 10.8% in 2026 » (prévisions 2026, mention forte croissance GenAI). ([gartner.com](https://www.gartner.com/en/newsroom/press-releases/2026-02-03-gartner-forecasts-worldwide-it-spending-to-grow-10-point-8-percent-in-2026-totaling-6-point-15-trillion-dollars?trk=public_post_comment-text&utm_source=openai)) \\n- SaaS Capital / private SaaS benchmarks 2026 (croissance par stade, NRR/churn). ([saas-capital.com](https://www.saas-capital.com/research/private-saas-company-growth-rate-benchmarks/?department=sales&utm_source=openai)) \\n- Synthèses/benchmarks SaaS 2026 (médiane croissance mid‑20 % ; top quartile 50%+). ([konabayev.com](https://konabayev.com/blog/saas-benchmarks/?utm_source=openai)) \\n- BCG — AI Radar / analyses 2026 (adoption IA comme moteur de croissance). ([web-assets.bcg.com](https://web-assets.bcg.com/73/8e/cc44cbc14a3b81695f8a3de28ff1/ai-radar-2026-web-jan-2026-edit.pdf?utm_source=openai)) \\n- Eurostat / Commission Européenne — context macro‑EU 2026 (croissance modérée). ([ec.europa.eu](https://ec.europa.eu/eurostat/en/web/interactive-publications/digitalisation-2026?utm_source=openai))\\n\\nVoulez‑vous que j’examine la faisabilité pour votre cas précis ? Si oui, envoyez‑moi : T1 réel, modèle d’affaires (SaaS/transactionnel/licence), NRR ou churn, pipeline (valeur en cours), et je fournis une simulation et recommandations d’actions prioritaires.', type='output_text', logprobs=[])]\n" ] } ], @@ -1315,6 +1712,13 @@ "cell_type": "markdown", "id": "1af18f09", "metadata": { + "papermill": { + "duration": 0.009305, + "end_time": "2026-10-07T01:51:45.772288+00:00", + "exception": false, + "start_time": "2026-10-07T01:51:45.762983+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1360,6 +1764,13 @@ "cell_type": "markdown", "id": "d9e38a38", "metadata": { + "papermill": { + "duration": 0.008999, + "end_time": "2026-10-07T01:51:45.788605+00:00", + "exception": false, + "start_time": "2026-10-07T01:51:45.779606+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1378,9 +1789,22 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "c05d92d4", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:51:45.811237Z", + "iopub.status.busy": "2026-10-07T01:51:45.810869Z", + "iopub.status.idle": "2026-10-07T01:52:20.664554Z", + "shell.execute_reply": "2026-10-07T01:52:20.663096Z" + }, + "papermill": { + "duration": 34.881624, + "end_time": "2026-10-07T01:52:20.679218+00:00", + "exception": false, + "start_time": "2026-10-07T01:51:45.797594+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -1389,70 +1813,44 @@ "output_type": "stream", "text": [ "=== Résumé ===\n", - "J’ai fait une recherche web. Voici en points clés et courts les différences principales entre RAG (retrieval‑augmented generation) et le fine‑tuning pour les LLMs en 2026, avec sources.\n", - "\n", - "- Principe / où ça agit :\n", - " - RAG : ajoute une couche de récupération de documents à l’inférence — le modèle reste inchangé. ([developers.openai.com](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai))\n", - " - Fine‑tuning : adapte les poids du modèle via entraînement supplémentaire — change le comportement interne. ([developers.openai.com](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai))\n", + "Voici les différences clés (courtes, point par point) entre RAG et le fine‑tuning pour les LLMs en 2026 — avec sources.\n", "\n", - "- Actualité des connaissances :\n", - " - RAG : facile à mettre à jour (mettre à jour l’index/documents). ([docs.aws.amazon.com](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai))\n", - " - Fine‑tuning : mises à jour requièrent retrain / nouveaux runs de fine‑tune. ([docs.aws.amazon.com](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai))\n", + "- Principe de base : RAG = génération paramétrique + mémoire non‑paramétrique (index/vector store) interrogée à l'inférence ; fine‑tuning = modification des poids du modèle par apprentissage. ([en.wikipedia.org](https://en.wikipedia.org/wiki/Retrieval-augmented_generation?utm_source=openai))\n", "\n", - "- Coût (profil) :\n", - " - RAG : faible coût initial (index + vector DB), coût récurrent par requête (récupération + LLM). ([triviumtechlabs.com](https://triviumtechlabs.com/blog/llm-fine-tuning-vs-rag-when-to-use/?utm_source=openai))\n", - " - Fine‑tuning : coût élevé en préparation/compute pour chaque entraînement, mais inférence peut être moins chère par requête. ([triviumtechlabs.com](https://triviumtechlabs.com/blog/llm-fine-tuning-vs-rag-when-to-use/?utm_source=openai))\n", + "- Actualisation des connaissances : RAG permet de mettre à jour rapidement le \"savoir\" en remplaçant ou indexant de nouveaux documents ; le fine‑tuning nécessite de réentraîner/retuner (coûteux et lent) pour changer durablement les connaissances intégrées. ([developers.openai.com](https://developers.openai.com/api/docs/guides/retrieval?utm_source=openai))\n", "\n", - "- Latence / performance inference :\n", - " - RAG : ajout de latence (retrieval, reranking) possible ; dépend de pipeline. ([ccs.neu.edu](https://www.ccs.neu.edu/home/alina/classes/Fall2024/Lecture11.pdf?utm_source=openai))\n", - " - Fine‑tuning : réponses directes du modèle, souvent latence d’inférence plus faible. ([ccs.neu.edu](https://www.ccs.neu.edu/home/alina/classes/Fall2024/Lecture11.pdf?utm_source=openai))\n", + "- Coût et latence : RAG ajoute des coûts/latence par requête (retrieval + reranking + concaténation de contexte) ; le fine‑tuning déplace le coût vers l'entraînement et tend à rendre l'inférence plus rapide/moins chère par requête. ([emergingsociety.org](https://emergingsociety.org/index.php/efltajet/article/download/1407/1394/3466?utm_source=openai))\n", "\n", - "- Exactitude / ancrage (grounding) & hallucinations :\n", - " - RAG : permet citation de sources et réduit hallucinations quand on injecte le contexte pertinent. ([developers.openai.com](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai))\n", - " - Fine‑tuning : peut améliorer style/consistance, mais n’offre pas automatiquement d’ancrage factuel ni de citations. ([aclanthology.org](https://aclanthology.org/2024.emnlp-main.15/?utm_source=openai))\n", + "- Exactitude et traçabilité : RAG facilite le grounding et la citation de sources (réduit certaines hallucinations si pipeline bien conçu) ; le fine‑tuning peut améliorer style/consistance mais n'offre pas automatiquement de traçabilité aux sources. ([huggingface.co](https://huggingface.co/blog/isaacus/legal-rag-bench?utm_source=openai))\n", "\n", - "- Type de problème résolu :\n", - " - RAG : mieux pour injecter des connaissances factuelles, fraîches, volumineuses ou changeantes. ([astrofabric.ai](https://www.astrofabric.ai/blog/rag-vs-fine-tuning?utm_source=openai))\n", - " - Fine‑tuning : mieux pour corriger comportement systématique, formatage, ou tâches spécifiques (classification, prompts répétitifs). ([developers.openai.com](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai))\n", + "- Cas d'usage où l'un domine : pour infos volatiles ou larges bases documentaires → RAG ; pour tâches répétées, formatées ou comportements spécifiques (ton, contraintes) → fine‑tuning. En pratique 2026 on voit souvent RAG pour les faits + \"light FT\" pour le comportement. ([arxiv.org](https://arxiv.org/abs/2403.01432?utm_source=openai))\n", "\n", - "- Maintenance & scalabilité :\n", - " - RAG : indexer + pipeline de vérification = plus simple à maintenir pour contenu changeant. ([square1ai.com](https://www.square1ai.com/research/rag-vs-fine-tuning?utm_source=openai))\n", - " - Fine‑tuning : coûteux à répéter à grande fréquence ; gestion des versions du modèle plus lourde. ([customlabs.io](https://customlabs.io/compare/rag-vs-fine-tuning/?utm_source=openai))\n", + "- Robustesse et modes d'échec : RAG peut être vulnérable au retrieval noise, poisoning et prompt‑injection ; fine‑tuning peut entraîner mémorisation de données sensibles ou régressions / sur‑ajustement. Les deux nécessitent évaluations et garde‑fous. ([sciencedirect.com](https://www.sciencedirect.com/science/article/pii/S1566253525009625?utm_source=openai))\n", "\n", - "- Confidentialité / conformité :\n", - " - RAG : permet garder données sources on‑prem / chiffrement de l’index ; le modèle peut rester externe. ([docs.aws.amazon.com](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai))\n", - " - Fine‑tuning : peut exiger transfert de données pour entraînement (ou infra privée coûteuse). ([docs.aws.amazon.com](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai))\n", + "- Pratique recommandée (2026) : approche hybride — garder RAG pour le contexte/faits et appliquer un fine‑tuning léger (ou instruction tuning) pour comportement, format et rejet d'erreurs, plus pipelines d'éval/monitoring. ([arxiv.org](https://arxiv.org/abs/2510.01600?utm_source=openai))\n", "\n", - "- Approche pratique (hybride) :\n", - " - Pratique courante en 2026 : combiner — fine‑tuner pour comportement/format + RAG pour faits à jour et preuves. ([arxiv.org](https://arxiv.org/abs/2510.01600?utm_source=openai))\n", + "Sources principales (sélection) :\n", + "- Wiki / définitions RAG + revue pratique. ([en.wikipedia.org](https://en.wikipedia.org/wiki/Retrieval-augmented_generation?utm_source=openai)) \n", + "- OpenAI — guide \"Optimizing LLM accuracy\" et pages techniques sur retrieval / fine‑tuning (2024–2026). ([developers.openai.com](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai)) \n", + "- Études/arXiv comparatives et évaluations industrielles (2025–2026). ([arxiv.org](https://arxiv.org/abs/2403.01432?utm_source=openai)) \n", + "- Benchmarks et recommandations (Hugging Face / blogs techniques, guides 2026). ([huggingface.co](https://huggingface.co/blog/isaacus/legal-rag-bench?utm_source=openai)) \n", + "- Sécurité & confidentialité : articles 2025–2026 sur fuite par fine‑tuning et risques RAG (SoK / ACL / conferences). ([arxiv.org](https://arxiv.org/abs/2601.03979?utm_source=openai))\n", "\n", - "- Règles empiriques rapides pour choisir :\n", - " - Si le contenu change souvent ou il faut citer sources → RAG d’abord. ([docs.aws.amazon.com](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai))\n", - " - Si besoin de latence très basse, coûts inférieurs par requête, ou comportement très spécifique → considérer fine‑tuning (ou PEFT/LoRA). ([openreview.net](https://openreview.net/pdf?id=e8ycTWGTIR&utm_source=openai))\n", - "\n", - "Sources principales (exemples consultés) :\n", - "- OpenAI — guide Optimizing LLM accuracy (RAG & fine‑tuning). ([developers.openai.com](https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai)) \n", - "- AWS Prescriptive Guidance — comparaison RAG vs fine‑tuning. ([docs.aws.amazon.com](https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai)) \n", - "- EMNLP / ACL papers (comparaisons expérimentales RAG vs fine‑tuning, 2024). ([aclanthology.org](https://aclanthology.org/2024.emnlp-main.15/?utm_source=openai)) \n", - "- Analyses/compagnies & guides 2025–2026 (CustomLabs, Square1, Trivium, Stanza, etc.). ([customlabs.io](https://customlabs.io/compare/rag-vs-fine-tuning/?utm_source=openai)) \n", - "- Recherches ICLR/EMNLP 2025–2026 sur stratégies conjointes et PEFT (LoRA) pour rendre le fine‑tuning plus efficace. ([arxiv.org](https://arxiv.org/abs/2510.01600?utm_source=openai))\n", - "\n", - "Si tu veux, je peux :\n", - "- résumer ces différences dans un tableau comparatif court, \n", - "- proposer une checklist décisionnelle pour ton cas d’usage (décris ton cas), \n", - "- ou fournir extraits/links précis des articles cités. Which do you prefer?\n", + "Si tu veux, je peux : \n", + "- résumer ces sources en une table concise, \n", + "- donner un mini‑flowchart décisionnel pour ton cas d'usage (décris le : fréquence de mise à jour des docs, sensibilité des données, besoin de latence), ou \n", + "- fournir les liens PDF/rapports exacts et extraits chiffrés (coûts/latences mesurées).\n", "\n", "=== Sources ===\n", - "1. Optimizing LLM Accuracy | OpenAI API: https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai\n", - "2. Comparing Retrieval Augmented Generation and fine-tuning - AWS Prescriptive Guidance: https://docs.aws.amazon.com/prescriptive-guidance/latest/retrieval-augmented-generation-options/rag-vs-fine-tuning.html?utm_source=openai\n", - "3. LLM Fine-Tuning vs RAG: Which Should You Use? (2026 Decision Guide) — Trivium Tech Labs | Trivium Tech Labs: https://triviumtechlabs.com/blog/llm-fine-tuning-vs-rag-when-to-use/?utm_source=openai\n", - "4. RAG vs Fine-tuning: https://www.ccs.neu.edu/home/alina/classes/Fall2024/Lecture11.pdf?utm_source=openai\n", - "5. Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs - ACL Anthology: https://aclanthology.org/2024.emnlp-main.15/?utm_source=openai\n", - "6. RAG vs fine-tuning: when to retrieve and when to train | AstroFabric: https://www.astrofabric.ai/blog/rag-vs-fine-tuning?utm_source=openai\n", - "7. RAG vs Fine-Tuning: How to Choose for Your LLM Project — Research | Square 1 AI: https://www.square1ai.com/research/rag-vs-fine-tuning?utm_source=openai\n", - "8. RAG vs Fine-Tuning · CustomLabs: https://customlabs.io/compare/rag-vs-fine-tuning/?utm_source=openai\n", - "9. A Comparison of Independent and Joint Fine-tuning Strategies for Retrieval-Augmented Generation: https://arxiv.org/abs/2510.01600?utm_source=openai\n", - "10. Under review as a conference paper at ICLR 2026: https://openreview.net/pdf?id=e8ycTWGTIR&utm_source=openai\n" + "1. Retrieval-augmented generation: https://en.wikipedia.org/wiki/Retrieval-augmented_generation?utm_source=openai\n", + "2. Retrieval | OpenAI API: https://developers.openai.com/api/docs/guides/retrieval?utm_source=openai\n", + "3. The American Journal of Engineering and Technology: https://emergingsociety.org/index.php/efltajet/article/download/1407/1394/3466?utm_source=openai\n", + "4. Introducing Legal RAG Bench: https://huggingface.co/blog/isaacus/legal-rag-bench?utm_source=openai\n", + "5. Fine Tuning vs. Retrieval Augmented Generation for Less Popular Knowledge: https://arxiv.org/abs/2403.01432?utm_source=openai\n", + "6. Exploring knowledge poisoning attacks to retrieval-augmented generation - ScienceDirect: https://www.sciencedirect.com/science/article/pii/S1566253525009625?utm_source=openai\n", + "7. A Comparison of Independent and Joint Fine-tuning Strategies for Retrieval-Augmented Generation: https://arxiv.org/abs/2510.01600?utm_source=openai\n", + "8. Optimizing LLM Accuracy | OpenAI API: https://developers.openai.com/api/docs/guides/optimizing-llm-accuracy?utm_source=openai\n", + "9. SoK: Privacy Risks and Mitigations in Retrieval-Augmented Generation Systems: https://arxiv.org/abs/2601.03979?utm_source=openai\n" ] } ], @@ -1513,7 +1911,16 @@ { "cell_type": "markdown", "id": "pdfws-eg3-lecture", - "metadata": {}, + "metadata": { + "papermill": { + "duration": 0.010046, + "end_time": "2026-10-07T01:52:20.699295+00:00", + "exception": false, + "start_time": "2026-10-07T01:52:20.689249+00:00", + "status": "completed" + }, + "tags": [] + }, "source": [ "### Lecture du résultat : résumé de recherche technique\n", "\n", @@ -1528,6 +1935,13 @@ "cell_type": "markdown", "id": "pdfws-newex3-md", "metadata": { + "papermill": { + "duration": 0.013316, + "end_time": "2026-10-07T01:52:20.721725+00:00", + "exception": false, + "start_time": "2026-10-07T01:52:20.708409+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1546,9 +1960,22 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "pdfws-newex3-code", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:52:20.739235Z", + "iopub.status.busy": "2026-10-07T01:52:20.738897Z", + "iopub.status.idle": "2026-10-07T01:52:20.744636Z", + "shell.execute_reply": "2026-10-07T01:52:20.743508Z" + }, + "papermill": { + "duration": 0.016273, + "end_time": "2026-10-07T01:52:20.745467+00:00", + "exception": false, + "start_time": "2026-10-07T01:52:20.729194+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -1599,6 +2026,13 @@ "cell_type": "markdown", "id": "635288f6", "metadata": { + "papermill": { + "duration": 0.009425, + "end_time": "2026-10-07T01:52:20.762827+00:00", + "exception": false, + "start_time": "2026-10-07T01:52:20.753402+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1648,9 +2082,22 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "9701c657", "metadata": { + "execution": { + "iopub.execute_input": "2026-10-07T01:52:20.787636Z", + "iopub.status.busy": "2026-10-07T01:52:20.787221Z", + "iopub.status.idle": "2026-10-07T01:52:20.794892Z", + "shell.execute_reply": "2026-10-07T01:52:20.793349Z" + }, + "papermill": { + "duration": 0.023106, + "end_time": "2026-10-07T01:52:20.795929+00:00", + "exception": false, + "start_time": "2026-10-07T01:52:20.772823+00:00", + "status": "completed" + }, "tags": [] }, "outputs": [ @@ -1677,6 +2124,13 @@ "cell_type": "markdown", "id": "22d53b5a", "metadata": { + "papermill": { + "duration": 0.010917, + "end_time": "2026-10-07T01:52:20.819480+00:00", + "exception": false, + "start_time": "2026-10-07T01:52:20.808563+00:00", + "status": "completed" + }, "tags": [] }, "source": [ @@ -1769,7 +2223,21 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.11" + "version": "3.13.7" + }, + "papermill": { + "default_parameters": {}, + "duration": 234.42671, + "end_time": "2026-10-07T01:52:21.512498+00:00", + "environment_variables": {}, + "exception": null, + "input_path": "06_PDF_Web_Search.ipynb", + "output_path": "06_PDF_Web_Search.ipynb", + "parameters": { + "BATCH_MODE": "true" + }, + "start_time": "2026-10-07T01:48:27.085788+00:00", + "version": "2.7.0" } }, "nbformat": 4,