This commit is contained in:
Ladebeze66 2025-03-21 17:39:01 +01:00
parent b15f7a8f1d
commit a77895a0f5
43 changed files with 9763 additions and 88 deletions

View File

@ -1 +1,15 @@
{}
{
"enabledCssSnippets": [
"title_colors",
"table_dark_mode",
"case_coche",
"citations",
"code_inline",
"lien_extern",
"lien_intern",
"multi_line_code",
"picture",
"tags",
"listes_puces"
]
}

View File

@ -1,4 +1,8 @@
[
"editing-toolbar",
"obsidian-auto-link-title"
"obsidian-auto-link-title",
"table-editor-obsidian",
"obsidian-table-generator",
"obsidian-tasks-plugin",
"obsidian-markdown-formatting-assistant-plugin"
]

View File

@ -297,7 +297,7 @@
"cMenuBottomValue": 4.25,
"cMenuNumRows": 12,
"cMenuWidth": 610,
"cMenuFontColor": "#92cddc",
"cMenuFontColor": "#245bdb",
"cMenuBackgroundColor": "#d3f8b6",
"autohide": false,
"custom_bg1": "#FFB78B8C",

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
{
"id": "obsidian-markdown-formatting-assistant-plugin",
"name": "Markdown Formatting Assistant",
"version": "0.4.1",
"minAppVersion": "0.15.6",
"description": "This Plugin provides a simple Editor for Markdown, HTML and Colors and in addition a command interface. The command interface facilitate a faster workflow.",
"author": "Reocin",
"authorUrl": "https://github.com/Reocin/obsidian-markdown-formatting-assistant-plugin",
"isDesktopOnly": false
}

View File

@ -0,0 +1,62 @@
/* Sets all the text color to red! */
.nav-action-button {
color: var(--text-muted);
cursor: pointer;
padding: 0px;
margin: 5px;
border-radius: 4px;
}
.nav-action-text-button {
color: var(--text-muted);
cursor: pointer;
padding: 5px;
margin: 4px;
border-radius: 4px;
text-align: center;
border: 1px solid;
}
.nav-action-text-button.is-active {
background-color: var(--interactive-accent);
color: var(--text-on-accent);
}
.nav-action-text-button.is-active:hover {
color: var(--text-on-accent);
}
.nav-action-text-button:hover {
color: var(--text-accent);
}
.color-icon {
color: var(--text-muted);
cursor: pointer;
width: 16px;
min-width: 16px;
max-width: 16px;
height: 16px;
min-height: 16px;
max-height: 16px;
margin: 3px;
display: inline-block;
border-radius: 4px;
}
.command-list-view-row {
display: flex;
}
.command-list-view-container {
min-width: 60px;
display: flex;
}
.command-list-view-icon {
height: 24px;
max-height: 24px;
border: 1px solid gray;
margin-right: auto;
}
.command-list-view-text {
padding-left: 12px;
color: #c7254e;
}

View File

@ -0,0 +1,7 @@
{
"rowCount": 8,
"columnCount": 8,
"defaultAlignment": "left",
"defaultCardWidth": 160,
"defaultCardHeight": 160
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
{
"id": "obsidian-table-generator",
"name": "Table Generator",
"version": "1.4.1",
"minAppVersion": "1.1.0",
"description": "A plugin for generate markdown table quickly like Typora /card table in canvas .",
"author": "Boninall",
"authorUrl": "https://github.com/Quorafind",
"fundingUrl": {
"Buy Me a Coffee": "https://www.buymeacoffee.com/boninall",
"爱发电": "https://afdian.net/a/boninall",
"支付宝": "https://cdn.jsdelivr.net/gh/Quorafind/.github@main/IMAGE/%E6%94%AF%E4%BB%98%E5%AE%9D%E4%BB%98%E6%AC%BE%E7%A0%81.jpg"
},
"isDesktopOnly": false
}

View File

@ -0,0 +1,44 @@
.table-container.s-VU35bhriycJk.s-VU35bhriycJk{display:grid;border-bottom:2px dotted var(--color-base-40);border-top:2px dotted var(--color-base-40);padding-top:var(--size-2-1);padding-bottom:var(--size-2-1);width:100%;height:150px;grid-gap:1px}.table-container.s-VU35bhriycJk div.s-VU35bhriycJk{background:var(--color-base-00);border-radius:var(--radius-s);border:1px solid var(--color-base-40)}.table-container.s-VU35bhriycJk .table-generator-cell.s-VU35bhriycJk{height:var(--size-4-4);width:var(--size-4-4)}div.active.s-VU35bhriycJk.s-VU35bhriycJk{background-color:var(--active-color)}.s-VU35bhriycJk.s-VU35bhriycJk{}.table-generator.s-YxLKubgSvLDy{padding-left:5px;padding-right:5px;width:220px}.table-generator-header.s-YxLKubgSvLDy{display:flex;justify-content:space-between;align-items:center;margin-top:var(--size-4-1);margin-bottom:var(--size-4-1)}.input-table-generator.s-YxLKubgSvLDy{margin-left:var(--size-2-2);margin-right:var(--size-2-2);margin-top:var(--size-4-2);margin-bottom:var(--size-4-2);display:flex;justify-content:space-around;align-items:center}.input-table-generator-row.s-YxLKubgSvLDy,.input-table-generator-col.s-YxLKubgSvLDy{display:flex;justify-content:space-around;align-items:center}button.s-YxLKubgSvLDy{width:80px;height:20px;margin:var(--size-4-1) auto var(--size-4-2);padding:0px 10px;text-align:center;text-decoration:none;display:flex;align-items:center}input.s-YxLKubgSvLDy{width:40px;height:18px;border:1px solid var(--color-base-50);margin-left:var(--size-2-2);border-radius:var(--radius-m);text-align:center}.H1.s-YxLKubgSvLDy{margin-left:auto;margin-right:auto;text-align:center}.s-YxLKubgSvLDy{}.table-generator-align-group.s-XNB-qso0yOHJ{display:flex;align-items:center;flex-direction:row;gap:var(--size-2-2)}.table-generator-align-icon.s-XNB-qso0yOHJ{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-s);padding:var(--size-2-1)}.table-generator-align-icon.s-XNB-qso0yOHJ:not(.active):hover{background-color:var(--background-modifier-hover)}.table-generator-align-icon.active.s-XNB-qso0yOHJ{background-color:var(--background-modifier-border-hover)}.s-XNB-qso0yOHJ{}.table-generator-view {
position: absolute;
border: 1px solid var(--color-base-50);
border-radius: 5px;
background-color: var(--color-base-20);
}
.table-generator-setting-text {
min-width: 2.3em;
text-align: right;
}
.theme-light .table-generator-view {
--color-base-00: #ffffff;
--color-base-05: #fcfcfc;
--color-base-10: #fafafa;
--color-base-20: #f6f6f6;
--color-base-25: #e3e3e3;
--color-base-30: #e0e0e0;
--color-base-35: #d4d4d4;
--color-base-40: #bdbdbd;
--color-base-50: #ababab;
--color-base-60: #707070;
--color-base-70: #5a5a5a;
--color-base-100: #222222;
--active-color: rgb(224 242 254);
}
.theme-dark .table-generator-view {
--color-base-00: #1e1e1e;
--color-base-10: #242424;
--color-base-20: #262626;
--color-base-25: #2a2a2a;
--color-base-30: #363636;
--color-base-35: #3F3F3F;
--color-base-40: #555;
--color-base-50: #666;
--color-base-60: #999;
--color-base-70: #bababa;
--color-base-100: #dadada;
--active-color: rgb(3 105 161);
}
.input-table-generator.s-b7dfVi8Mj3e3{margin-left:var(--size-2-2);margin-right:var(--size-2-2);margin-top:var(--size-4-2);margin-bottom:var(--size-4-2);display:flex;justify-content:space-around;align-items:center}.input-table-generator-width.s-b7dfVi8Mj3e3,.input-table-generator-height.s-b7dfVi8Mj3e3{display:flex;justify-content:space-around;align-items:center}input.s-b7dfVi8Mj3e3{width:70px;height:18px;border:1px solid var(--color-base-50);margin-left:var(--size-2-2);border-radius:var(--radius-m);text-align:center}.s-b7dfVi8Mj3e3{}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,12 @@
{
"id": "obsidian-tasks-plugin",
"name": "Tasks",
"version": "7.18.3",
"minAppVersion": "1.4.0",
"description": "Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering.",
"helpUrl": "https://publish.obsidian.md/tasks/",
"author": "Clare Macrae and Ilyas Landikov (created by Martin Schenck)",
"authorUrl": "https://github.com/obsidian-tasks-group",
"fundingUrl": "https://github.com/sponsors/claremacrae",
"isDesktopOnly": false
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
{
"formatType": "normal",
"showRibbonIcon": true,
"bindEnter": true,
"bindTab": true
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
{
"id": "table-editor-obsidian",
"name": "Advanced Tables",
"author": "Tony Grosinger",
"authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "1.0.0",
"version": "0.22.1",
"js": "main.js",
"fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}

View File

@ -0,0 +1,78 @@
:root {
--advanced-tables-helper-size: 28px;
}
.HyperMD-table-row span.cm-inline-code {
font-size: 100%;
padding: 0px;
}
.advanced-tables-buttons>div>.title {
font-weight: var(--font-medium);
font-size: var(--nav-item-size);
color: var(--nav-item-color);
text-decoration: underline;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
column-gap: 0.2rem;
margin: 0.2rem 0 0.2rem 0;
justify-content: start;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
min-width: 2.6rem;
line-height: var(--advanced-tables-helper-size);
font-size: var(--nav-item-size);
font-weight: var(--nav-item-weight);
color: var(--nav-item-color);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
height: var(--advanced-tables-helper-size);
line-height: var(--advanced-tables-helper-size);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
width: var(--advanced-tables-helper-size);
height: var(--advanced-tables-helper-size);
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-s);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
background-color: var(--nav-item-background-hover);
color: var(--nav-item-color-hover);
font-weight: var(--nav-item-weight-hover);
}
.advanced-tables-row-label {
width: 50px;
}
.widget-icon {
width: 20px;
height: 20px;
fill: var(--text-muted);
}
.widget-icon:hover {
fill: var(--text-normal);
}
.advanced-tables-csv-export textarea {
height: 200px;
width: 100%;
}
.advanced-tables-donation {
width: 70%;
margin: 0 auto;
text-align: center;
}
.advanced-tables-donate-button {
margin: 10px;
}

10
.obsidian/snippets/case_coche.css vendored Normal file
View File

@ -0,0 +1,10 @@
/* ========== CASES À COCHER ========== */
.markdown-preview-view input[type="checkbox"] {
transform: scale(1.2); /* Agrandir la checkbox */
accent-color: #98FF98; /* Couleur de coche (vert pastel) */
margin-right: 8px;
}
.task-list-item.is-checked {
text-decoration: line-through;
color: #888888; /* Tâche grisée si cochée */
}

10
.obsidian/snippets/citations.css vendored Normal file
View File

@ -0,0 +1,10 @@
/* ========== CITATIONS (>) ========== */
.markdown-preview-view blockquote {
border-left: 4px solid #98FF98; /* Vert pastel pour cohérence */
background-color: #1f1f1f; /* Fond foncé légèrement différent */
color: #f0f0f0; /* Texte clair */
font-style: italic; /* Style classique pour citations */
padding: 8px 12px;
margin: 1em 0;
border-radius: 5px;
}

8
.obsidian/snippets/code_inline.css vendored Normal file
View File

@ -0,0 +1,8 @@
/* ========== CODE INLINE (`code`) ========== */
.markdown-preview-view code {
background-color: #333;
color: #ffd700;
padding: 2px 6px;
border-radius: 4px;
font-family: "Fira Code", monospace;
}

9
.obsidian/snippets/lien_extern.css vendored Normal file
View File

@ -0,0 +1,9 @@
/* ========== LIENS EXTERNES ========== */
a.external-link {
color: #FFD700; /* Jaune doré pour les liens externes */
text-decoration: none;
}
a.external-link:hover {
text-decoration: underline;
color: #f0c000;
}

10
.obsidian/snippets/lien_intern.css vendored Normal file
View File

@ -0,0 +1,10 @@
/* ========== LIENS INTERNES ========== */
a.internal-link {
color: #40E0D0; /* Turquoise vif pour les liens internes */
font-weight: bold;
text-decoration: none;
}
a.internal-link:hover {
text-decoration: underline;
color: #20b2aa;
}

9
.obsidian/snippets/listes_puces.css vendored Normal file
View File

@ -0,0 +1,9 @@
/* ========== LISTES À PUCES (ul) ========== */
.markdown-preview-view ul {
list-style-type: disc; /* Cercle plein */
margin-left: 1.5em;
color: #e0e0e0;
}
.markdown-preview-view ul li {
padding: 4px 0;
}

12
.obsidian/snippets/multi_line_code.css vendored Normal file
View File

@ -0,0 +1,12 @@
/* ========== BLOCS DE CODE MULTI-LIGNE ========== */
.markdown-preview-view pre code {
display: block;
background-color: #2b2b2b;
color: #f8f8f2;
padding: 12px;
border-radius: 6px;
overflow-x: auto;
font-family: "Fira Code", monospace;
font-size: 0.95em;
box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.5);
}

9
.obsidian/snippets/picture.css vendored Normal file
View File

@ -0,0 +1,9 @@
/* ========== IMAGES ========== */
.markdown-preview-view img {
max-width: 100%;
border-radius: 6px;
box-shadow: 0 2px 6px rgba(0,0,0,0.5);
margin: 1em 0;
display: block;
}

60
.obsidian/snippets/table_dark_mode.css vendored Normal file
View File

@ -0,0 +1,60 @@
/* ======================================
Style personnalisé pour les TABLEAUX
Obsidian - Thème sombre
====================================== */
/* Style général des tableaux */
.markdown-preview-view table {
border-collapse: collapse; /* Fusionne les bordures des cellules */
width: 100%; /* Prend toute la largeur disponible */
margin: 1em 0; /* Espace au-dessus et en dessous */
background-color: #1e1e1e; /* Couleur de fond du tableau */
color: #e0e0e0; /* Couleur du texte */
border: px solid #444; /* Bordure extérieure */
font-size: 0.95em; /* Légère réduction de la taille de police */
}
/* Style des cellules générales (corps du tableau) */
.markdown-preview-view td {
padding: 10px; /* Espace intérieur dans chaque cellule */
border: 1px solid #444; /* Bordure autour des cellules */
text-align: left; /* Alignement du texte */
vertical-align: top; /* Aligne en haut par défaut */
background-color: #2a2a2a; /* Fond des cellules */
color: #dddddd; /* Couleur du texte des cellules */
}
/* En-tête de colonne */
.markdown-preview-view th {
padding: 12px; /* Espace intérieur des cellules en-tête */
border: 1px solid #555; /* Bordure */
background-color: #333; /* Fond plus contrasté pour les titres */
color: #ffffff; /* Texte plus clair */
text-transform: uppercase; /* Met en majuscules les titres */
font-weight: bold; /* Met les en-têtes en gras */
text-align: center; /* Centre les titres par défaut */
}
/* Ligne survolée */
.markdown-preview-view tr:hover {
background-color: #383838; /* Changement de fond au survol */
}
/* Style de la première colonne si elle agit comme un titre de ligne */
.markdown-preview-view td:first-child {
font-weight: 600; /* Légèrement plus gras */
color: #f1c40f; /* Couleur différente pour se démarquer */
background-color: #262626; /* Fond un peu plus sombre */
}
/* Si tu veux ajouter une bordure arrondie au tableau */
.markdown-preview-view table {
border-radius: 6px; /* Coins arrondis */
overflow: hidden; /* Empêche le débordement des coins */
}
/* Si tu veux ajuster l'espacement entre les lignes */
.markdown-preview-view tr {
line-height: 1.6; /* Hauteur de ligne agréable */
}

16
.obsidian/snippets/tags.css vendored Normal file
View File

@ -0,0 +1,16 @@
/* ========== TAGS (#monTag) ========== */
.markdown-preview-view .tag {
background-color: #333;
color: #ffd700;
padding: 4px 8px;
margin: 2px;
border-radius: 4px;
font-size: 0.85em;
font-weight: bold;
display: inline-block;
text-decoration: none;
}
.markdown-preview-view .tag:hover {
background-color: #444;
cursor: pointer;
}

76
.obsidian/snippets/title_colors.css vendored Normal file
View File

@ -0,0 +1,76 @@
/* Titre de niveau 1 */
.markdown-preview-view h1 {
color: #FF0000;
background-color: #A9A9A9;
text-transform: capitalize;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
border-left: 4px solid #98FF98;
border-right: 4px solid #98FF98;
padding: 1px 4px;
border-radius: 5px;
}
/* Titre de niveau 2 */
.markdown-preview-view h2 {
color: #40E0D0;
background-color: #000000;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
border-left: 4px solid #8B0000;
border-right: 4px solid #8B0000;
padding: 1px 4px;
border-radius: 5px;
}
/* Titre de niveau 3 */
.markdown-preview-view h3 {
color: #FF0000;
background-color: #A9A9A9;
text-transform: capitalize;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
border-left: 4px solid #98FF98;
border-right: 4px solid #98FF98;
padding: 1px 4px;
border-radius: 5px;
}
/* Titre de niveau 4 */
.markdown-preview-view h4 {
color: #27ae60;
background-color: #000000;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
border-left: 4px solid #8B0000;
border-right: 4px solid #8B0000;
padding: 1px 4px;
border-radius: 5px;
}
/* Titre de niveau 5 */
.markdown-preview-view h5 {
color: #00008B;
background-color: #A9A9A9;
text-transform: capitalize;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
border-left: 4px solid #98FF98;
border-right: 4px solid #98FF98;
padding: 1px 4px;
border-radius: 5px;
}
/* Titre de niveau 6 */
.markdown-preview-view h6 {
color: #FFD700;
background-color: #000000;
font-weight: bold;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
border-left: 4px solid #8B0000;
border-right: 4px solid #8B0000;
padding: 6px 8px;
border-radius: 5px;
}

28
.obsidian/types.json vendored Normal file
View File

@ -0,0 +1,28 @@
{
"types": {
"aliases": "aliases",
"cssclasses": "multitext",
"tags": "tags",
"TQ_explain": "checkbox",
"TQ_extra_instructions": "text",
"TQ_short_mode": "checkbox",
"TQ_show_backlink": "checkbox",
"TQ_show_cancelled_date": "checkbox",
"TQ_show_created_date": "checkbox",
"TQ_show_depends_on": "checkbox",
"TQ_show_done_date": "checkbox",
"TQ_show_due_date": "checkbox",
"TQ_show_edit_button": "checkbox",
"TQ_show_id": "checkbox",
"TQ_show_on_completion": "checkbox",
"TQ_show_postpone_button": "checkbox",
"TQ_show_priority": "checkbox",
"TQ_show_recurrence_rule": "checkbox",
"TQ_show_scheduled_date": "checkbox",
"TQ_show_start_date": "checkbox",
"TQ_show_tags": "checkbox",
"TQ_show_task_count": "checkbox",
"TQ_show_tree": "checkbox",
"TQ_show_urgency": "checkbox"
}
}

View File

@ -13,12 +13,40 @@
"state": {
"type": "markdown",
"state": {
"file": "Arborescence du programme.md",
"file": "Agent.md",
"mode": "preview",
"source": false
},
"icon": "lucide-file",
"title": "Agent"
}
},
{
"id": "04f2d66792e4f2d7",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Ollama.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Arborescence du programme"
"title": "Ollama"
}
},
{
"id": "7ee01102562266a2",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Obsidian CSS.md",
"mode": "preview",
"source": false
},
"icon": "lucide-file",
"title": "Obsidian CSS"
}
},
{
@ -101,48 +129,6 @@
"title": "Notes Obsidian"
}
},
{
"id": "55790436b9dcec98",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "ODOO.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "ODOO"
}
},
{
"id": "70097a933971ddc0",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "ODOO.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "ODOO"
}
},
{
"id": "d96de1205e42706c",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Arborescence du programme.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Arborescence du programme"
}
},
{
"id": "1c49710a326fdb9d",
"type": "leaf",
@ -158,27 +144,7 @@
}
}
],
"currentTab": 9
},
{
"id": "9c71393f7d46dcbc",
"type": "tabs",
"children": [
{
"id": "439d345fc604dffe",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Questions pour Karim.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Questions pour Karim"
}
}
]
"currentTab": 2
}
],
"direction": "vertical"
@ -307,9 +273,19 @@
"icon": "lucide-list",
"title": "Plan de ODOO"
}
},
{
"id": "a070a39c9438a3a4",
"type": "leaf",
"state": {
"type": "advanced-tables-toolbar",
"state": {},
"icon": "spreadsheet",
"title": "Advanced Tables"
}
}
],
"currentTab": 3
"currentTab": 4
}
],
"direction": "horizontal",
@ -324,25 +300,34 @@
"daily-notes:Ouvrir la note quotidienne": false,
"templates:Insérer le modèle": false,
"command-palette:Ouvrir la palette de commandes": false,
"workspaces:Gérer les espaces de travail": false
"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
}
},
"active": "d96de1205e42706c",
"active": "7ee01102562266a2",
"lastOpenFiles": [
"Node.js.md",
"Capture d'écran 2025-03-20 112035.png",
"Capture d'écran 2025-03-20 112004.png",
"Capture d'écran 2025-03-20 111902.png",
"Ollama.md",
"Questions pour Karim.md",
"Obsidian CSS.md",
"Notes 1er jour support CBAO.md",
"Notes Obsidian.md",
"Notes projet LLM.md",
"Notes RAGFLOW.md",
"Notes webdev.md",
"Odoo.md",
"Questions pour Karim.md",
"Scripts requêtes Odoo.md",
"Fichier type json récupération odoo.md",
"Notes webdev.md",
"Notes RAGFLOW.md",
"guide_ollama_complet.md",
"Agent.md",
"Arborescence du programme.md",
"Node.js.md",
"Fichier type json récupération odoo.md",
"Capture d'écran 2025-03-20 145754.png",
"Capture d'écran 2025-03-20 145214.png",
"Capture d'écran 2025-03-20 150023.png",
"Capture d'écran 2025-03-20 112035.png",
"Capture d'écran 2025-03-20 112004.png",
"Capture d'écran 2025-03-20 111902.png",
"Scripts requêtes Odoo.md",
"Jour 5 notes support traitement ticket dev.md",
"Réunion.md",
"Réunion 13 mars.md",
@ -350,9 +335,6 @@
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/4. Les pièces jointes/Obsidian Facile - Les premiers plugins 3.png",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/4. Les pièces jointes/Obsidian Facile - Les premiers plugins 2.png",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/4. Les pièces jointes/Obsidian Facile - Importer.png",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/4. Les pièces jointes/Obsidian Facile - Importer deepak-n-vNmwqcHMN6g-unsplash.jpg",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/4. Les pièces jointes/Obsidian Facile - Importer deepak-n-vNmwqcHMN6g-unsplash 1.jpg",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/4. Les pièces jointes/Obsidian Facile - Importer 7.gif",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des tags/2 - Recette de poulet au curry (TAGS).md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des tags/1 - Recette de poulet basquaise (TAGS).md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des liens/Vin Blanc.md",
@ -360,10 +342,6 @@
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des liens/Liste de mes recettes.md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des liens/2 - Recette de poulet au curry (LIENS).md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des liens/1 - Recette de poulet basquaise (LIENS).md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Autres notes exemple/Exemple de note vers laquelle créer un lien.md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/1. Les modules/7 - 25 raccourcis clavier indispensables.md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/1. Les modules/6 - Les premiers plugins à installer ( TOP 32 ).md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/1. Les modules/5 - Importer des fichiers, l'essentiel.md",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des tags",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine/Utilisation des liens",
"docs cbao/formation OBSIDIAN/Obsidian Facile/Obsidian Facile/Supports de formation/3. Les notes utilitaires pour la formation/Exemple cuisine",

109
Agent.md Normal file
View File

@ -0,0 +1,109 @@
#### <u><font color="#92cddc">Paramètres utilisés pour les modèles:</font></u>
| ==**Paramètre**== | ==**Description**== | ==**Valeurs typiques recommandées**== |
| :------------------------ | :--------------------------------------------------------------------------------------------------- | :------------------------------------------- |
| ==**temperature**== | Contrôle la créativité du modèle (variablilité des réponses) | 0.1 (précis) à 1.0+(créatif) |
| ==**top_p**== | (sampling nucleus) Sélectionne des tokens parmi les plus probables jusqu'à atteindre la somme top_p. | 0.9 à 0.99 |
| ==**top_k**== | Sélectionne les tokens parmi les top K les plus probables uniquement. | 40 à 100 |
| ==**num_ctx**== | Longueur maximale du contexte (nombre de tokens) | selon modèle (ex: 4096, 8192, 32000, 128000) |
| ==**repeat_penalty**== | pénalise les répétitions de phrases ou mots déjà utilisés. | 1.0 (désactivé), typiquement 1.1 à 1.3 |
| ==**presence_penalty**== | Pénalise la présence répétée de mots, encourage diversité. | 0.0 à 1.0 |
| ==**frequency_panalty**== | Pénalise les répétitions fréquents de même mots. | 0.0 à 1.0 |
| ==**mirostat**== | Contrôle adaptaif de la perplexité (cohérence/répétition). | 0 (désactivé), & ou 2 (activé) |
| ==**mirostat_tau**== | Ajuste précisément le niveau cible de perplexité(avec mirostat) | typiquement 5.0 à 8.0 |
| ==**mirostat_eta**== | Vitesse d'ajustement adaptatif de mirostat | typiquement 0.1 |
| ==**stop**== | Liste de mots ou tokens qui arrêtent automatiquement la génération. | ex: ["\n", "</s>, ""] |
| ==**num_predict**== | Nombre maximal de tokens générés pour la réponse. | typiquement 128 à 2048+ |
| ==**seed**== | Seed (graine) pour garantir la reproductibilité des réponses. | entier fixe (42 par exemple) |
Exemple d'utilisation de ces paramètres lors de l'initialisation d'un agent:
```python
from base_agent import BaseOllamaAgent
class AdvancedQwenCoderAgent(BaseOllamaAgent):
def __init__(self):
super().__init__(
model_name="hf.co/unsloth/Qwen2.5-Coder-32B-Instruct-128K-GGUF:Q8_0",
options={
- "temperature": 0.2,
"top_p": 0.95,
"top_k": 50,
"repeat_penalty": 1.2,
"frequency_penalty": 0.5,
"presence_penalty": 0.3,
"num_ctx": 128000,
"mirostat": 1,
"mirostat_tau": 5.5,
"mirostat_eta": 0.1,
"num_predict": 1024,
"seed": 42
}
)
```
#### <u><font color="#92cddc">Recherche sur paramètres llama_vision3.2 90b paramétrage optimal:</font></u>
1. <font color="#974806">**Tests sur des Images:**</font>
- **<font color="#76923c">Description d'images:</font>**
- **Objectif:** Evaluer la capacité du modèle à générer des descriptions et détaillées des images fournies. [DOC : Llama 3.2 Overview — NVIDIA NIM for Vision Language Models (VLMs)](https://docs.nvidia.com/nim/vision-language-models/1.2.0/examples/llama3-2/overview.html)
- **Paramètres recommandés :**
- **Température :** 0,7
- *Justification* : Une température modérée favorise la créativité tout en mainteant la cohérence des descriptions.
- **Top-p (nucléus sampling) :** 0,9
- *Justification* : Cettte valeur permet au modèle de considérer un large éventail de mots probables, améliorant ainsi la richesse des descriptions.
- **<font color="#76923c">Questions-Réponses Basées sur des Images :</font>**
- **Objectif :** Tester la capacité du modèle à répondre avec précision à des questions spécifiques concernant le contenu d'une image.
- **Paramètres recommandés :**
- **Température:** 0,5
- *Justification :* Une température plus basse favorise des réponses plus précises et factuelles.
- **Top-p:** 0.8 [DOC : Llama 3.2 Vision Models — NVIDIA NeMo Framework User Guide](https://docs.nvidia.com/nemo-framework/user-guide/latest/vlms/mllama.html)
- *Justification :* Cette valeur réduit la probabilité de réponses incohérents en limitant la sélection aux mots les plus probables.
- **<font color="#76923c">Reconnaissance de Concepts Visuels :</font>**
- **Objectif :** Evaluer la capacité du modèle à identifier et comprendre des objets, scènes ou actions spécifiques dans une image.
- **Paramètres recommandés :**
- **Température** : 0,6
- *Justification :* Un équilibre entre créativité et précision est nécessaire pour cette tâche.
- **Top-p** : 0,85
- *Justification*: Cette valeur assure que le modèle considère les options les plus probables tout en conservant une certaine diversité.
---
2.**<font color="#974806"> Tests sur des Fichiers JSON</font>**
- **<font color="#76923c">Validation de la Structure JSON :</font>**
- **Objectif :** Vérifier la capacité du modèle à identifier des erreurs de structure dans des fichiers JSON.
- **Paramètres recommandés :**
- **Température** : 0,3
- Justification : Une température basse est idéale pour des tâches nécessitant une analyse précise et factuelle.
- **Top-p** : 0,7
- Justification : Cette valeur limite la génération à des options hautement probables, réduisant les risques d'erreurs.
- **<font color="#76923c">Extraction d'informations :</font>**
- **Objectif:** Tester la capacité du modèle à extraire des informations spécifiques à partir de fichiers JSON complexes.
- **Paramètres recommandés:**
- **Température :** 0,4
- *Justification* : Favorise la précision lors de l'extraction d'informations spécifiques.
- **Top-p :** 0,75 [DOC : Llama 3.2 \| Model Cards and Prompt formats](https://www.llama.com/docs/model-cards-and-prompt-formats/llama3_2/)
- *Justification* : Assure que le modèle se concentre sur les informations les plus pertinentes.
- **<font color="#76923c">Transformation de Données :</font>**
- **Objectif :** Evaluer la capacité du modèle à transformer des données JSON d'un format à un autre.
- **Paramètres recommandés:**
- **Température :** 0,5
- *Justification :* Un équilibre entre créativité et précision est nécessaire pour reformater les données correctement.
- **Top-p :** 0,8
- *Justification:* Permet une certaine flexibilité tout en maintenant la cohérence dans la transformation des données.
- **<font color="#76923c">Génération de Fichiers JSON :</font>**
- **Objectif :** Tester la capacité du modèle à générer des structures JSON valides à partir de descriptions textuelles ou de spécifications.
- **Paramètres recommandés :**
- **Température :** 0,6
- *Justification :* Encourage une génération légèrement créative tout en respectant les structures attendues.
- **Top-p :** 0,85
- *Justification :* Assure que le modèle considère les options les plus probables pour maintenir la validité du JSON.
---
3. **<font color="#974806">Considérations Supplémentaires</font>**
- longueur du Contexte : le modèle LLama 3.2 Vision 90B supporte une longueur de contexte allant jusqu'à 128K tokens, ce qui est particulièrement utile pour traiter de longs documents ou des images avec des descriptions détaillées.

Binary file not shown.

After

Width:  |  Height:  |  Size: 782 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 771 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

181
Obsidian CSS.md Normal file
View File

@ -0,0 +1,181 @@
## Configuration des titres automatiques
Configuration personnelle dans répertoire snippets du coffre obsidian fichier : title_colors.css
| Couleur | Code HEX | Aperçu |
| ------------ | --------- | ------------------------------------------------------------------------------ |
| Rouge | `#FF0000` | <span style="background-color:#FF0000;color:#fff;padding:2px 8px;"></span> |
| Vert | `#00FF00` | <span style="background-color:#00FF00;"></span> |
| Bleu | `#0000FF` | <span style="background-color:#0000FF;color:#fff;padding:2px 8px;"></span> |
| Jaune | `#FFFF00` | <span style="background-color:#FFFF00;"></span> |
| Cyan | `#00FFFF` | <span style="background-color:#00FFFF;"></span> |
| Magenta | `#FF00FF` | <span style="background-color:#FF00FF;"></span> |
| Noir | `#000000` | <span style="background-color:#000000;color:#fff;padding:2px 8px;"></span> |
| Blanc | `#FFFFFF` | <span style="background-color:#FFFFFF;border:1px solid #ccc;"></span> |
| Gris clair | `#D3D3D3` | <span style="background-color:#D3D3D3;"></span> |
| Gris foncé | `#A9A9A9` | <span style="background-color:#A9A9A9;"></span> |
| Rouge foncé | `#8B0000` | <span style="background-color:#8B0000;color:#fff;padding:2px 8px;"></span> |
| Vert foncé | `#006400` | <span style="background-color:#006400;color:#fff;padding:2px 8px;"></span> |
| Bleu foncé | `#00008B` | <span style="background-color:#00008B;color:#fff;padding:2px 8px;"></span> |
| Orange | `#FFA500` | <span style="background-color:#FFA500;"></span> |
| Or | `#FFD700` | <span style="background-color:#FFD700;"></span> |
| Rose | `#FFC0CB` | <span style="background-color:#FFC0CB;"></span> |
| Lavande | `#E6E6FA` | <span style="background-color:#E6E6FA;"></span> |
| Turquoise | `#40E0D0` | <span style="background-color:#40E0D0;"></span> |
| Indigo | `#4B0082` | <span style="background-color:#4B0082;color:#fff;padding:2px 8px;"></span> |
| Violet | `#800080` | <span style="background-color:#800080;color:#fff;padding:2px 8px;"></span> |
| Bleu ciel | `#87CEEB` | <span style="background-color:#87CEEB;"></span> |
| Vert citron | `#ADFF2F` | <span style="background-color:#ADFF2F;"></span> |
| Rouge corail | `#FF7F50` | <span style="background-color:#FF7F50;"></span> |
| Menthe | `#98FF98` | <span style="background-color:#98FF98;"></span> |
| Bleu pétrole | `#2F4F4F` | <span style="background-color:#2F4F4F;color:#fff;padding:2px 8px;"></span> |
| Sable | `#F4A460` | <span style="background-color:#F4A460;"></span> |
| Chocolat | `#D2691E` | <span style="background-color:#D2691E;color:#fff;padding:2px 8px;"></span> |
| Bronze | `#CD7F32` | <span style="background-color:#CD7F32;"></span> |
| Vert forêt | `#228B22` | <span style="background-color:#228B22;color:#fff;padding:2px 8px;"></span> |
Exemple de code du fichier :
```markdown
.markdown-preview-view h1 {
color: #e74c3c; /* Rouge */
background-color: #ffeaea;
}
.markdown-preview-view h2 {
color: #2980b9; /* Bleu */
background-color: #eaf4ff;
}
.markdown-preview-view h3 {
color: #27ae60; /* Vert */
background-color: #eafff3;
}
.markdown-preview-view h4 {
color: #e67e22; /* Orange */
background-color: #fff3e6;
}
```
```css
/* =========================================
PERSONNALISATION DES TITRES MARKDOWN
========================================= */
.markdown-preview-view h1,
.markdown-preview-view h2,
.markdown-preview-view h3,
.markdown-preview-view h4,
.markdown-preview-view h5,
.markdown-preview-view h6 {
/* === Apparence du texte === */
/* Couleur du texte */
color: #333; /* ➤ Changer la couleur du titre — ex: #e74c3c pour rouge vif */
/* Pour désactiver : commenter ou supprimer la ligne */
/* Police en gras */
font-weight: bold; /* ➤ Force du gras — "normal", "bold", ou 100 à 900 */
/* Style de police */
font-style: normal; /* ➤ "italic" pour pencher les titres */
/* Transformation du texte */
text-transform: none; /* ➤ "uppercase", "lowercase", ou "capitalize" */
/* Soulignement, surlignement */
text-decoration: none; /* ➤ "underline", "line-through", etc. */
/* Ombre sur le texte */
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); /* ➤ Effet d'ombre douce */
/* === Fond et encadrement === */
/* Couleur de fond */
background-color: transparent; /* ➤ Changer pour mettre en valeur (ex: #f0f0f0) */
/* Bordure gauche (style bloc-notes) */
border-left: 4px solid transparent; /* ➤ Couleur & épaisseur personnalisables */
/* Bordure globale (si besoin) */
border: none;
/* Rayon des coins */
border-radius: 4px; /* ➤ Arrondi des bords */
/* === Espacement === */
/* Espace intérieur (entre le texte et le bord) */
padding: 6px 10px; /* ➤ Haut/Bas 6px, Gauche/Droite 10px */
/* Marge extérieure (espacement entre éléments) */
margin-top: 20px;
margin-bottom: 10px;
/* === Taille du texte (ajustable par niveau) === */
/* Décommenter si tu veux des tailles fixes */
/*
font-size: 2em; // h1
font-size: 1.75em; // h2
font-size: 1.5em; // h3
font-size: 1.25em; // h4
font-size: 1em; // h5
font-size: 0.875em;// h6
*/
/* === Police personnalisée === */
/* font-family: 'Fira Code', 'Arial', sans-serif; */
}
```
### 1. Structures de base dans obsidian (éléments ciblages en CSS)
| Élément Obsidian | Sélecteur CSS | Description |
| ------------------------- | ---------------------------- | ------------------------------- |
| Vue lecture (Preview) | `.markdown-preview-view` | Affiche la note en mode lecture |
| Vue édition (Editor) | `.cm-s-obsidian` | Contenu en mode édition |
| Titre de niveau 1 (`#`) | `h1` | Titre principal |
| Titre de niveau 2 (`##`) | `h2` | Sous-titre |
| Titre de niveau 3 (`###`) | `h3` | Sous-sous-titre |
| Citation (`>`) | `blockquote` | Bloc de citation |
| Liste à puces | `ul`, `li` | Liste non ordonnée |
| Liste numérotée | `ol`, `li` | Liste ordonnée |
| Case à cocher | `input[type="checkbox"]` | Checkbox dans les tâches |
| Tâche cochée | `.task-list-item.is-checked` | Tâche marquée comme faite |
| Lien interne | `a.internal-link` | Lien vers une autre note |
| Lien externe | `a.external-link` | Lien vers un site web |
| Tableau Markdown | `table`, `thead`, `td`, `th` | Tableau classique |
| Bloc de code | `pre code`, `code` | Code sur plusieurs lignes |
| Code inline | `code` | Code en ligne |
| Image | `img` | Image insérée |
| Tags (en bas des notes) | `.tag` | Balises de tags Markdown |
### 2. Propriétés CSS utiles (et exemples pour obsidian)
| Propriété CSS | Exemple | Utilité |
|---------------------|--------------------------------|-------------------------------------------------------------|
| `color` | `color: #ff0000;` | Couleur du texte |
| `background-color` | `background-color: #f0f0f0;` | Couleur de fond |
| `font-size` | `font-size: 1.2em;` | Taille du texte |
| `font-family` | `font-family: 'Fira Code';` | Police du texte |
| `font-weight` | `font-weight: bold;` | Gras ou fin |
| `text-align` | `text-align: center;` | Alignement du texte (left, right, center, justify) |
| `text-decoration` | `text-decoration: underline;` | Souligné, barré, etc. |
| `text-transform` | `text-transform: uppercase;` | Majuscules, minuscules |
| `padding` | `padding: 10px;` | Espace intérieur |
| `margin` | `margin: 20px;` | Espace extérieur |
| `border` | `border: 1px solid #ccc;` | Bordure autour dun élément |
| `border-radius` | `border-radius: 8px;` | Coins arrondis |
| `box-shadow` | `box-shadow: 2px 2px 5px #aaa;`| Ombre portée |
| `line-height` | `line-height: 1.5;` | Espacement entre les lignes |
| `display` | `display: block;` | Type d'affichage (inline, block, flex...) |
| `max-width` | `max-width: 800px;` | Limiter la largeur dun élément |
| `overflow` | `overflow: auto;` | Gérer le débordement (utile pour blocs de code/tables) |
### 3. Tableau spécial : personnalisation des tableaux et blocs de code
| Élément | Sélecteur CSS | Propriétés utiles | Exemple |
|--------------------|-----------------------------------|----------------------------------------------------------------------|---------------------------------------------------------------------|
| Tableau | `table` | `border`, `width`, `border-collapse`, `margin`, `background-color` | `table { border: 1px solid #ccc; border-collapse: collapse; }` |
| Ligne de tableau | `tr` | `background-color`, `border-bottom`, `hover` effects | `tr:hover { background-color: #f5f5f5; }` |
| Cellule | `td`, `th` | `padding`, `text-align`, `color` | `td { padding: 8px; text-align: left; }` |
| Tête de tableau | `thead th` | `font-weight`, `background-color` | `thead th { background-color: #eee; font-weight: bold; }` |
| Bloc de code | `pre code` | `background-color`, `padding`, `font-family`, `border-radius` | `pre code { background-color: #f4f4f4; padding: 12px; }` |
| Code inline | `code` | `background`, `padding`, `font-family`, `border-radius` | `code { background: #eee; padding: 2px 4px; }` |
| Scroll horizontal | `pre` | `overflow-x`, `max-width` | `pre { overflow-x: auto; max-width: 100%; }` |

108
Ollama.md Normal file
View File

@ -0,0 +1,108 @@
### 1. Connaissances de base et commandes essentielles
#### a. Installation et configuration initiale
- Installation sur Linux/Windows/macOS:
```bash
curl -fsSL https://ollama.com/install.sh | sh
```
- Vérifier l'installation :
```bash
ollama --version
```
- Lancer le serveur Ollama :
```bash
ollama serve
```
#### Commandes complètes de base
- Afficher les modèles disponibles :
```bash
ollama list
```
- Télécharger un modèle précis :
```bash
ollama pull llama3
```
- Lancer un prompt rapidement :
```bash
ollma run llama3 "Quelle est la capitale de la France?"
```
- Gestion avancée des modèles :
```bash
ollama show llama3
ollama rm llama3
```
#### c. Utilisation des commandes GPU Nvidia (spécifique H100)
- Vérification GPU disponible:
```bash
nivdia-smi
```
- Configuration spécifique GPU Nvidia pour Ollama:
- Ollama utilise automatiquement CUDA lorsqu'un GPU Nvidia est disponible, mais vérifier le support CUDA
```bash
nvcc --version
```
- Monitoring GPU durant l'utilisation Ollama :
```bash
watch -n 1 nvidia-smi
```
- Optimisation d'utilisation GPU (exemple H100) :
- S'assurer d'avoir installé CUDA Toolkit 12.x (compatible H100).
- Gestion des ressources GPU (notamment via variables d'environnement si besoin spécifique) :
```bash
export CUDA_CISIBLE_DEVICES=0 #pour préciser le GPU à utiliser
```
---
### 2. Connaissances globales sur Ollama
#### a. Architechture générale d'Ollama
- Composants principaux :
- Ollama server (gestion des requêtes et des modèles)
- Modèles supportés (LLaMa, Gemma, Mistral, LLaVA, Codellama...)
- Communication via REST API locale
#### b. Modèles disponibles et usages recommandés
- Modèles linguistiques (LLM) généraux (LLaMA3, Mistral, Mixtral...)
- Modèles spécialisés (CodeLLaMA pour code, LLaVA pour multimodal...)
#### c. Bonnes pratiques
- Gestion et stockage des modèles (volumes importants)
- Mise à jour régulière des modèles
- Structuration simple des requêtes de test
---
### 3. Connaissances poussées et avancées
#### a. Déploiement en production (serveur, VM, cloud)
- Dockerisation Ollama
```bash
docker run -d -p 11434:11434 -v ~/.ollama:/root/.ollama ollama/ollama
```
- Automatisation (docker-compose, Kubernetes)
#### b. Modèles avancés et optimisation
- Fine-tuning personalisé (concept théorique, actuellement limité sur Ollama)
- Création de modèles personnalisés via Ollama (ollama create)
#### c. Benchmark et évaluation de performances
- Tests de vitesse et de latence des modèles:
```bash
ollma run --verbose llama3 "test de performance"
```
- Monitoring continu et logging avancé
---
### 4. Approfondissement de l'API Ollama
#### a. Structure

View File

@ -13,4 +13,55 @@
- [ ] langchain, ...
- [ ] besoin fine-tuning?
- [ ] Voir efficacité de guider l'utilisateur pour récupérer les informations plus rapidement
- [ ] Mise en place d'une interface locale? (Gradio ou autre) avec enregistrement des conversations pour tests et ajout des conversations au JSON pour regrouper es données concernant la demande
- [ ] Mise en place d'une interface locale? (Gradio ou autre) avec enregistrement des conversations pour tests et ajout des conversations au JSON pour regrouper es données concernant la demande
base de donnée sur elastic search
Récupérer les tickets avec demandes et solutions
- voir ticket et demandes voir les réponses
- celles clôturés question/réponse possibilité d'injection dans le LLM
- sur le RAG synthétisé la question et synthétiser la réponse (fils de discussion client et support)
- Attention plusieurs questions dans la demande
- traité les images donner une explication au format texte pour l'intégrer dans la synthèse Q/R
- Si quelque chose a été signalé en cours de traitement
- Comment faire une recherche en base de donnée
- Quand on fait fine-tuning lora injecte ce qui est nouveau une fois par mois
- Fine-tuning refaire une synthèse résumé de l'ensemble
- cleaning du data set
- dans le rag pdf
- possibilité de signalé un problème qui est récurrent
- voir retraining si mauvaise réponse
- Dabord en cours
- ticket une fois corrigé pas besoin
- faire un exercice et les donner à un llm grand et lui demander d'extracter le problème et la solution Demander quel est le probleme
- lui demander d'analyser les images
- On compile avec le fil de discussion on peut laisser image avec le texte LLM Vision
- Vision a déjà la partie discussion ça dépend la stratégie
- llama-vision (llava) voir comment il réagit et modifier la réponse pour qu'il comprenne comment cela va fonctionner
- Mieux tout sur llava et voir le résultat
- 3 agents,
- Réajuster les réponses et les réinjecter
- Demander au client de plus décrire les choses
- content rôle du llm 2emequestion 3eme réponse cette option
- agent qui va résumé question, résumé réponse,
- contexte pour chaque type de demande
- Normes dans le RAG knowledgebase
- mode hybride RAG / fine tuning
- Meme LLM qui va avoir différents agents
- Voir les screen des différents datasets
- huggin face
- https://www.kaggle.com/ plus mathématique
- dataset interessants pour le béton reprendre la logique
- voir postgres
configurer vscode avec les agents et et les différents modèles du servuer ollama
documentation ollama
voir Cline()
- voir dans vscode pour lui assigner un rôle comme agent (ex: tu dois convertir du code wlangage en python)
- puis lui demander de convertir tels fichiers à convertir et travailler le prompt
- et continue égalment dans vscode plus assigner à une tâche
documentation ollama API
- voir paramètrage
- voir utilisation précise dans vscode
[Commencer \| DataCamp](https://www.datacamp.com/fr/users/sign_up?redirect=%2Ftracks%2Fai-fundamentals%2Fenroll) grascalvet.fernand@gmail.com Lestat66!

444
guide_ollama_complet.md Normal file
View File

@ -0,0 +1,444 @@
# Guide complet sur Ollama
## 1. Connaissances de base (commandes complètes, commandes NVIDIA pour H100)
### 1.1 Commandes essentielles d'Ollama
Voici les commandes fondamentales pour utiliser Ollama efficacement :
| Commande | Description |
|----------|-------------|
| `ollama serve` | Démarre le serveur Ollama sur votre système local |
| `ollama create <nouveau_modèle>` | Crée un nouveau modèle à partir d'un modèle existant |
| `ollama show <modèle>` | Affiche les détails d'un modèle spécifique |
| `ollama run <modèle>` | Exécute le modèle spécifié pour interaction |
| `ollama pull <modèle>` | Télécharge le modèle spécifié sur votre système |
| `ollama list` | Liste tous les modèles téléchargés |
| `ollama ps` | Affiche les modèles actuellement en cours d'exécution |
| `ollama stop <modèle>` | Arrête le modèle spécifié en cours d'exécution |
| `ollama rm <modèle>` | Supprime le modèle spécifié de votre système |
### 1.2 Commandes pour l'utilisation avec GPU NVIDIA (H100)
Pour tirer parti des GPU NVIDIA H100 avec Ollama :
1. **Vérification de l'installation NVIDIA** :
```bash
nvidia-smi
```
2. **Variables d'environnement pour l'exécution sur GPU** :
```bash
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ollama run <modèle>
```
3. **Vérification de l'utilisation GPU** :
```bash
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
```
4. **Commandes en cas de problème après mise en veille** (Linux) :
```bash
sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm
```
## 2. Connaissances globales de Ollama
### 2.1 Qu'est-ce qu'Ollama ?
Ollama est une plateforme qui permet d'exécuter des modèles de langage localement sur votre propre ordinateur. Cela facilite l'utilisation de l'IA pour les développeurs et les entreprises sans dépendre de serveurs externes ou d'une connexion internet. La plateforme simplifie le processus d'intégration de l'IA dans vos applications en fournissant des outils pour construire, entraîner et déployer des modèles directement depuis votre environnement local.
### 2.2 Modèles disponibles
Ollama prend en charge une large gamme de modèles. Voici quelques exemples :
| Modèle | Paramètres | Taille | Commande |
|--------|------------|--------|----------|
| Llama 3.1 | 8B | 4.7GB | `ollama run llama3.1` |
| Llama 3.1 | 70B | 40GB | `ollama run llama3.1:70b` |
| Phi 3 Mini | 3.8B | 2.3GB | `ollama run phi3` |
| Phi 3 Medium | 14B | 7.9GB | `ollama run phi3:medium` |
| Gemma 2 | 27B | 16GB | `ollama run gemma2:27b` |
| Mistral | 7B | 4.1GB | `ollama run mistral` |
| Code Llama | 7B | 3.8GB | `ollama run codellama` |
### 2.3 Configuration de base
La configuration d'Ollama se fait généralement dans le fichier `~/.ollama/config.json` :
```json
{
"host": "127.0.0.1",
"port": 11434,
"timeout": 30
}
```
## 3. Connaissances poussées
### 3.1 Exécution dockerisée
Pour utiliser Ollama dans Docker avec support GPU :
```bash
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
```
### 3.2 Création de modèles personnalisés
La création d'un modèle personnalisé se fait via un fichier Modelfile :
```
FROM llama3.1
SYSTEM Je suis un assistant spécialisé dans le développement logiciel.
PARAMETER num_ctx 8192
PARAMETER temperature 0.7
PARAMETER num_gpu 1
```
Puis créez le modèle :
```bash
ollama create mon-assistant -f ./Modelfile
```
### 3.3 Configuration avancée pour les GPU H100
Les H100 sont les GPU les plus puissants de NVIDIA pour l'IA :
- Utilisent des cœurs tenseurs de 4ème génération
- Supportent le FP8 pour une meilleure précision
- Offrent une bande passante mémoire de 3 TB/s
- Fournissent 60 téraflops en double précision (FP64)
- Permettent de gérer des modèles très larges comme Falcon 180B
## 4. Approfondissement partie API
### 4.1 Utilisation de l'API avec curl
L'API Ollama est accessible via HTTP sur le port 11434 par défaut :
```bash
# Génération simple
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Comment vas-tu aujourd'hui?"
}'
# Désactiver le streaming pour obtenir une réponse complète
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Comment vas-tu aujourd'hui?",
"stream": false
}'
```
### 4.2 Intégration avec Python
Installation :
```bash
pip install ollama
```
Exemple d'utilisation :
```python
import ollama
# Génération simple
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "user", "content": "Explique-moi les bases du machine learning."}
]
)
print(response['message']['content'])
# Avec streaming
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "user", "content": "Écris un poème sur l'IA."}
],
stream=True
)
for chunk in response:
print(chunk['message']['content'], end='', flush=True)
```
### 4.3 Endpoints principaux de l'API
- `/api/generate` : Génère du texte à partir d'un prompt
- `/api/chat` : Conversation avec historique
- `/api/embeddings` : Génère des embeddings vectoriels
- `/api/models` : Liste ou gère les modèles
- `/api/pull` : Télécharge un modèle
- `/api/create` : Crée un modèle personnalisé
## 5. Création d'agent avec Ollama
### 5.1 Structure de base d'un agent Ollama
Voici un exemple de classe d'agent Ollama en Python :
```python
from typing import List, Dict, Optional, AsyncIterable, Any
from dataclasses import dataclass
@dataclass
class OllamaAgentOptions:
streaming: bool = False
model_id: str = "llama2"
# Paramètres additionnels (temperature, top_k, top_p, etc.)
class OllamaAgent:
def __init__(self, options: OllamaAgentOptions):
self.model_id = options.model_id
self.streaming = options.streaming
# Initialisation d'autres attributs
async def process_request(
self,
input_text: str,
user_id: str,
session_id: str,
chat_history: List[Dict],
additional_params: Optional[Dict[str, str]] = None
):
messages = [
{"role": msg["role"], "content": msg["content"]}
for msg in chat_history
]
messages.append({"role": "user", "content": input_text})
if self.streaming:
return await self.handle_streaming_response(messages)
else:
response = ollama.chat(
model=self.model_id,
messages=messages
)
return {
"role": "assistant",
"content": response['message']['content']
}
async def handle_streaming_response(self, messages: List[Dict[str, str]]):
text = ''
try:
response = ollama.chat(
model=self.model_id,
messages=messages,
stream=True
)
for part in response:
text += part['message']['content']
yield part['message']['content']
return {
"role": "assistant",
"content": text
}
except Exception as error:
print(f"Erreur lors du streaming : {error}")
raise error
```
### 5.2 Création d'un agent spécialisé
Exemple d'un agent spécialisé pour la programmation :
```python
class OllamaCodingAgent(OllamaAgent):
def __init__(self):
super().__init__(OllamaAgentOptions(
model_id="codellama",
streaming=True
))
self.system_prompt = "Tu es un assistant de programmation expert. Réponds avec du code clair et bien structuré."
async def process_request(self, input_text, user_id, session_id, chat_history, additional_params=None):
# Ajouter le system prompt au début de l'historique
if not chat_history or chat_history[0]["role"] != "system":
chat_history.insert(0, {"role": "system", "content": self.system_prompt})
return await super().process_request(input_text, user_id, session_id, chat_history, additional_params)
```
### 5.3 Orchestration multi-agents
Exemple d'orchestration de plusieurs agents Ollama :
```python
class OllamaOrchestrator:
def __init__(self):
self.agents = {}
self.sessions = {}
def add_agent(self, agent_id, agent):
self.agents[agent_id] = agent
def create_session(self, session_id, user_id):
self.sessions[session_id] = {
"user_id": user_id,
"history": []
}
async def route_request(self, session_id, agent_id, input_text):
if session_id not in self.sessions:
self.create_session(session_id, "default_user")
if agent_id not in self.agents:
raise ValueError(f"Agent {agent_id} non trouvé")
agent = self.agents[agent_id]
session = self.sessions[session_id]
response = await agent.process_request(
input_text=input_text,
user_id=session["user_id"],
session_id=session_id,
chat_history=session["history"]
)
session["history"].append({"role": "user", "content": input_text})
session["history"].append(response)
return response
```
## 6. Optimisation rapide et pratique du paramétrage des modèles
### 6.1 Paramètres principaux à optimiser
Voici les paramètres clés pour optimiser les performances d'Ollama :
| Paramètre | Description | Valeurs recommandées |
|-----------|-------------|---------------------|
| `temperature` | Contrôle la créativité des réponses | 0.0-1.0 (0.7 par défaut) |
| `top_p` | Sampling de probabilité cumulative | 0.1-1.0 (0.9 par défaut) |
| `top_k` | Nombre de tokens à considérer | 1-100 (40 par défaut) |
| `num_ctx` | Taille du contexte en tokens | 2048-8192 selon modèle |
| `num_gpu` | Nombre de GPU à utiliser | 1 ou plus selon disponibilité |
| `num_thread` | Nombre de threads CPU | Dépend de votre processeur |
| `repeat_penalty` | Pénalité pour répétition | 1.0-1.3 (1.1 par défaut) |
### 6.2 Optimisation selon le cas d'usage
#### Pour la génération de code :
```
PARAMETER temperature 0.2
PARAMETER top_p 0.95
PARAMETER repeat_penalty 1.2
PARAMETER num_ctx 8192
```
#### Pour la créativité :
```
PARAMETER temperature 0.8
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.05
PARAMETER num_ctx 4096
```
#### Pour les réponses factuelles :
```
PARAMETER temperature 0.1
PARAMETER top_p 0.8
PARAMETER repeat_penalty 1.2
PARAMETER num_ctx 4096
```
### 6.3 Technique d'itération pour l'optimisation
1. Commencer avec les paramètres par défaut
2. Ajuster un paramètre à la fois et évaluer les résultats
3. Documenter les changements et leurs effets
4. Tester sur différents types de requêtes
5. Créer des modèles spécialisés pour différents cas d'usage
## 7. Optimisation et intégration dans VSCode/Cursor
### 7.1 Installation et configuration de base
Pour intégrer Ollama dans VSCode/Cursor :
1. **Installer l'extension Continue** :
```bash
code --install-extension Continue.continue
```
2. **Configurer l'extension** :
Ouvrir les paramètres VSCode et configurer Continue :
```json
{
"continue.model": "ollama",
"continue.modelParameters": {
"model": "codellama"
}
}
```
### 7.2 Utilisation dans VSCode/Cursor
#### Commandes principales :
- Utiliser `Ctrl+Shift+P` (ou `Cmd+Shift+P` sur macOS) puis "Continue: Edit Code" pour générer du code
- Sélectionner du code et utiliser "Continue: Explain Code" pour obtenir des explications
- Utiliser "Continue: Edit Code" sur du code existant pour le refactoriser
#### Modèles recommandés pour VSCode/Cursor :
- **Autocomplétion** : `starcoder2:3b`
- **Génération de code** : `codellama` ou `deepseek-coder:6.7b`
- **Débug et explication** : `llama3.1`
### 7.3 Configuration avancée pour Cursor
Pour Cursor, qui est basé sur VSCode, vous pouvez optimiser davantage :
1. **Configuration pour les projets de grande taille** :
```json
{
"continue.model": "ollama",
"continue.modelParameters": {
"model": "codellama",
"num_ctx": 8192,
"temperature": 0.2
}
}
```
2. **Pour l'utilisation en ligne de commande** :
```bash
# Lancer le serveur Ollama
ollama serve
# Exécuter le modèle
ollama run codellama
```
3. **Commandes utiles dans l'interface Continue** :
- `"""` pour les messages multiligne
- `/bye` pour quitter le modèle
### 7.4 Résolution des problèmes courants
Si vous rencontrez des problèmes :
1. **Vérifier que le serveur Ollama est en cours d'exécution** :
```bash
ps aux | grep ollama
```
2. **Redémarrer le serveur** :
```bash
killall ollama
ollama serve
```
3. **Problèmes de performance** :
- Utiliser un modèle plus petit
- Fermer les applications gourmandes en ressources
- Vérifier la disponibilité de la RAM
4. **Si l'extension ne répond pas** :
- Recharger la fenêtre VSCode/Cursor
- Vérifier l'état du serveur Ollama
- Vérifier les paramètres de configuration