mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 09:37:43 +01:00
Mise à jour rapide
This commit is contained in:
parent
602a9055e2
commit
30bcfd2bf3
472
.obsidian/workspace.json
vendored
472
.obsidian/workspace.json
vendored
@ -4,367 +4,67 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "c2f4a1753293419f",
|
||||
"id": "d991961c29ad106d",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "68491419da144553",
|
||||
"id": "8cd31f588ec21296",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Obsidian/Ouvrir un terminal dans Obsidian.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Ouvrir un terminal dans Obsidian"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6190bc947aeac61d",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "ollama/guide_ollama_complet.md",
|
||||
"file": "Serveur perso/Installation LLM +++.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "guide_ollama_complet"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "4a79ae9b5cf40685",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Infrastructure Optimisée d'IA Locale.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Infrastructure Optimisée d'IA Locale"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "c732e844eb2b7094",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Infrastructure Optimisée d'IA Locale (version 2).md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Infrastructure Optimisée d'IA Locale (version 2)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "c425e145aee8cd6a",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Agent LLM Classes recherches 1.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Agent LLM Classes recherches 1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "9f01b54131d8ad11",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Agent LLM Classes recherches 1.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Agent LLM Classes recherches 1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b9670384c5347fe5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/LLM Obsidian.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "LLM Obsidian"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "3d7bf6b1be159bbe",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/LLM Cursor.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "LLM Cursor"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "93feebe5d77bd0dc",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "ollama/Plan d'apprentissage détaillé sur Ollama.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Plan d'apprentissage détaillé sur Ollama"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "aab7b92f101ead65",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "inbox/StramDeck config.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "StramDeck config"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bf4f5ca51a0e0dd8",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Optimisation bios serveur.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Optimisation bios serveur"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "2bc8a1b7fd6d9af5",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Infrastructure Optimisée d'IA Locale.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Infrastructure Optimisée d'IA Locale"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a152b360c324fb6f",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/LLM Cursor version2.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "LLM Cursor version2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "1da03f7485bb0fef",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Recherche modèles.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Recherche modèles"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "a3ac048cd068ef21",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "inbox/Installation LLM +++.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Installation LLM +++"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "15f320992faf0688",
|
||||
"id": "41d5f8a8d932e337",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Jour 5 notes support traitement ticket dev.md",
|
||||
"file": "inbox/Test Cline.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Jour 5 notes support traitement ticket dev"
|
||||
"title": "Test Cline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "b3459535494873e5",
|
||||
"id": "dd8810de0aecde96",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Obsidian/Obsidian CSS.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Obsidian CSS"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "72aa54670d29b111",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "inbox/prompt.md",
|
||||
"file": "inbox/Résumé LLM-lab.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "prompt"
|
||||
"title": "Résumé LLM-lab"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "0e580d10b27a161e",
|
||||
"id": "97ca7aff179659c4",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "inbox/prompt.md",
|
||||
"file": "webdev/ROBO_MAT_Code_WLangage_Organise.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "prompt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "5afdc6cb3fe20644",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Préversion IA locales personnelle.md",
|
||||
"mode": "preview",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Préversion IA locales personnelle"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "4e69fedfd0d21df9",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "graph",
|
||||
"state": {},
|
||||
"icon": "lucide-git-fork",
|
||||
"title": "Vue graphique"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "48842f66b7e7e365",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Obsidian/Liens dans obsidian.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Liens dans obsidian"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "64922fb286281777",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "graph",
|
||||
"state": {},
|
||||
"icon": "lucide-git-fork",
|
||||
"title": "Vue graphique"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "4102dd91ee7179ea",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "inbox/Piste d'améliorations du projet IA locale.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Piste d'améliorations du projet IA locale"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "ff79cd1085f74b83",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Serveur perso/Création de classes agents pour LLM locaux avec Cursor et Ollama.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Création de classes agents pour LLM locaux avec Cursor et Ollama"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6d3c8a826a68010d",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Obsidian/Ouvrir un terminal dans Obsidian.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Ouvrir un terminal dans Obsidian"
|
||||
"title": "ROBO_MAT_Code_WLangage_Organise"
|
||||
}
|
||||
}
|
||||
],
|
||||
"currentTab": 14
|
||||
"currentTab": 2
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
@ -421,7 +121,7 @@
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 200
|
||||
"width": 300
|
||||
},
|
||||
"right": {
|
||||
"id": "ad0ed0087b43302d",
|
||||
@ -497,8 +197,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -507,8 +207,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -517,8 +217,8 @@
|
||||
"state": {
|
||||
"type": "side-panel-control-view",
|
||||
"state": {},
|
||||
"icon": "viewIcon",
|
||||
"title": "Markdown-Autocomplete"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -527,8 +227,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -537,8 +237,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -547,8 +247,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -557,8 +257,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -567,8 +267,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -577,8 +277,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -587,8 +287,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -597,8 +297,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -607,8 +307,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -617,8 +317,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -627,8 +327,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -637,8 +337,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -647,8 +347,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -657,8 +357,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -667,8 +367,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -677,8 +377,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -687,8 +387,8 @@
|
||||
"state": {
|
||||
"type": "SC-custom-variables-view",
|
||||
"state": {},
|
||||
"icon": "code-glyph",
|
||||
"title": "Shell commands: Custom variables"
|
||||
"icon": "lucide-file",
|
||||
"title": "Le module complémentaire n'est plus actif."
|
||||
}
|
||||
}
|
||||
],
|
||||
@ -702,56 +402,56 @@
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"workspaces:Gérer les espaces de travail": false,
|
||||
"table-editor-obsidian:Advanced Tables Toolbar": false,
|
||||
"obsidian-markdown-formatting-assistant-plugin:Open Markdown Formatting Assistant": false,
|
||||
"switcher:Ouvrir le sélecteur rapide": false,
|
||||
"graph:Ouvrir la vue graphique": false,
|
||||
"canvas:Créer une nouvelle toile": false,
|
||||
"daily-notes:Ouvrir la note quotidienne": false,
|
||||
"templates:Insérer le modèle": false,
|
||||
"command-palette:Ouvrir la palette de commandes": false,
|
||||
"table-editor-obsidian:Advanced Tables Toolbar": false,
|
||||
"obsidian-markdown-formatting-assistant-plugin:Open Markdown Formatting Assistant": false,
|
||||
"obsidian-shellcommands:Shell commands: Custom variables": false,
|
||||
"templater-obsidian:Templater": false
|
||||
}
|
||||
},
|
||||
"active": "a3ac048cd068ef21",
|
||||
"active": "dd8810de0aecde96",
|
||||
"lastOpenFiles": [
|
||||
"Serveur perso/Recherche modèles.md",
|
||||
"inbox/Installation LLM +++.md",
|
||||
"inbox/Test Cline.md",
|
||||
"inbox/Résumé LLM-lab.md",
|
||||
"Serveur perso/Installation LLM +++.md",
|
||||
"Serveur perso/Installation LLM dans Cursor.md",
|
||||
"Serveur perso/LLM Cursor.md",
|
||||
"Serveur perso/LLM Cursor version2.md",
|
||||
"command_list/Ollama commands.md",
|
||||
"Serveur perso/Infrastructure Optimisée d'IA Locale.md",
|
||||
"Serveur perso/Création de classes agents pour LLM locaux avec Cursor et Ollama.md",
|
||||
"Serveur perso/automatiser-lancement-serveur-windows.md",
|
||||
"Serveur perso/Agent LLM recherches 2.md",
|
||||
"Serveur perso/Agent LLM Classes recherches 1.md",
|
||||
"ollama/Plan d'apprentissage détaillé sur Ollama.md",
|
||||
"ollama/guide_ollama_complet.md",
|
||||
"command_list/Git commands.md",
|
||||
"command_list/Commandes Nvidia.md",
|
||||
"Serveur perso/LLM Obsidian.md",
|
||||
"Serveur perso/Préversion IA locales personnelle.md",
|
||||
"Serveur perso/Infrastructure Optimisée d'IA Locale (version 2).md",
|
||||
"Serveur perso/Piste d'améliorations du projet IA locale.md",
|
||||
"inbox/wild.md",
|
||||
"webdev/PJ/wlangage_class_code.json",
|
||||
"webdev/PJ/structure_projet_robo_mat.txt",
|
||||
"webdev/structure_projet_robo_mat.md",
|
||||
"webdev/ROBO_MAT_Code_WLangage_Organise.md",
|
||||
"webdev/ROBO_MAT_Analyse_Page_TEST_et_LLM.md",
|
||||
"webdev/Rappel de certaines notions WLangage et Classes.md",
|
||||
"command_list/Ollama commands.md",
|
||||
"webdev/ROBO_MAT_Analyse_clsMistral.md",
|
||||
"webdev/ROBO_MAT_Analyse_clsOllama.md",
|
||||
"webdev/Non confirmé 702528.crdownload",
|
||||
"webdev/ROBO_MAT_Analyse_Fonctionnelle.md",
|
||||
"webdev/PJ",
|
||||
"webdev/Rappel de certaines notions WLangage et Classes.md",
|
||||
"inbox/Non confirmé 367059.crdownload",
|
||||
"webdev/ROBO_MAT_Code_WLangage_Organise.md",
|
||||
"webdev/PJ/wlangage_class_code.json",
|
||||
"webdev/Analyse_ROBO_MAT_Complete.md",
|
||||
"webdev/Application webdev (1).md",
|
||||
"webdev",
|
||||
"inbox/prompt.md",
|
||||
"inbox/Odoo.md",
|
||||
"inbox/Notes RAGFLOW.md",
|
||||
"inbox/Notes projet LLM.md",
|
||||
"inbox/Node.js.md",
|
||||
"inbox/Fichier type json récupération odoo.md",
|
||||
"inbox/Arborescence du programme.md",
|
||||
"inbox/StreamDeck config.md",
|
||||
"inbox/Scripts requêtes Odoo.md",
|
||||
"inbox/ROBO_MAT_Code_WLangage_Organise.json",
|
||||
"Streamdeck",
|
||||
"command_list",
|
||||
"Stage",
|
||||
"ollama",
|
||||
"Obsidian",
|
||||
"inbox/Non confirmé 873082.crdownload",
|
||||
"inbox/ROBO_MAT_Analyse_clsDeepl.md",
|
||||
"inbox/Non confirmé 727828.crdownload",
|
||||
"inbox/version épuée.md",
|
||||
"inbox/Non confirmé 465885.crdownload",
|
||||
"inbox/Non confirmé 948241.crdownload",
|
||||
"inbox/Non confirmé 34515.crdownload",
|
||||
"inbox/Non confirmé 822614.crdownload",
|
||||
"captures/signature.png",
|
||||
"captures/Capture d'écran 2025-03-20 150304.png",
|
||||
"captures/Capture d'écran 2025-03-20 150213.png",
|
||||
|
||||
155
inbox/Résumé LLM-lab.md
Normal file
155
inbox/Résumé LLM-lab.md
Normal file
@ -0,0 +1,155 @@
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 📄 `docs/journal_developpement_llm_2025-03-26.md`
|
||||
|
||||
```markdown
|
||||
# 🧠 Journal de développement - Infrastructure LLM
|
||||
📅 **Date** : 2025-03-26
|
||||
🎯 **Objectif** : Structurer un système modulaire pour gérer, tester et affiner plusieurs modèles LLM via une architecture orientée objet.
|
||||
|
||||
---
|
||||
|
||||
## ✅ Étapes réalisées
|
||||
|
||||
### 1. 📦 Mise en place d’une architecture modulaire
|
||||
|
||||
```
|
||||
|
||||
llm_lab/ ├── core/ # Classes des modèles │ ├── base_llm.py # Classe abstraite BaseLLM │ ├── mistral7b.py # Modèle spécifique Mistral 7B │ ├── factory.py # Générateur dynamique de modèles ├── agents/ # Rôles d'agents (prompts système + paramètres) │ └── roles.py ├── utils/ # Scripts de test automatisé │ └── parameter_tester.py ├── tests/ # Scripts de test individuels ├── logs/ # Logs Markdown générés automatiquement ├── outputs/ # Exports futurs (JSON, CSV) ├── config/ # Paramètres modèles (future extensibilité) └── log_index.md # Index central des logs
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. 🧱 Construction des composants
|
||||
|
||||
#### 🔹 `BaseLLM` (abstraite)
|
||||
- Gère les prompts, rôles, paramètres
|
||||
- Centralise le logging (`.md` + index)
|
||||
|
||||
#### 🔹 `Mistral7B`
|
||||
- Hérite de `BaseLLM`
|
||||
- Intègre les paramètres valides pour Ollama
|
||||
- Appelle l'API Ollama en local
|
||||
|
||||
#### 🔹 `factory.py`
|
||||
- Permet de créer un modèle à partir de son nom :
|
||||
```python
|
||||
model = LLMFactory.create("mistral:latest")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 🎭 Système de rôles (`agents/roles.py`)
|
||||
|
||||
Chaque rôle contient :
|
||||
|
||||
- un `system_prompt` (décrit l’identité de l’agent)
|
||||
|
||||
- des `params` personnalisés (optionnels)
|
||||
|
||||
|
||||
Exemples :
|
||||
|
||||
```python
|
||||
AGENTS = {
|
||||
"formateur": {
|
||||
"system_prompt": "...",
|
||||
"params": { "temperature": 0.6 }
|
||||
},
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4. 🧪 Automatisation de tests de paramètres (`utils/parameter_tester.py`)
|
||||
|
||||
Fonction :
|
||||
|
||||
```python
|
||||
test_agents_on_prompt(
|
||||
model_class, prompt, agents, param_grid, fixed_params
|
||||
)
|
||||
```
|
||||
|
||||
➡️ Permet de :
|
||||
|
||||
- Lancer plusieurs agents sur un même prompt
|
||||
|
||||
- Faire varier les paramètres automatiquement
|
||||
|
||||
- Logger chaque test séparément
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 5. 📝 Système de logs
|
||||
|
||||
- Chaque appel génère un fichier `.md` dans `logs/`
|
||||
|
||||
- Contient :
|
||||
|
||||
- UID, modèle, moteur, agent
|
||||
|
||||
- paramètres complets
|
||||
|
||||
- réponse générée
|
||||
|
||||
- L’index central est mis à jour (`log_index.md`)
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 💡 Stratégie recommandée de test
|
||||
|
||||
### Étape 1 : tester plusieurs agents avec les mêmes paramètres
|
||||
|
||||
→ Valider que leur comportement reflète bien leur rôle
|
||||
|
||||
### Étape 2 : faire varier les paramètres sur chaque agent
|
||||
|
||||
→ Identifier les réglages les plus pertinents agent par agent
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Bonnes pratiques pour exécuter les tests
|
||||
|
||||
### ✔️ Depuis la racine du projet :
|
||||
|
||||
```bash
|
||||
python -m tests.test_single_agent
|
||||
```
|
||||
|
||||
### ✔️ Ou ajouter ceci au début des fichiers `tests/` :
|
||||
|
||||
```python
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔜 Prochaines étapes possibles
|
||||
|
||||
- Ajouter des modèles supplémentaires (`llama2`, `mixtral`, etc.)
|
||||
|
||||
- Gérer les tests en parallèle (`ThreadPoolExecutor`)
|
||||
|
||||
- Ajouter des dashboards CSV/JSON dans `outputs/`
|
||||
|
||||
- Générer des rapports automatiques
|
||||
|
||||
|
||||
---
|
||||
|
||||
🧠 _Tu disposes désormais d’une architecture solide pour explorer, comparer, améliorer et documenter le comportement de n’importe quel LLM à travers des rôles et des réglages variés._
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Souhaites-tu que je te livre ce fichier `.md` à télécharger directement dans un `.zip` avec l’arborescence minimale ?
|
||||
```
|
||||
394
inbox/Test Cline.md
Normal file
394
inbox/Test Cline.md
Normal file
@ -0,0 +1,394 @@
|
||||
|
||||
---
|
||||
Premier tests sur cline depuis serveur distant OVH
|
||||
- Attention dans le code de bien définir le nom du modèle ici nous allons commencer des tests léger sur "mistral : latest"
|
||||
- Adresse OLLAMA_URL = "http://217.182.105.173:11434/api/generate"
|
||||
- Attention pour réception des réponses "stream" : False ou True par défaut sur True ce qui signifie:
|
||||
- Il envoie les tokens un par un en flux (streaming)
|
||||
- Chaque ligne de réponse est un objet JSON séparé
|
||||
- [x] Création d'un script python avec prompt simple : réponse attendue ✅ 2025-03-25
|
||||
- [ ]
|
||||
##Création d'un logger de réponse Mistral (Ollama)
|
||||
###Objectif
|
||||
- [x] Ce script envoie au modèle Mistral 7b via Ollama, avec des paramètres configurables. Il enregistre la réponse en .md ✅ 2025-03-25
|
||||
|
||||
## 🛠️ Paramètres disponibles
|
||||
|
||||
- `model` : nom exact du modèle (`mistral:latest`)
|
||||
- `temperature` : contrôle la créativité (0.1 = déterministe, 1.0 = créatif)
|
||||
- `top_p` : échantillonnage nucleus
|
||||
- `top_k` : nombre max de tokens à considérer
|
||||
- `repeat_penalty` : pénalise les répétitions
|
||||
- `num_predict` : nombre max de tokens générés
|
||||
- `stop` : mot/char de coupure manuelle
|
||||
|
||||
---
|
||||
|
||||
## 📄 Exemple de sortie `.md` générée
|
||||
|
||||
```markdown
|
||||
# 🧾 Résultat génération Mistral
|
||||
|
||||
**🗓️ Date :** 2025-03-25 16:42
|
||||
**🧠 Modèle :** mistral:latest
|
||||
**💬 Prompt :** Explique-moi simplement ce qu'est l'intelligence artificielle.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Paramètres utilisés
|
||||
|
||||
- Temperature : 0.7
|
||||
- Top P : 0.9
|
||||
- Top K : 50
|
||||
- Repeat Penalty : 1.1
|
||||
- Max Tokens (num_predict) : 512
|
||||
- Stop : *Aucun*
|
||||
|
||||
---```
|
||||
|
||||
---
|
||||
## ⚖️ Comparatif `stream: True` vs `stream: False`
|
||||
|
||||
| Paramètre | `stream: True` | `stream: False` |
|
||||
| --------------------- | ------------------------------------ | ------------------------------------------ |
|
||||
| 🧠 Fonctionnement | Réception **progressive** des tokens | Réception **d’un seul bloc** à la fin |
|
||||
| ⏱️ Vitesse perçue | **Immédiate** (1er token direct) | **Plus lente** (attend que tout soit prêt) |
|
||||
| 📈 Performance réelle | Quasiment équivalente | Légèrement plus rapide si réponse courte |
|
||||
| 🧩 Intégration | Utile en **interface temps réel** | Mieux pour **log** ou traitement global |
|
||||
| 🛠️ Complexité | Traitement ligne à ligne | Plus simple (`response.json()`) |
|
||||
| 📤 Poids réseau | Petites requêtes multiples | Une seule grosse réponse |
|
||||
|
||||
---
|
||||
|
||||
## ✅ **Quand utiliser `stream: True`**
|
||||
|
||||
- Tu veux afficher la réponse **en temps réel dans un terminal ou une interface**.
|
||||
|
||||
- Tu fais un chatbot et veux **rendre l’UI plus réactive**.
|
||||
|
||||
- Tu veux **interrompre** la génération à la volée.
|
||||
|
||||
|
||||
### ⚠️ Nécessite :
|
||||
|
||||
```python
|
||||
for line in response.iter_lines():
|
||||
data = json.loads(line)
|
||||
print(data["response"], end="", flush=True)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ **Quand utiliser `stream: False`**
|
||||
|
||||
- Tu fais de l’analyse, du **logging** ou de la **comparaison de générations**.
|
||||
|
||||
- Tu veux une réponse **complète, simple à traiter**.
|
||||
|
||||
- Tu veux **enregistrer ou archiver** les prompts + réponses sans complexité.
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 🔁 Résumé express
|
||||
|
||||
- **stream: True** → dynamique, pour interface interactive (chatbot, terminal live)
|
||||
|
||||
- **stream: False** → simple, pour logs, scripts, tests comparatifs (ton cas actuel)
|
||||
|
||||
|
||||
---
|
||||
## 🔜 **Objectifs à venir**
|
||||
|
||||
Voici ce qui est **prévu ensuite** (dis-moi si on ajuste la priorité) :
|
||||
|
||||
### 🧩 1. **Étendre les logs pour mieux suivre les variations**
|
||||
|
||||
- [x] Ajouter un identifiant unique par test ✅ 2025-03-25
|
||||
|
||||
- [x] Historiser les prompts / réglages dans un index central (genre `log_index.md`) ✅ 2025-03-25
|
||||
|
||||
|
||||
### 🧪 2. **Faire varier les paramètres automatiquement**
|
||||
|
||||
- [x] Générer plusieurs réponses à partir d’un même prompt avec différentes températures, top_p, etc. ✅ 2025-03-25
|
||||
|
||||
|
||||
### 🧠 3. **Passer à l'intégration avec Cline (dans Cursor)**
|
||||
|
||||
- [ ] Utiliser le modèle directement depuis l'interface Cline (client local)
|
||||
|
||||
- [ ] Voir si la connexion à distance fonctionne via API d’Ollama
|
||||
|
||||
- [ ] Créer un `cline.config.json` plus tard si utile
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🧠 **1. Dans notre contexte, les scripts bien cadrés sont la base**
|
||||
|
||||
Tu as entièrement raison : si ton but est de :
|
||||
|
||||
- 🧪 Faire des **tests structurés sur les LLM**
|
||||
|
||||
- 🔁 Comparer les **effets de réglages**
|
||||
|
||||
- 📊 Récupérer des **logs propres pour analyse**
|
||||
|
||||
- 🔧 Envisager des **améliorations par RAG ou fine-tuning**
|
||||
|
||||
|
||||
Alors **le cœur de ton infrastructure doit être : des scripts robustes, versionnés, traçables, testables.**
|
||||
|
||||
---
|
||||
|
||||
## 🔍 **2. L’intérêt d’avoir des “classes d’agents” par modèle et par tâche**
|
||||
|
||||
C’est une **approche d’ingénierie avancée** et **très scalable** :
|
||||
|
||||
- Tu définis des **profils d'agents** :
|
||||
|
||||
- ✨ Agent RAG pour recherche technique
|
||||
|
||||
- 📑 Agent résumé juridique
|
||||
|
||||
- 🔧 Agent support technique
|
||||
|
||||
- 🧠 Agent pour test de comportement (prompt sensitivity, hallucinations, etc.)
|
||||
|
||||
- Et tu **lances ces agents via des scripts** avec :
|
||||
|
||||
- un modèle précis (`mistral`, `llama2`, etc.)
|
||||
|
||||
- des prompts types
|
||||
|
||||
- des paramètres contrôlés
|
||||
|
||||
- des logs traçables
|
||||
|
||||
|
||||
Cette approche te permet ensuite de :
|
||||
|
||||
- Réentraîner des modèles avec les bons exemples
|
||||
|
||||
- Affiner le comportement de chaque "rôle"
|
||||
|
||||
- Prioriser les modèles à adapter ou remplacer
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 🤖 **3. Alors… est-ce que Cline est indispensable ?**
|
||||
|
||||
> **Non. Cline n’est pas indispensable.**
|
||||
> Mais il peut être **très utile selon tes usages secondaires.**
|
||||
|
||||
### ✅ Ce pour quoi Cline _est_ utile :
|
||||
|
||||
- 👨💻 **Exploration interactive** d’un modèle
|
||||
|
||||
- 📋 Rapidité pour **tester un prompt** ou une idée
|
||||
|
||||
- 💡 Travailler dans **Cursor ou VSCode** pour explorer le comportement d’un modèle sur des fichiers
|
||||
|
||||
|
||||
### ❌ Ce pour quoi **tu n’as pas besoin de Cline** :
|
||||
|
||||
- ❎ Campagnes de test automatisées
|
||||
|
||||
- ❎ Analyse de résultats
|
||||
|
||||
- ❎ Suivi fin des comportements ou génération de logs
|
||||
|
||||
- ❎ Entraînement, fine-tuning, adaptation par LoRA ou supervision
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 📦 En résumé
|
||||
|
||||
| Usage | Cline | Scripts personnalisés |
|
||||
| ----------------------------------- | ----- | --------------------- |
|
||||
| Prompt rapide / test manuel | ✅ | ✅ |
|
||||
| Campagne de test (variation params) | ❌ | ✅ |
|
||||
| Logging / Récupération fine | ❌ | ✅ |
|
||||
| Comparaison multi-modèles | ❌ | ✅ |
|
||||
| Préparation fine-tuning / LoRA | ❌ | ✅ |
|
||||
| Workflow typé (agent/task/model) | ❌ | ✅ |
|
||||
| Dev exploratoire dans Cursor | ✅ | ✅ (moins fluide) |
|
||||
|
||||
---
|
||||
### Créer une classe abstraite globale** (comme `BaseLLM`) est **fortement recommandé** si tu comptes :
|
||||
|
||||
- Gérer plusieurs modèles (Mistral, LLaMA2, Mixtral, etc.)
|
||||
|
||||
- Réutiliser des comportements communs (log, rôle, configuration)
|
||||
|
||||
- Faciliter l’évolution, la maintenance et l’extension de ton code
|
||||
|
||||
|
||||
---
|
||||
|
||||
## ✅ **Pourquoi créer une classe abstraite `BaseLLM` ?**
|
||||
|
||||
### 🔁 1. **Mutualiser les fonctionnalités communes**
|
||||
|
||||
Tu n’auras pas à réécrire :
|
||||
|
||||
- La gestion des rôles
|
||||
|
||||
- Le logging Markdown
|
||||
|
||||
- L’enregistrement dans l’index
|
||||
|
||||
- La structure des paramètres
|
||||
|
||||
|
||||
➡️ Tu définis ça **une seule fois dans `BaseLLM`**, et tes classes comme `Mistral7B` n’ont plus qu’à se concentrer sur les **spécificités du modèle**.
|
||||
|
||||
---
|
||||
|
||||
### 🧱 2. **Faciliter l’ajout d’autres classes**
|
||||
|
||||
Tu pourras ensuite créer rapidement :
|
||||
|
||||
```python
|
||||
class LLaMA2(BaseLLM): ...
|
||||
class Mixtral8x7B(BaseLLM): ...
|
||||
class Phi3(BaseLLM): ...
|
||||
```
|
||||
|
||||
Et chacune ne définira que ce qui change : l’URL, le nom du modèle, le système de requête, etc.
|
||||
|
||||
---
|
||||
|
||||
### 🔄 3. **Permettre l’interopérabilité**
|
||||
|
||||
Tu peux créer un **système générique** qui accepte **n’importe quelle instance de modèle** :
|
||||
|
||||
```python
|
||||
def test_model(agent_name, prompt, model: BaseLLM):
|
||||
model.set_role(agent_name)
|
||||
return model.generate(prompt)
|
||||
```
|
||||
|
||||
➡️ Cela permet d’évaluer **plusieurs modèles avec la même interface** !
|
||||
|
||||
---
|
||||
|
||||
## ✅ En résumé
|
||||
|
||||
| Avantage | Sans classe abstraite | Avec `BaseLLM` |
|
||||
| ---------------------------------- | ----------------------- | -------------- |
|
||||
| Réutilisation du code | ❌ Faible | ✅ Très forte |
|
||||
| Facilité à ajouter un nouveau LLM | ❌ Long | ✅ Très rapide |
|
||||
| Uniformité d'appel (`.generate()`) | ❌ Différente par modèle | ✅ Identique |
|
||||
| Structure propre & maintenable | ❌ Complexité croissante | ✅ Solide |
|
||||
| Interopérabilité / abstraction | ❌ Difficile | ✅ Naturelle |
|
||||
|
||||
---
|
||||
## 🧠 1. Les **paramètres de configuration** varient selon les modèles
|
||||
|
||||
### ✅ Ce que **tous** les modèles acceptent via Ollama :
|
||||
|
||||
|Paramètre|Description|
|
||||
|---|---|
|
||||
|`temperature`|Contrôle la créativité|
|
||||
|`top_p`|Nucleus sampling|
|
||||
|`repeat_penalty`|Pénalise les répétitions|
|
||||
|`num_predict`|Nombre de tokens générés|
|
||||
|`stop`|Mots ou séquences d'arrêt|
|
||||
|`seed`|Graine pour reproductibilité|
|
||||
|`stream`|Réponse en streaming|
|
||||
|`prompt`|(obligatoire) le texte utilisateur|
|
||||
|`model`|(obligatoire) le nom du modèle|
|
||||
|
||||
### ⚠️ Ce qui est **optionnel ou spécifique** selon les modèles :
|
||||
|
||||
|Paramètre|Cas spécifique|
|
||||
|---|---|
|
||||
|`top_k`|Non supporté par tous|
|
||||
|`frequency_penalty`, `presence_penalty`|Valides surtout sur API OpenAI-like|
|
||||
|`max_tokens`|Peut ne pas être utilisé|
|
||||
|
||||
---
|
||||
|
||||
## ✅ Conséquence sur `BaseLLM`
|
||||
|
||||
Ta classe abstraite doit :
|
||||
|
||||
- Accepter un dictionnaire `params` initial personnalisé par modèle
|
||||
|
||||
- Avoir une méthode de validation ou un filtre des paramètres
|
||||
|
||||
- Enregistrer dans les logs **uniquement les paramètres actifs**
|
||||
|
||||
|
||||
---
|
||||
|
||||
## ✅ 2. Les logs doivent **identifier clairement le modèle utilisé**
|
||||
|
||||
Déjà prévu dans `BaseLLM._log_result()` :
|
||||
|
||||
```python
|
||||
f.write(f"**🧠 Modèle :** {self.model}\n")
|
||||
```
|
||||
|
||||
Mais on peut améliorer avec une ligne en plus dans le `log_index.md` :
|
||||
|
||||
```markdown
|
||||
🧠 `mistral:latest` (via Ollama)
|
||||
```
|
||||
|
||||
Et pourquoi pas ajouter :
|
||||
|
||||
```python
|
||||
self.engine = "Ollama"
|
||||
```
|
||||
|
||||
dans les classes filles pour différencier un jour `Ollama`, `vLLM`, `HF Transformers`, etc.
|
||||
|
||||
---
|
||||
|
||||
## 📂 Arborescence recommandée de ton projet
|
||||
|
||||
Voici une arborescence professionnelle et modulaire :
|
||||
|
||||
```
|
||||
llm_lab/ ← Racine de ton projet
|
||||
├── agents/ ← Définition des rôles d'agents
|
||||
│ └── roles.py ← Dictionnaire AGENTS
|
||||
│
|
||||
├── core/ ← Coeur du système LLM
|
||||
│ ├── base_llm.py ← Classe abstraite BaseLLM
|
||||
│ ├── mistral7b.py ← Classe héritée Mistral7B
|
||||
│ ├── llama2.py ← (futur)
|
||||
│ └── factory.py ← Instanciation dynamique
|
||||
│
|
||||
├── logs/ ← Réponses générées
|
||||
│ ├── mistral_2025-03-25_XXXX.md
|
||||
│
|
||||
├── log_index.md ← Index global des tests
|
||||
│
|
||||
├── tests/ ← Scripts de test
|
||||
│ └── test_mistral7b.py ← Exemple d’usage
|
||||
│
|
||||
├── prompts/ ← Templates ou scénarios de tests
|
||||
│ └── test_prompt1.txt
|
||||
│
|
||||
├── data/ ← Données utilisées (optionnel)
|
||||
│
|
||||
└── README.md ← Explication générale du projet
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
- `utils/` pour fonctions génériques (formatage, parsers)
|
||||
|
||||
- `config/` si tu charges des réglages depuis YAML/JSON
|
||||
|
||||
- `outputs/` pour stocker les tests ou réponses groupées (JSON/CSV)
|
||||
|
||||
|
||||
---
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user