<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des IA &amp; Agents - ardaris</title>
	<atom:link href="https://ardaris.fr/category/ia-agents/feed/" rel="self" type="application/rss+xml" />
	<link>https://ardaris.fr/category/ia-agents/</link>
	<description></description>
	<lastBuildDate>Fri, 15 May 2026 09:25:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://ardaris.fr/wp-content/uploads/2025/12/cropped-FavIcon-32x32.png</url>
	<title>Archives des IA &amp; Agents - ardaris</title>
	<link>https://ardaris.fr/category/ia-agents/</link>
	<width>32</width>
	<height>32</height>
</image> 
        <wp_options>
            <wp_option>
                <name>
                    shopengine_activated_templates                </name>
                <val>
                    a:0:{}                </val>
            </wp_option>
        </wp_options>
        	<item>
		<title>RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026</title>
		<link>https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/</link>
					<comments>https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/#respond</comments>
		
		<dc:creator><![CDATA[arda-min_2027]]></dc:creator>
		<pubDate>Fri, 15 May 2026 09:04:44 +0000</pubDate>
				<category><![CDATA[IA & Agents]]></category>
		<guid isPermaLink="false">https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/</guid>

					<description><![CDATA[<p>RAG pour des données qui bougent, fine-tuning pour un style propriétaire, agents pour orchestrer. La grille de décision IA Ardaris en 2026.</p>
<p>L’article <a href="https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/">RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026</a> est apparu en premier sur <a href="https://ardaris.fr">ardaris</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&display=swap');

.ardaris-article, .ardaris-article *, .ardaris-article *::before, .ardaris-article *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}

/* === ISOLATION === */
html.ardaris-article-html, body.ardaris-article-page {
  background: #0C0D11 !important;
  margin: 0 !important; padding: 0 !important;
  width: 100% !important; max-width: 100vw !important;
  overflow-x: hidden !important;
  transform: none !important; filter: none !important; perspective: none !important;
  contain: none !important;
  scroll-behavior: smooth;
}
body.ardaris-article-page > *:not(.ardaris-article):not(.gold-dust-host):not(.reading-progress):not(script):not(style):not(noscript):not(svg) {
  display: none !important; visibility: hidden !important;
}
body.ardaris-article-page #wpadminbar { display: none !important; }

/* === POUSSIÈRE D'OR === */
.gold-dust-host {
  position: fixed; inset: 0;
  pointer-events: none; z-index: 1000000;
  overflow: hidden;
}
.gold-particle {
  position: absolute;
  bottom: -10px; left: 0;
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: screen;
  will-change: transform, opacity;
  animation: artDustFloatUp linear infinite;
  filter: blur(0.4px);
}
.gold-particle.s {
  background: radial-gradient(circle, #FFD089 0%, rgba(255,208,137,0.6) 40%, transparent 70%);
  box-shadow: 0 0 4px rgba(255,208,137,0.5);
}
.gold-particle.m {
  background: radial-gradient(circle, #FFE0A0 0%, rgba(255,186,90,0.7) 35%, transparent 70%);
  box-shadow: 0 0 6px rgba(255,208,137,0.7);
}
.gold-particle.l {
  background: radial-gradient(circle, #FFEAB8 0%, #FFB37A 30%, rgba(255,122,26,0.6) 55%, transparent 80%);
  box-shadow: 0 0 8px rgba(255,208,137,0.9), 0 0 14px rgba(255,122,26,0.4);
}
@keyframes artDustFloatUp {
  0%   { transform: translate(0, 0) scale(0.6); opacity: 0; }
  8%   { opacity: 0.9; }
  50%  { transform: translate(calc(var(--drift, 0px) * 0.5), -50vh) scale(1); opacity: 1; }
  92%  { opacity: 0.8; }
  100% { transform: translate(var(--drift, 0px), -110vh) scale(0.7); opacity: 0; }
}
@keyframes artDustTwinkle {
  0%, 100% { filter: blur(0.4px) brightness(1); }
  50%      { filter: blur(0.6px) brightness(1.6); }
}
.gold-particle.l { animation: artDustFloatUp linear infinite, artDustTwinkle 2.4s ease-in-out infinite; }

/* === BASE === */
.ardaris-article {
  --orange: #FF7A1A;
  --red: #E63946;
  --orange-warm: #FFB37A;
  --gradient: linear-gradient(135deg, #FF7A1A 0%, #E63946 100%);
  --gradient-hover: linear-gradient(135deg, #FF8A2A 0%, #F04956 100%);
  --gradient-soft: linear-gradient(135deg, rgba(255,122,26,0.20), rgba(230,57,70,0.20));
  --bg: #0C0D11;
  --bg-2: #14151A;
  --bg-glass: rgba(20,21,26,0.55);
  --text: #F5F2EE;
  --text-2: #B8B2A8;
  --text-3: #6B6660;
  --border-2: rgba(255,255,255,0.08);
  --border-3: rgba(255,255,255,0.16);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  position: relative;
  width: 100%;
  min-height: 100vh;
  background: var(--bg);
  font-family: 'Montserrat', sans-serif;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow: hidden;
  z-index: 1;
}

/* === READING PROGRESS BAR === */
.reading-progress {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 3px;
  background: rgba(255,255,255,0.05);
  z-index: 999998;
  pointer-events: none;
}
.reading-progress .bar {
  height: 100%;
  width: 0;
  background: var(--gradient);
  box-shadow: 0 0 12px rgba(255,122,26,0.55);
  transition: width 80ms linear;
}

/* === BG layers === */
.bg-grain {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  opacity: 0.05; mix-blend-mode: overlay;
}
.bg-glow-top {
  position: absolute;
  top: -200px; left: 50%;
  width: 1100px; height: 600px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(255,122,26,0.18) 0%, rgba(230,57,70,0.10) 40%, transparent 70%);
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}
.ardaris-article > * { position: relative; z-index: 2; }

/* === STATUS BAR === */
.art-statusbar {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 10px 32px 6px;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.16em;
  color: var(--text-3); text-transform: uppercase;
  white-space: nowrap;
  position: sticky; top: 0; z-index: 100;
  background: rgba(8,9,12,0.85);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid var(--border-2);
}
.art-statusbar .left, .art-statusbar .center, .art-statusbar .right { display: inline-flex; align-items: center; gap: 14px; }
.art-statusbar .left  { justify-self: start; }
.art-statusbar .center { justify-self: center; }
.art-statusbar .right { justify-self: end; }
.art-statusbar .availability { display: inline-flex; align-items: center; gap: 8px; color: var(--orange); }
.art-statusbar .availability .dot {
  width: 6px; height: 6px;
  background: var(--orange);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--orange), 0 0 18px rgba(255,122,26,0.5);
  animation: artPulseDot 1.8s infinite;
}
@keyframes artPulseDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(1.35); }
}
.art-statusbar .sep { opacity: 0.25; }
.art-statusbar em { font-style: normal; color: var(--text); font-weight: 600; }

/* === TOPBAR === */
.art-topbar {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 14px 32px;
  position: sticky; top: 34px; z-index: 99;
  background: rgba(8,9,12,0.78);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.art-topbar > .brand    { justify-self: start; }
.art-topbar > .nav-pill { justify-self: center; }
.art-topbar > .cta-top  { justify-self: end; }

.brand {
  display: inline-flex; align-items: center;
  text-decoration: none;
  transition: transform 800ms var(--ease);
}
.brand:hover { transform: rotate(360deg); }
.brand-logo {
  height: clamp(50px, 7vh, 76px); width: auto;
  display: block;
  filter: drop-shadow(0 8px 18px rgba(0,0,0,0.50));
}

.nav-pill {
  display: inline-flex; align-items: center;
  padding: 5px;
  background: rgba(20,21,26,0.65);
  backdrop-filter: blur(28px) saturate(140%);
  -webkit-backdrop-filter: blur(28px) saturate(140%);
  border: 1px solid var(--border-2);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.30), inset 0 1px 0 rgba(255,255,255,0.05);
  position: relative;
}
.nav-pill a {
  position: relative; z-index: 2;
  display: inline-block;
  padding: 9px 18px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text-2);
  text-decoration: none;
  transition: color 320ms var(--ease);
  letter-spacing: -0.005em;
  white-space: nowrap;
}
.nav-pill a:hover { color: var(--text); }
.nav-pill a.active { color: var(--text); font-weight: 600; }
.nav-indicator {
  position: absolute; top: 5px; bottom: 5px;
  background: var(--gradient);
  border-radius: 999px;
  z-index: 1;
  transition: left 420ms var(--ease-out), width 420ms var(--ease-out);
  box-shadow: 0 6px 16px rgba(255,122,26,0.42);
  opacity: 0;
}
.nav-indicator.ready { opacity: 1; }

.cta-top {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--gradient);
  color: #fff;
  font-weight: 600; font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  padding: 11px 20px;
  border-radius: 100px;
  text-decoration: none;
  border: none; white-space: nowrap;
  transition: transform .3s, box-shadow .3s;
  box-shadow: 0 10px 28px rgba(255,122,26,0.28);
}
.cta-top:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(255,122,26,0.40);
  background: var(--gradient-hover);
}
.cta-top .arrow { display: inline-flex; }

/* === BREADCRUMB === */
.art-crumb {
  width: 100%;
  padding: 28px clamp(24px, 4vw, 56px) 0;
  font-size: 11px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text-3);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.art-crumb a { color: var(--text-2); text-decoration: none; transition: color 320ms var(--ease); }
.art-crumb a:hover { color: var(--orange); }
.art-crumb .sep { opacity: 0.4; }
.art-crumb .current { color: var(--text); }

/* === HERO === */
.art-hero {
  width: 100%;
  padding: clamp(40px, 6vw, 80px) clamp(24px, 4vw, 56px) clamp(50px, 7vw, 90px);
  max-width: 1240px;
  margin: 0 auto;
  position: relative;
}
.art-hero-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 16px 6px 12px;
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--text-2);
  background: rgba(20,21,26,0.55);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border-2);
  border-radius: 999px;
  margin-bottom: 24px;
}
.art-hero-eyebrow .cat-dot {
  width: 6px; height: 6px;
  background: var(--gradient);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,122,26,0.6);
}
.art-hero-eyebrow .read { color: var(--text-3); }
.art-hero-eyebrow em { font-style: normal; color: var(--orange); font-weight: 600; }

.art-hero-title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(34px, 5vw, 64px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--text);
  margin-bottom: 22px;
  max-width: 980px;
}
.art-hero-title .grad {
  background: var(--gradient);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

.art-hero-meta {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--text-3);
  letter-spacing: 0.05em;
  margin-bottom: 36px;
}
.art-hero-meta .author {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--text-2);
}
.art-hero-meta .author .avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--gradient);
  display: inline-grid; place-items: center;
  font-size: 10px; font-weight: 700; color: #fff;
  box-shadow: 0 4px 12px rgba(255,122,26,0.4);
}
.art-hero-meta .dot { opacity: 0.5; }
.art-hero-meta time { color: var(--text-2); }
.art-hero-meta .share {
  margin-left: auto;
  display: inline-flex; gap: 8px;
}
.art-hero-meta .share button {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--border-3);
  background: rgba(20,21,26,0.45);
  color: var(--text-2);
  cursor: pointer;
  display: inline-grid; place-items: center;
  transition: color 320ms var(--ease), background 320ms var(--ease), transform 320ms var(--ease), border-color 320ms var(--ease);
}
.art-hero-meta .share button:hover {
  color: #fff;
  background: var(--gradient);
  border-color: transparent;
  transform: translateY(-2px) scale(1.06);
}

/* Featured image hero */
.art-hero-img {
  width: 100%;
  aspect-ratio: 16/8.5;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 30px 80px rgba(0,0,0,0.55), 0 8px 20px rgba(255,122,26,0.10);
  isolation: isolate;
}
.art-hero-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  filter: brightness(0.85) saturate(1.05);
}
.art-hero-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8,9,12,0) 60%, rgba(8,9,12,0.45) 100%);
  pointer-events: none;
}

/* === ARTICLE BODY (2-col with TOC) === */
.art-body-wrap {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(40px, 5vw, 80px) clamp(24px, 4vw, 56px);
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}

/* TOC sticky */
.art-toc {
  position: sticky;
  top: 120px;
  align-self: start;
  font-family: 'Montserrat', sans-serif;
}
.art-toc-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-2);
}
.art-toc-list {
  list-style: none;
  display: flex; flex-direction: column;
  gap: 2px;
  max-height: calc(100vh - 200px);
  overflow-y: auto;
  padding-right: 6px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,122,26,0.40) transparent;
}
.art-toc-list::-webkit-scrollbar { width: 4px; }
.art-toc-list::-webkit-scrollbar-thumb { background: rgba(255,122,26,0.40); border-radius: 4px; }
.art-toc-list a {
  display: block;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-3);
  text-decoration: none;
  line-height: 1.45;
  border-left: 2px solid transparent;
  transition: color 320ms var(--ease), border-color 320ms var(--ease), background 320ms var(--ease);
}
.art-toc-list a:hover {
  color: var(--text-2);
  background: rgba(255,255,255,0.03);
}
.art-toc-list a.active {
  color: var(--orange);
  border-left-color: var(--orange);
  background: rgba(255,122,26,0.08);
}

/* Body content column */
.art-body {
  min-width: 0;
  max-width: 760px;
  font-family: 'Montserrat', sans-serif;
  color: var(--text);
}

.art-lead {
  font-size: clamp(17px, 1.6vw, 21px);
  font-weight: 400;
  line-height: 1.55;
  color: var(--text);
  margin-bottom: 36px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--border-2);
}
.art-lead strong {
  background: var(--gradient);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  font-weight: 700;
}

.art-h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.2;
  color: var(--text);
  margin: 48px 0 18px;
  scroll-margin-top: 120px;
  position: relative;
}
.art-h2 .art-h2-num {
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: 14px;
  transform: rotate(45deg) translateY(-3px);
  background: var(--gradient);
  box-shadow: 0 0 12px rgba(255,122,26,0.5);
}
.art-h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(17px, 1.5vw, 20px);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--text);
  margin: 30px 0 12px;
  scroll-margin-top: 120px;
}

.art-p {
  font-size: 15.5px;
  line-height: 1.72;
  color: var(--text-2);
  margin-bottom: 18px;
  font-weight: 400;
}
.art-p strong { color: var(--text); font-weight: 600; }
.art-p em { font-style: italic; color: var(--text); }
.art-p code, .art-h2 code, .art-h3 code, .art-list code {
  background: rgba(255,122,26,0.10);
  color: var(--orange-warm);
  padding: 2px 7px;
  border-radius: 5px;
  font-family: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
  font-size: 0.88em;
  font-weight: 500;
  border: 1px solid rgba(255,122,26,0.20);
}

.art-list {
  margin: 14px 0 22px;
  padding-left: 0;
  list-style: none;
  display: flex; flex-direction: column;
  gap: 12px;
}
.art-list li {
  position: relative;
  padding-left: 28px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-2);
}
.art-list li strong { color: var(--text); font-weight: 600; }
.art-list.unordered li::before {
  content: '';
  position: absolute;
  left: 0; top: 0.75em;
  width: 14px; height: 1px;
  background: var(--gradient);
}
.art-list.ordered { counter-reset: art-li; }
.art-list.ordered li { counter-increment: art-li; padding-left: 38px; }
.art-list.ordered li::before {
  content: counter(art-li, decimal-leading-zero);
  position: absolute;
  left: 0; top: 0;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: -0.02em;
  background: var(--gradient);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* QUOTE */
.art-quote {
  position: relative;
  margin: 36px 0;
  padding: 32px 32px 26px;
  background:
    linear-gradient(135deg, rgba(255,122,26,0.06), rgba(230,57,70,0.04)),
    rgba(20,21,26,0.55);
  border: 1px solid rgba(255,122,26,0.20);
  border-radius: 18px;
  overflow: hidden;
}
.art-quote::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 3px;
  background: var(--gradient);
}
.art-quote-glyph {
  position: absolute;
  top: 18px; right: 22px;
  width: 56px; height: 40px;
  opacity: 0.6;
}
.art-quote blockquote {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(16px, 1.5vw, 20px);
  font-style: italic;
  font-weight: 400;
  line-height: 1.5;
  color: var(--text);
  letter-spacing: -0.01em;
  margin-bottom: 16px;
  position: relative;
  z-index: 2;
}
.art-quote-cite {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orange);
}

/* CALLOUT */
.art-callout {
  margin: 28px 0;
  padding: 22px 26px;
  border-radius: 16px;
  background: rgba(20,21,26,0.55);
  border: 1px solid var(--border-2);
  position: relative;
}
.art-callout--orange { border-color: rgba(255,122,26,0.30); background: linear-gradient(135deg, rgba(255,122,26,0.05), rgba(255,122,26,0.02)), rgba(20,21,26,0.55); }
.art-callout--red    { border-color: rgba(230,57,70,0.30);  background: linear-gradient(135deg, rgba(230,57,70,0.05), rgba(230,57,70,0.02)),   rgba(20,21,26,0.55); }
.art-callout--neutral { }
.art-callout-head {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 8px;
}
.art-callout-mark {
  display: inline-grid; place-items: center;
  width: 22px; height: 22px;
  background: var(--gradient);
  color: #fff;
  border-radius: 50%;
  font-size: 9px;
  box-shadow: 0 4px 14px rgba(255,122,26,0.40);
}
.art-callout-head strong {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text);
}
.art-callout-body {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--text-2);
}
.art-callout-body strong { color: var(--text); font-weight: 600; }

/* STATS */
.art-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 36px 0;
}
.art-stat {
  padding: 22px 18px;
  background: rgba(20,21,26,0.55);
  border: 1px solid var(--border-2);
  border-radius: 16px;
  transition: border-color 320ms var(--ease), transform 320ms var(--ease), box-shadow 320ms var(--ease);
}
.art-stat:hover {
  border-color: rgba(255,122,26,0.40);
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(255,122,26,0.18);
}
.art-stat-v {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(22px, 2.6vw, 32px);
  letter-spacing: -0.025em;
  background: var(--gradient);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  line-height: 1;
  margin-bottom: 8px;
}
.art-stat-l {
  display: block;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text-3);
  line-height: 1.4;
}

/* TABLE */
.art-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin: 28px 0;
  border-radius: 16px;
  border: 1px solid var(--border-2);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,122,26,0.40) transparent;
}
.art-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'Montserrat', sans-serif;
  font-size: 13.5px;
  color: var(--text);
  background: rgba(20,21,26,0.45);
  min-width: 480px;
}
.art-table thead {
  background: linear-gradient(180deg, rgba(255,122,26,0.10), rgba(230,57,70,0.04));
}
.art-table th, .art-table td {
  text-align: left;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-2);
}
.art-table th[scope="col"] {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--orange);
}
.art-table th[scope="row"] {
  font-weight: 600;
  color: var(--text);
}
.art-table td {
  color: var(--text-2);
  font-weight: 400;
}
.art-table tbody tr:hover {
  background: rgba(255,122,26,0.04);
}
.art-table tbody tr:last-child th, .art-table tbody tr:last-child td { border-bottom: 0; }

/* IMAGE / FIGURE */
.art-figure {
  margin: 36px 0;
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 24px 60px rgba(0,0,0,0.40);
  border: 1px solid var(--border-2);
}
.art-figure img {
  width: 100%; height: auto;
  display: block;
  filter: brightness(0.85) saturate(1.05);
  transition: transform 1000ms var(--ease);
}
.art-figure:hover img { transform: scale(1.02); }
.art-figure figcaption {
  font-size: 12px;
  font-style: italic;
  color: var(--text-3);
  padding: 14px 20px;
  border-top: 1px solid var(--border-2);
  background: rgba(20,21,26,0.65);
  letter-spacing: 0.01em;
  line-height: 1.5;
}

/* CTA INLINE */
.art-cta {
  margin: 44px 0;
  padding: 28px 32px;
  border-radius: 22px;
  background:
    radial-gradient(ellipse at top right, rgba(255,255,255,0.10) 0%, transparent 60%),
    var(--gradient);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
  box-shadow: 0 24px 60px rgba(255,122,26,0.30);
  isolation: isolate;
  overflow: hidden;
  position: relative;
}
.art-cta::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  opacity: 0.10;
  mix-blend-mode: overlay;
  pointer-events: none;
  z-index: 0;
}
.art-cta > * { position: relative; z-index: 1; }
.art-cta h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: #fff;
  line-height: 1.25;
  margin-bottom: 6px;
}
.art-cta p {
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(255,255,255,0.92);
}
.art-cta-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: #0C0D11;
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 14px 22px;
  border-radius: 100px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 320ms var(--ease), background 320ms var(--ease);
}
.art-cta-btn:hover {
  background: #1A1C24;
  transform: translateX(3px);
}
.art-cta-btn .arrow { display: inline-flex; }

/* === END-OF-ARTICLE CARDS BLOCK === */
.art-end {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(40px, 5vw, 70px) clamp(24px, 4vw, 56px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.art-author-card, .art-share-card {
  padding: 32px;
  background: rgba(20,21,26,0.55);
  border: 1px solid var(--border-2);
  border-radius: 22px;
  transition: border-color 320ms var(--ease);
}
.art-author-card:hover, .art-share-card:hover { border-color: rgba(255,122,26,0.30); }
.art-author-card h3, .art-share-card h3 {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 16px;
}
.art-author-card .author-row {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 18px;
}
.art-author-card .avatar-lg {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--gradient);
  display: inline-grid; place-items: center;
  color: #fff;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.02em;
  flex-shrink: 0;
  box-shadow: 0 8px 24px rgba(255,122,26,0.40);
}
.art-author-card .author-name {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--text);
  margin-bottom: 4px;
}
.art-author-card .author-role {
  font-size: 12px;
  color: var(--text-3);
  letter-spacing: 0.05em;
}
.art-author-card p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text-2);
}
.art-share-card .share-actions {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.art-share-card .share-actions button {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 18px;
  border-radius: 100px;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--text-2);
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border-3);
  cursor: pointer;
  transition: color 320ms var(--ease), background 320ms var(--ease), border-color 320ms var(--ease), transform 320ms var(--ease);
}
.art-share-card .share-actions button:hover {
  color: #fff;
  background: var(--gradient);
  border-color: transparent;
  transform: translateY(-2px);
}

/* === RELATED POSTS === */
.art-related {
  width: 100%;
  padding: clamp(60px, 8vw, 120px) clamp(24px, 4vw, 56px);
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
}
.art-related-inner { max-width: 1240px; margin: 0 auto; }
.art-related-head {
  display: flex; align-items: end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: clamp(28px, 4vw, 50px);
}
.art-related-title {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(28px, 3.5vw, 48px);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 0.95;
  text-transform: uppercase;
  color: var(--text);
}
.art-related-title .accent { color: var(--orange); }
.art-related-all {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--orange);
  text-decoration: none;
  padding: 11px 18px;
  border-radius: 100px;
  border: 1px solid rgba(255,122,26,0.30);
  transition: background 320ms var(--ease), color 320ms var(--ease), border-color 320ms var(--ease);
}
.art-related-all:hover {
  background: var(--gradient);
  border-color: transparent;
  color: #fff;
}
.art-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.art-related-card {
  display: flex; flex-direction: column;
  gap: 14px;
  text-decoration: none;
  color: inherit;
  transition: transform 420ms var(--ease);
}
.art-related-card:hover { transform: translateY(-4px); }
.art-related-card .img-wrap {
  width: 100%;
  aspect-ratio: 16/10;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border-2);
  box-shadow: 0 14px 36px rgba(0,0,0,0.40);
  isolation: isolate;
}
.art-related-card .img-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  filter: brightness(0.78) saturate(1);
  transition: transform 1000ms var(--ease), filter 600ms var(--ease);
}
.art-related-card:hover .img-wrap img {
  transform: scale(1.06);
  filter: brightness(0.95) saturate(1.1);
}
.art-related-card .cat-pill {
  display: inline-flex; align-items: center;
  align-self: flex-start;
  padding: 5px 11px;
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: #fff;
  background: var(--gradient);
  border-radius: 999px;
}
.art-related-card h4 {
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -0.012em;
  color: var(--text);
  transition: color 320ms var(--ease);
}
.art-related-card:hover h4 { color: var(--orange-warm); }
.art-related-card .meta-mini {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px;
  color: var(--text-3);
  letter-spacing: 0.05em;
}
.art-related-card .meta-mini .dot { width: 3px; height: 3px; background: var(--text-3); border-radius: 50%; opacity: 0.6; }

/* === NEWSLETTER === */
.art-newsletter {
  width: 100%;
  padding: clamp(70px, 9vw, 120px) clamp(24px, 4vw, 56px);
  background: var(--bg);
}
.art-newsletter-inner {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  border-radius: 32px;
  overflow: hidden;
  background:
    radial-gradient(ellipse at top right, rgba(255,255,255,0.10) 0%, transparent 60%),
    var(--gradient);
  padding: clamp(45px, 6vw, 85px) clamp(28px, 5vw, 70px);
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 40px;
  align-items: center;
  box-shadow: 0 30px 80px rgba(255,122,26,0.30);
  isolation: isolate;
}
.art-newsletter-inner::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  opacity: 0.10;
  mix-blend-mode: overlay;
  pointer-events: none;
  z-index: 0;
}
.art-newsletter-inner > * { position: relative; z-index: 1; }
.art-newsletter-text h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(30px, 4vw, 56px);
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.art-newsletter-text p {
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255,255,255,0.94);
  max-width: 460px;
}
.art-newsletter-form {
  display: flex; flex-direction: column; gap: 12px;
}
.art-newsletter-form .field {
  display: flex; align-items: center;
  background: rgba(0,0,0,0.30);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 100px;
  padding: 6px 6px 6px 22px;
  transition: border-color 320ms var(--ease), background 320ms var(--ease);
}
.art-newsletter-form .field:focus-within {
  border-color: rgba(255,255,255,0.55);
  background: rgba(0,0,0,0.45);
}
.art-newsletter-form input {
  flex: 1;
  background: transparent;
  border: none; outline: none;
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  padding: 13px 6px;
  min-width: 0;
}
.art-newsletter-form input::placeholder { color: rgba(255,255,255,0.55); }
.art-newsletter-form button {
  flex-shrink: 0;
  background: #0C0D11;
  color: #fff;
  border: none;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 13px 22px;
  border-radius: 100px;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  transition: transform 320ms var(--ease), background 320ms var(--ease);
}
.art-newsletter-form button:hover {
  background: #1B1D24;
  transform: translateX(2px);
}
.art-newsletter-fineprint {
  font-size: 11px;
  color: rgba(255,255,255,0.78);
}

/* === MINI FOOTER === */
.art-footer {
  width: 100%;
  padding: 40px clamp(24px, 4vw, 56px);
  background: #07080B;
  border-top: 1px solid var(--border-2);
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px;
  font-size: 11.5px;
  color: var(--text-3);
}
.art-footer nav { display: inline-flex; gap: 22px; }
.art-footer a {
  color: var(--text-2);
  text-decoration: none;
  transition: color 320ms var(--ease);
}
.art-footer a:hover { color: var(--orange); }

/* === BACK-TO-TOP === */
.art-totop {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 999990;
  width: 48px; height: 48px;
  border-radius: 50%;
  border: none;
  background: var(--gradient);
  color: #fff;
  cursor: pointer;
  display: inline-grid; place-items: center;
  box-shadow: 0 14px 36px rgba(255,122,26,0.45);
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: opacity 320ms var(--ease), transform 320ms var(--ease-spring), box-shadow 320ms var(--ease);
}
.art-totop.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.art-totop:hover {
  box-shadow: 0 18px 50px rgba(255,122,26,0.65);
  transform: translateY(-3px);
}

/* === TOAST === */
.art-toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: rgba(20,21,26,0.95);
  border: 1px solid rgba(255,122,26,0.40);
  color: var(--text);
  padding: 14px 22px;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 600;
  z-index: 999999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms var(--ease), transform 320ms var(--ease-spring);
  box-shadow: 0 14px 40px rgba(0,0,0,0.50);
}
.art-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}

/* === RESPONSIVE === */
@media (max-width: 1100px) {
  .art-body-wrap { grid-template-columns: 1fr; gap: 24px; }
  .art-toc {
    position: relative;
    top: 0;
    max-width: 100%;
    background: rgba(20,21,26,0.55);
    border: 1px solid var(--border-2);
    border-radius: 16px;
    padding: 16px 20px;
  }
  .art-toc-list { max-height: 240px; }
  .art-end { grid-template-columns: 1fr; }
  .art-related-grid { grid-template-columns: 1fr 1fr; }
  .art-stats { grid-template-columns: 1fr 1fr; }
  .art-newsletter-inner { grid-template-columns: 1fr; gap: 28px; padding: 40px 28px; }
  .art-cta { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .art-topbar { grid-template-columns: 1fr auto; padding: 12px 16px; }
  .art-topbar > .nav-pill { display: none; }
  .art-statusbar { padding: 8px 16px 5px; font-size: 9px; }
  .art-statusbar .center { display: none; }
  .art-crumb { padding: 20px 16px 0; font-size: 10px; }
  .art-hero { padding: 24px 16px 40px; }
  .art-body-wrap { padding: 24px 16px; }
  .art-end { padding: 28px 16px; }
  .art-related { padding: 50px 16px; }
  .art-related-grid { grid-template-columns: 1fr; }
  .art-newsletter { padding: 50px 16px; }
  .art-stats { grid-template-columns: 1fr 1fr; }
  .art-table { font-size: 12.5px; }
  .art-table th, .art-table td { padding: 12px 14px; }
  .art-footer { flex-direction: column; align-items: flex-start; }
  .art-totop { bottom: 18px; right: 18px; width: 44px; height: 44px; }
}</style>

<div class="ardaris-article" itemscope itemtype="https://schema.org/Article" data-words="596">

  <div class="bg-grain" aria-hidden="true"></div>
  <div class="bg-glow-top" aria-hidden="true"></div>

  <!-- Defs SVG (gradient for quote glyph) -->
  <svg width="0" height="0" style="position:absolute" aria-hidden="true">
    <defs>
      <linearGradient id="art-quote-grad" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0%" stop-color="#FF7A1A"/>
        <stop offset="100%" stop-color="#E63946"/>
      </linearGradient>
    </defs>
  </svg>

  <!-- STATUS BAR -->
  <header class="art-statusbar">
    <div class="left">
      <span class="availability"><span class="dot"></span> Disponible — réponse &lt; 24h</span>
      <span class="sep">·</span>
      <span class="today">Aujourd&#8217;hui <em>—</em></span>
    </div>
    <div class="center">
      <span><em>UTC</em> · <span class="clock"><em>00:00:00</em></span></span>
    </div>
    <div class="right">
      <span>En cours <em>Waanao v2.1</em></span>
    </div>
  </header>

  <!-- TOPBAR -->
  <div class="art-topbar">
    <a class="brand" href="/" aria-label="Retour à l'accueil Ardaris">
      <img class="brand-logo lws-optimize-lazyload"  alt="Ardaris Créative" width="120" height="120"/ data-src="https://ardaris.fr/wp-content/uploads/2026/05/logo-ardaris-sans-fond.png">
    </a>
    <nav class="nav-pill" aria-label="Navigation principale">
      <span class="nav-indicator" aria-hidden="true"></span>
      <a href="/">Accueil</a>
      <a href="/services">Services</a>
      <a href="/portfolio">Portfolio</a>
      <a href="/blog/" class="active">Blog</a>
      <a href="/a-propos">À propos</a>
      <a href="/contact/">Contact</a>
    </nav>
    <a href="https://wa.me/237688699939" target="_blank" rel="noopener" class="cta-top">
      15 min, on en parle <span class="arrow"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" width="12" height="12"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg></span>
    </a>
  </div>

  <!-- BREADCRUMB -->
  <nav class="art-crumb" aria-label="Fil d'Ariane">
    <a href="/">Accueil</a>
    <span class="sep">/</span>
    <a href="/blog/">Blog</a>
    <span class="sep">/</span>
    <a href="/category/ia-agents/">IA &amp; Agents</a>
    <span class="sep">/</span>
    <span class="current">Article</span>
  </nav>

  <!-- HERO -->
  <header class="art-hero">
    <span class="art-hero-eyebrow">
      <span class="cat-dot" aria-hidden="true"></span>
      <a href="/category/ia-agents/" style="color:inherit;text-decoration:none">IA &amp; Agents</a>
      <span class="sep">·</span>
      <span class="read"><em>10</em> min de lecture</span>
    </span>
    <h1 class="art-hero-title" itemprop="headline">RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026</h1>
    <div class="art-hero-meta">
      <span class="author">
        <span class="avatar" aria-hidden="true">AC</span>
        <span><strong itemprop="author">Ardaris Créative</strong></span>
      </span>
      <span class="dot">·</span>
      <time datetime="2026-05-15" itemprop="datePublished">15 mai 2026</time>
      <span class="dot">·</span>
      <span>10 min</span>
      <div class="share" aria-label="Partager l'article">
        <button type="button" data-share="share-x" aria-label="Partager sur X"><svg viewBox="0 0 24 24" fill="currentColor" width="13" height="13"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></button>
        <button type="button" data-share="share-linkedin" aria-label="Partager sur LinkedIn"><svg viewBox="0 0 24 24" fill="currentColor" width="13" height="13"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.45zM5.34 7.43c-1.14 0-2.06-.93-2.06-2.06s.93-2.06 2.06-2.06 2.06.93 2.06 2.06-.93 2.06-2.06 2.06zM7.12 20.45H3.56V9h3.56zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z"/></svg></button>
        <button type="button" data-share="share-copy" aria-label="Copier le lien"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="13" height="13"><path d="M10 13a5 5 0 007 0l4-4a5 5 0 00-7-7l-1 1"/><path d="M14 11a5 5 0 00-7 0l-4 4a5 5 0 007 7l1-1"/></svg></button>
      </div>
    </div>
    <div class="art-hero-img">
      <img  alt="RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026" itemprop="image" loading="eager" fetchpriority="high"/ class="lws-optimize-lazyload" data-src="https://ardaris.fr/wp-content/uploads/2026/05/card-saas.webp">
    </div>
  </header>

  <!-- BODY 2-col -->
  <div class="art-body-wrap">
    <aside class="art-toc" aria-label="Sommaire">
      <div class="art-toc-title">Sommaire</div>
      <ol class="art-toc-list">
        <li><a href="#rag-pour-des-donnees-qui-bougent" data-toc-target="rag-pour-des-donnees-qui-bougent"><span class="toc-num">01</span> RAG : pour des données qui bougent</a></li><li><a href="#fine-tuning-pour-un-style-ou-un-format-proprietaire" data-toc-target="fine-tuning-pour-un-style-ou-un-format-proprietaire"><span class="toc-num">02</span> Fine-tuning : pour un style ou un format propriétaire</a></li><li><a href="#agents-pour-orchestrer-plusieurs-actions" data-toc-target="agents-pour-orchestrer-plusieurs-actions"><span class="toc-num">03</span> Agents : pour orchestrer plusieurs actions</a></li><li><a href="#comparatif-d-usage" data-toc-target="comparatif-d-usage"><span class="toc-num">04</span> Comparatif d&#8217;usage</a></li><li><a href="#notre-stack-ia-2026-par-defaut" data-toc-target="notre-stack-ia-2026-par-defaut"><span class="toc-num">05</span> Notre stack IA 2026 par défaut</a></li><li><a href="#quand-combiner-les-trois" data-toc-target="quand-combiner-les-trois"><span class="toc-num">06</span> Quand combiner les trois</a></li>
      </ol>
    </aside>
    <article class="art-body" itemprop="articleBody">
      <p class="art-lead">En 18 mois, on a déployé l&#8217;IA dans 12 produits clients. La majorité voulait au départ &#8220;un GPT-4 fine-tuné sur notre data&#8221;. À la sortie, on a fine-tuné <strong>2 fois</strong>. Le reste est passé en RAG, ou en agents. Voilà la grille qu&#8217;on applique pour ne pas se planter d&#8217;archi IA.</p>
      <h2 id="rag-pour-des-donnees-qui-bougent" class="art-h2"><span class="art-h2-num"></span>RAG : pour des données qui bougent</h2>
<p class="art-p"><strong>Retrieval-Augmented Generation</strong> = on indexe vos données dans une base vectorielle (Pinecone, Qdrant, pgvector), à chaque question utilisateur on cherche les chunks pertinents, et on les injecte dans le prompt du LLM.</p>
<p class="art-p">Avantages : data toujours à jour (réindexation en temps réel), zéro entraînement, citations sources possibles, coût marginal faible. Idéal pour : helpdesk produit, search interne entreprise, copilote sur documentation, Q&#038;A sur catalogue.</p>
<p class="art-p">Limite : le LLM &#8220;voit&#8221; vos données mais ne <em>devient</em> pas votre data. Le style des réponses reste celui du modèle de base.</p>
<h2 id="fine-tuning-pour-un-style-ou-un-format-proprietaire" class="art-h2"><span class="art-h2-num"></span>Fine-tuning : pour un style ou un format propriétaire</h2>
<p class="art-p">Fine-tuning = on prend un modèle de base, on l&#8217;entraîne sur vos exemples pour qu&#8217;il <strong>adopte votre ton, votre structure de sortie, votre jargon</strong>.</p>
<p class="art-p">Avantages : sortie structurée fiable, ton de marque cohérent, réduction du prompt (donc latence + coût). Idéal pour : génération de copy à votre style, classification ultra-spécifique, sortie JSON avec un schéma propriétaire complexe.</p>
<p class="art-p"><strong>Limites majeures :</strong> il faut 500 à 5 000 exemples annotés, ça coûte du temps humain (le vrai coût caché), et les données de base sont figées au moment du fine-tuning. Et l&#8217;évaluation est dure : comment mesure-t-on &#8220;c&#8217;est mieux écrit qu&#8217;avant&#8221; ?</p>
<aside class="art-callout art-callout--red">
        <header class="art-callout-head">
          <span class="art-callout-mark" aria-hidden="true">◆</span>
          <strong>Le piège du fine-tuning prématuré</strong>
        </header>
        <div class="art-callout-body">Avant de fine-tuner, demande-toi : &#8220;Est-ce qu&#8217;un meilleur prompt + quelques few-shots ne ferait pas le job ?&#8221; 80% du temps : oui. Les 20% restants justifient le fine-tuning.</div>
      </aside>
<h2 id="agents-pour-orchestrer-plusieurs-actions" class="art-h2"><span class="art-h2-num"></span>Agents : pour orchestrer plusieurs actions</h2>
<p class="art-p">Un agent = un LLM qui peut <strong>décider d&#8217;appeler des outils</strong> (function calling), enchaîner plusieurs étapes, et auto-corriger ses sorties. Au lieu de &#8220;répondre&#8221;, il &#8220;fait&#8221;.</p>
<p class="art-p">Exemples concrets de nos projets : un agent de research qui fait 6 recherches Tavily, lit 20 pages web, rédige une note de synthèse avec sources. Un agent de support qui lit un ticket, requête la base produit, propose une réponse, escalade si besoin.</p>
<p class="art-p"><strong>Limites :</strong> latence (3-12 secondes par cycle), coût (10-50× un appel LLM simple), et la fragilité — un agent qui se perd en boucle coûte cher et frustre l&#8217;utilisateur.</p>
<figure class="art-figure">
        <img  alt="RAG, fine-tuning, agents : trois architectures qui répondent à des problèmes différents — pas des alternatives concurrentes." loading="lazy"/ class="lws-optimize-lazyload" data-src="https://ardaris.fr/wp-content/uploads/2026/05/card-saas.webp">
        <figcaption>RAG, fine-tuning, agents : trois architectures qui répondent à des problèmes différents — pas des alternatives concurrentes.</figcaption>
      </figure>
<h2 id="comparatif-d-usage" class="art-h2"><span class="art-h2-num"></span>Comparatif d&#8217;usage</h2>
<div class="art-table-wrap"><table class="art-table">
        <thead><tr><th scope="col">Use case</th><th scope="col">Archi recommandée</th><th scope="col">Latence</th><th scope="col">Coût marginal</th></tr></thead>
        <tbody><tr><th scope="row">Helpdesk sur ta doc</th><td>RAG</td><td>1-2 s</td><td>Faible</td></tr><tr><th scope="row">Génération copy au style brand</th><td>Fine-tuning + prompts</td><td>0,5-1 s</td><td>Très faible</td></tr><tr><th scope="row">Classifieur de tickets</th><td>Fine-tuning</td><td><300 ms</td><td>Très faible</td></tr><tr><th scope="row">Assistant qui exécute des actions</th><td>Agent</td><td>3-10 s</td><td>Élevé</td></tr><tr><th scope="row">Q&#038;A sur catalogue produit</th><td>RAG</td><td>1-2 s</td><td>Faible</td></tr><tr><th scope="row">Génération de rapports structurés</th><td>Fine-tuning + RAG</td><td>2-4 s</td><td>Modéré</td></tr><tr><th scope="row">Workflow multi-étapes (analyse + email)</th><td>Agent</td><td>5-15 s</td><td>Élevé</td></tr></tbody>
      </table></div>
<div class="art-stats">
        <div class="art-stat">
          <span class="art-stat-v">12</span>
          <span class="art-stat-l">Produits clients avec IA en prod</span>
        </div>
      
        <div class="art-stat">
          <span class="art-stat-v">8/12</span>
          <span class="art-stat-l">En RAG (la majorité)</span>
        </div>
      
        <div class="art-stat">
          <span class="art-stat-v">2/12</span>
          <span class="art-stat-l">En fine-tuning</span>
        </div>
      
        <div class="art-stat">
          <span class="art-stat-v">4/12</span>
          <span class="art-stat-l">En agent (souvent + RAG)</span>
        </div>
      </div>
<h2 id="notre-stack-ia-2026-par-defaut" class="art-h2"><span class="art-h2-num"></span>Notre stack IA 2026 par défaut</h2>
<ul class="art-list unordered"><li><strong>LLM :</strong> Claude Opus 4.7 / Sonnet 4.6 (Anthropic), GPT-5 (fallback), Llama 3.3 70B (souveraineté)</li><li><strong>Embeddings :</strong> Voyage AI ou OpenAI text-embedding-3-large</li><li><strong>Vector DB :</strong> pgvector (si Postgres déjà en place), Qdrant Cloud sinon</li><li><strong>Orchestration :</strong> Vercel AI SDK + Anthropic SDK pour les agents</li><li><strong>Observability :</strong> Langfuse pour tracer les agents en prod</li><li><strong>Eval :</strong> Promptfoo pour les tests offline, A/B tests en prod via feature flags</li></ul>
<aside class="art-cta">
        <div class="art-cta-body">
          <h3>Tu cadres ton projet IA ?</h3>
          <p>On a tâté les trois archis. 15 minutes pour décortiquer ton cas et viser la bonne archi avant de dépenser un euro.</p>
        </div>
        <a href="https://wa.me/237688699939" target="_blank" rel="noopener" class="art-cta-btn">
          15 min, on en parle <span class="arrow"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" width="11" height="11"><polyline points="7 17 17 7"/><polyline points="9 7 17 7 17 15"/></svg></span>
        </a>
      </aside>
<h2 id="quand-combiner-les-trois" class="art-h2"><span class="art-h2-num"></span>Quand combiner les trois</h2>
<p class="art-p">Le pattern le plus puissant qu&#8217;on a déployé : <strong>agent qui orchestre des outils, dont un de ces outils est un RAG, et le LLM de base est fine-tuné</strong> pour adopter le ton de la marque. C&#8217;est complexe à débugger, cher à scaler, mais ça produit les expériences IA les plus différenciantes du marché.</p>
<figure class="art-quote">
        <svg class="art-quote-glyph" viewBox="0 0 56 40" aria-hidden="true">
          <path d="M0 40V24C0 11 8 1 22 0v8c-6 1-11 6-11 12h11v20H0zm32 0V24C32 11 40 1 54 0v8c-6 1-11 6-11 12h11v20H32z" fill="url(#art-quote-grad)"/>
        </svg>
        <blockquote>On voulait fine-tuner Claude. Ardaris nous a fait shipper un RAG en 5 semaines. 6 mois plus tard on tourne toujours en RAG, et c&#8217;est très bien comme ça.</blockquote>
        <footer class="art-quote-cite">— CTO, série B, edtech</footer>
      </figure>
<p class="art-p">La règle : <strong>commence simple, mesure, complexifie quand le problème le justifie</strong>. La majorité des projets IA qui échouent ne le font pas par manque d&#8217;archi sophistiquée — ils le font par manque de données propres et d&#8217;éval rigoureuse.</p>
    </article>
  </div>

  <!-- END CARDS -->
  <div class="art-end">
    <div class="art-author-card">
      <h3>Écrit par</h3>
      <div class="author-row">
        <span class="avatar-lg" aria-hidden="true">AC</span>
        <div>
          <div class="author-name">Ardaris Créative</div>
          <div class="author-role">Studio · SaaS · Apps · Sites · IA · Brand</div>
        </div>
      </div>
      <p>Nous concevons et développons des produits digitaux pour les marques qui veulent marquer leur époque. <strong>11 apps en prod, 26 sites livrés, 7 SaaS qui tournent.</strong></p>
    </div>
    <div class="art-share-card">
      <h3>Partager cet article</h3>
      <div class="share-actions">
        <button type="button" data-share="share-x"><svg viewBox="0 0 24 24" fill="currentColor" width="13" height="13"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg> X / Twitter</button>
        <button type="button" data-share="share-linkedin"><svg viewBox="0 0 24 24" fill="currentColor" width="13" height="13"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.36-1.85 3.6 0 4.27 2.37 4.27 5.45zM5.34 7.43c-1.14 0-2.06-.93-2.06-2.06s.93-2.06 2.06-2.06 2.06.93 2.06 2.06-.93 2.06-2.06 2.06zM7.12 20.45H3.56V9h3.56zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z"/></svg> LinkedIn</button>
        <button type="button" data-share="share-copy"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="13" height="13"><path d="M10 13a5 5 0 007 0l4-4a5 5 0 00-7-7l-1 1"/><path d="M14 11a5 5 0 00-7 0l-4 4a5 5 0 007 7l1-1"/></svg> Copier</button>
      </div>
    </div>
  </div>

  <!-- RELATED -->
  <section class="art-related" aria-labelledby="art-related-h">
    <div class="art-related-inner">
      <div class="art-related-head">
        <h2 class="art-related-title" id="art-related-h">À LIRE <span class="accent">ENSUITE</span></h2>
        <a class="art-related-all" href="/blog/">Tous les articles <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" width="11" height="11"><polyline points="7 17 17 7"/><polyline points="9 7 17 7 17 15"/></svg></a>
      </div>
      <div class="art-related-grid">
        
    <a class="art-related-card" href="/saas-sur-mesure-vs-cle-en-main-2026/" aria-label="SaaS sur-mesure ou solution clé en main : comment trancher en 2026">
      <div class="img-wrap"><img  alt="SaaS sur-mesure ou solution clé en main : comment trancher en 2026" loading="lazy"/ class="lws-optimize-lazyload" data-src="https://ardaris.fr/wp-content/uploads/2026/05/card-saas.webp"></div>
      <span class="cat-pill">SaaS &amp; Web Apps</span>
      <h4>SaaS sur-mesure ou solution clé en main : comment trancher en 2026</h4>
      <div class="meta-mini">
        <time datetime="2026-05-10">10 mai 2026</time>
        <span class="dot"></span>
        <span>8 min</span>
      </div>
    </a>

    <a class="art-related-card" href="/stripe-lemon-squeezy-paddle-comparatif-2026/" aria-label="Stripe, Lemon Squeezy, Paddle : quel billing engine pour ton SaaS B2B">
      <div class="img-wrap"><img  alt="Stripe, Lemon Squeezy, Paddle : quel billing engine pour ton SaaS B2B" loading="lazy"/ class="lws-optimize-lazyload" data-src="https://ardaris.fr/wp-content/uploads/2026/05/card-saas.webp"></div>
      <span class="cat-pill">SaaS &amp; Web Apps</span>
      <h4>Stripe, Lemon Squeezy, Paddle : quel billing engine pour ton SaaS B2B</h4>
      <div class="meta-mini">
        <time datetime="2026-05-05">5 mai 2026</time>
        <span class="dot"></span>
        <span>11 min</span>
      </div>
    </a>

    <a class="art-related-card" href="/react-native-vs-flutter-bilan-2026/" aria-label="React Native vs Flutter : bilan honnête après cinq apps en production">
      <div class="img-wrap"><img  alt="React Native vs Flutter : bilan honnête après cinq apps en production" loading="lazy"/ class="lws-optimize-lazyload" data-src="https://ardaris.fr/wp-content/uploads/2026/05/card-apps-mobiles.webp"></div>
      <span class="cat-pill">Apps Mobiles</span>
      <h4>React Native vs Flutter : bilan honnête après cinq apps en production</h4>
      <div class="meta-mini">
        <time datetime="2026-04-28">28 avr. 2026</time>
        <span class="dot"></span>
        <span>9 min</span>
      </div>
    </a>
      </div>
    </div>
  </section>

  <!-- NEWSLETTER -->
  <section class="art-newsletter" aria-labelledby="art-newsletter-h">
    <div class="art-newsletter-inner">
      <div class="art-newsletter-text">
        <h2 id="art-newsletter-h">REÇOIS<br>LES BONS INSIGHTS<br>EN PREMIER</h2>
        <p>Une newsletter mensuelle, zéro bullshit. Décisions produit, retours de chantier, breakdowns techniques. Lisible en 5 minutes.</p>
      </div>
      <form class="art-newsletter-form" novalidate>
        <div class="field">
          <input type="email" name="email" placeholder="ton@email.com" required aria-label="Adresse email"/>
          <button type="submit">S&#8217;abonner <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" width="11" height="11"><polyline points="7 17 17 7"/><polyline points="9 7 17 7 17 15"/></svg></button>
        </div>
        <span class="art-newsletter-fineprint">Pas de spam. Désabonnement en un clic.</span>
      </form>
    </div>
  </section>

  <!-- FOOTER -->
  <footer class="art-footer">
    <div>© 2026 Ardaris Créative — Tous droits réservés</div>
    <nav aria-label="Navigation pied de page">
      <a href="/">Accueil</a>
      <a href="/services">Services</a>
      <a href="/blog/">Blog</a>
      <a href="/contact/">Contact</a>
    </nav>
  </footer>

  <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/#article","headline":"RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026","description":"RAG pour des données qui bougent, fine-tuning pour un style propriétaire, agents pour orchestrer. La grille de décision IA Ardaris en 2026.","articleSection":"IA & Agents","wordCount":2000,"image":{"@type":"ImageObject","url":"https://ardaris.fr/wp-content/uploads/2026/05/card-saas.webp","width":1200,"height":800},"datePublished":"2026-05-15","dateModified":"2026-05-15","author":{"@type":"Organization","name":"Ardaris Créative","url":"https://ardaris.fr","logo":{"@type":"ImageObject","url":"https://ardaris.fr/wp-content/uploads/2026/05/logo-ardaris-sans-fond.png"}},"publisher":{"@type":"Organization","name":"Ardaris Créative","url":"https://ardaris.fr","logo":{"@type":"ImageObject","url":"https://ardaris.fr/wp-content/uploads/2026/05/logo-ardaris-sans-fond.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https://ardaris.fr/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https://ardaris.fr/blog/"},{"@type":"ListItem","position":3,"name":"IA & Agents","item":"https://ardaris.fr/category/ia-agents/"},{"@type":"ListItem","position":4,"name":"RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026"}]}]}</script>
</div>
<script>(function() {
  const root = document.querySelector('.ardaris-article');
  if (!root) return;

  if (root.parentElement !== document.body) {
    document.body.appendChild(root);
  }
  document.documentElement.classList.add('ardaris-article-html');
  document.body.classList.add('ardaris-article-page');

  const wipe = (el) => {
    if (!el) return;
    if (!el.style) return;
    el.style.setProperty('transform', 'none', 'important');
    el.style.setProperty('filter', 'none', 'important');
    el.style.setProperty('perspective', 'none', 'important');
    el.style.setProperty('contain', 'none', 'important');
    el.style.setProperty('will-change', 'auto', 'important');
  };
  wipe(document.documentElement);
  wipe(document.body);

  // === Poussière d'or ===
  const dustHost = document.createElement('div');
  dustHost.className = 'gold-dust-host';
  document.body.appendChild(dustHost);
  const PARTICLES_COUNT = 80;
  for (let i = 0; i < PARTICLES_COUNT; i++) {
    const p = document.createElement('div');
    const r = Math.random();
    const sizeClass = r < 0.55 ? 's' : (r < 0.88 ? 'm' : 'l');
    p.className = 'gold-particle ' + sizeClass;
    const size = sizeClass === 's' ? (1.2 + Math.random() * 1.5)
              : sizeClass === 'm' ? (2.4 + Math.random() * 2)
              : (3.6 + Math.random() * 2.4);
    p.style.width = size + 'px';
    p.style.height = size + 'px';
    p.style.left = (Math.random() * 100) + 'vw';
    const dur = 18 + Math.random() * 28;
    p.style.animationDuration = dur + 's' + (sizeClass === 'l' ? ', ' + (1.8 + Math.random() * 1.4) + 's' : '');
    p.style.animationDelay = (-Math.random() * dur) + 's' + (sizeClass === 'l' ? ', ' + (-Math.random() * 2) + 's' : '');
    const drift = (Math.random() * 240 - 120) + 'px';
    p.style.setProperty('--drift', drift);
    p.style.opacity = (0.6 + Math.random() * 0.4).toString();
    dustHost.appendChild(p);
  }

  // === Reading progress bar ===
  const progress = document.createElement('div');
  progress.className = 'reading-progress';
  progress.innerHTML = '<div class="bar"></div>';
  document.body.appendChild(progress);
  const progressBar = progress.querySelector('.bar');
  const updateProgress = () => {
    const docH = document.documentElement.scrollHeight - window.innerHeight;
    const scr = window.scrollY;
    const pct = docH > 0 ? Math.min(100, (scr / docH) * 100) : 0;
    if (progressBar) progressBar.style.width = pct + '%';
  };
  updateProgress();
  window.addEventListener('scroll', updateProgress, { passive: true });
  window.addEventListener('resize', updateProgress);

  // === Status bar clock ===
  const clock = root.querySelector('.art-statusbar .clock em');
  if (clock) {
    const tick = () => {
      const d = new Date();
      const pad = (n) => (n < 10 ? '0' : '') + n;
      clock.textContent = pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds());
    };
    tick();
    setInterval(tick, 1000);
  }
  const today = root.querySelector('.art-statusbar .today em');
  if (today) {
    const d = new Date();
    const months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
    today.textContent = d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear();
  }

  // === Nav indicator ===
  const pill = root.querySelector('.nav-pill');
  const indicator = root.querySelector('.nav-indicator');
  if (pill) if (indicator) {
    const place = (el) => {
      if (!el) return;
      const pr = pill.getBoundingClientRect();
      const er = el.getBoundingClientRect();
      indicator.style.left = (er.left - pr.left) + 'px';
      indicator.style.width = er.width + 'px';
      indicator.classList.add('ready');
    };
    let active = pill.querySelector('a.active') || pill.querySelector('a');
    place(active);
    pill.querySelectorAll('a').forEach(a => {
      a.addEventListener('mouseenter', () => place(a));
    });
    pill.addEventListener('mouseleave', () => place(active));
    window.addEventListener('resize', () => place(active));
  }

  // === TOC active section highlight ===
  const tocLinks = root.querySelectorAll('.art-toc-list a[data-toc-target]');
  const tocMap = new Map();
  tocLinks.forEach(link => {
    const target = link.getAttribute('data-toc-target');
    if (target) tocMap.set(target, link);
  });
  const h2s = root.querySelectorAll('.art-h2[id]');
  if ('IntersectionObserver' in window) {
    const obs = new IntersectionObserver((entries) => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          const id = entry.target.getAttribute('id');
          tocLinks.forEach(l => l.classList.remove('active'));
          const link = tocMap.get(id);
          if (link) link.classList.add('active');
        }
      });
    }, { rootMargin: '-30% 0px -60% 0px', threshold: 0 });
    h2s.forEach(h => obs.observe(h));
  }

  // === Back-to-top ===
  const totop = document.createElement('button');
  totop.className = 'art-totop';
  totop.setAttribute('aria-label', 'Retour en haut');
  totop.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" width="18" height="18"><line x1="12" y1="5" x2="12" y2="19"/><polyline points="5 12 12 5 19 12"/></svg>';
  document.body.appendChild(totop);
  const toggleTotop = () => {
    if (window.scrollY > 800) totop.classList.add('show');
    else totop.classList.remove('show');
  };
  toggleTotop();
  window.addEventListener('scroll', toggleTotop, { passive: true });
  totop.addEventListener('click', () => {
    window.scrollTo({ top: 0, behavior: 'smooth' });
  });

  // === Toast helper ===
  const toast = document.createElement('div');
  toast.className = 'art-toast';
  document.body.appendChild(toast);
  const showToast = (msg) => {
    toast.textContent = msg;
    toast.classList.add('show');
    setTimeout(() => toast.classList.remove('show'), 2400);
  };

  // === Share buttons ===
  const articleUrl = window.location.href;
  const articleTitle = "RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026";
  const shareHandlers = {
    'share-x': () => window.open('https://twitter.com/intent/tweet?text=' + encodeURIComponent(articleTitle) + '&url=' + encodeURIComponent(articleUrl), '_blank', 'noopener,width=600,height=420'),
    'share-linkedin': () => window.open('https://www.linkedin.com/sharing/share-offsite/?url=' + encodeURIComponent(articleUrl), '_blank', 'noopener,width=600,height=480'),
    'share-copy': () => {
      if (navigator.clipboard) {
        navigator.clipboard.writeText(articleUrl).then(() => showToast('✓ Lien copié dans le presse-papier'));
      } else {
        showToast('Lien : ' + articleUrl);
      }
    },
  };
  root.querySelectorAll('[data-share]').forEach(btn => {
    const key = btn.getAttribute('data-share');
    const h = shareHandlers[key];
    if (h) btn.addEventListener('click', h);
  });

  // === Newsletter form ===
  const form = root.querySelector('.art-newsletter-form');
  if (form) {
    form.addEventListener('submit', (e) => {
      e.preventDefault();
      const input = form.querySelector('input[type="email"]');
      if (input) if (input.value) {
        showToast('✓ Merci — premier numéro très bientôt');
        input.value = '';
      }
    });
  }
})();</script>
<p>L’article <a href="https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/">RAG, fine-tuning ou agents : quelle archi IA choisir pour ton SaaS en 2026</a> est apparu en premier sur <a href="https://ardaris.fr">ardaris</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ardaris.fr/rag-fine-tuning-agents-archi-ia-saas-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
