Services d'intégration IA : Coûts réels, modèles de livraison et exemples

Laissez-moi vous épargner quelques dizaines d'appels de découverte. Si vous essayez de déterminer quel est le coût réel de l'intégration de l'IA dans votre produit — qu'il s'agisse d'une application SaaS, d'une boutique e-commerce ou d'un outil interne — la réponse que vous obtiendrez de la plupart des agences est « cela dépend ». Ce qui est techniquement vrai et complètement inutile.

Au cours des 18 derniers mois, j'ai construit des intégrations IA sur des piles Next.js, des plateformes e-commerce headless et des produits SaaS. J'ai configuré des pipelines RAG, mis en place des vector stores, créé des harnesses d'évaluation et affronté la réalité peu glamour du versioning des prompts à 2 heures du matin. Cet article est la analyse honnête que j'aurais aimé que quelqu'un ait écrite avant de commencer à citer ces projets.

Table des matières

AI Integration Services: Real Costs, Delivery Models & Examples

Ce que les services d'intégration IA incluent réellement

Quand quelqu'un dit « intégration IA », cela pourrait signifier n'importe quoi, du simple ajout d'un widget ChatGPT sur une page d'accueil à la construction d'une couche d'orchestration multi-modèles avec génération augmentée par la récupération. La variance de portée est énorme, et c'est la principale raison pour laquelle les gammes de tarification sont si larges.

Voici ce qu'un engagement typique implique réellement :

Découverte et architecture

Avant que quelqu'un écrive une ligne de code, vous devez déterminer ce que l'IA est censée faire et comment elle s'intègre dans votre système existant. Ce n'est pas une formalité — c'est là que les erreurs coûteuses sont évitées. Nous parlons de :

  • Définition du cas d'usage : Quels problèmes utilisateurs spécifiques résolvez-vous avec l'IA ? « Le rendre plus intelligent » n'est pas un cas d'usage.
  • Audit des données : Quelles données possédez-vous, où se trouvent-elles et comment sont-elles propres ?
  • Sélection du modèle : Quel fournisseur et quel niveau de modèle a du sens pour vos exigences en matière de latence, de précision et de coût ?
  • Conception de l'architecture : Comment la couche IA se connecte-t-elle à votre pile existante ? Routes API, fonctions edge, travailleurs de fond ?
  • Examen de la conformité : Traitez-vous des PII ? Des données de santé ? Des données financières ? Cela change tout.

Implémentation de base

La phase de construction proprement dite couvre généralement :

  • Intégration d'API avec un ou plusieurs fournisseurs de modèles
  • Systèmes d'ingénierie des prompts et de gestion
  • Gestion de la fenêtre de contexte et optimisation des tokens
  • Gestion de la réponse en streaming (particulièrement critique dans les applications Next.js)
  • Gestion des erreurs, fallbacks et limitation de débit
  • Couches de cache pour réduire les coûts d'API

Travail de pipeline de données

Si vous avez besoin de RAG (et la plupart des intégrations sérieuses en ont besoin), ajoutez :

  • Pipelines d'ingestion et de chunking de documents
  • Génération d'embeddings et stockage
  • Configuration et optimisation du vector store
  • Logique de récupération et re-ranking
  • Citation de sources et attribution

Test et évaluation

C'est la partie que la plupart des équipes ignorent et regrettent ensuite :

  • Développement de harness d'évaluation
  • Test de régression des prompts
  • Benchmarking de précision
  • Surveillance de la latence et des coûts
  • Infrastructure de test A/B pour les variantes de prompts

Coûts réels : Ventilation des chiffres

Parlons chiffres réels. Ceux-ci sont basés sur les projets que nous avons livrés en 2024-2025 et ce que je vois dans l'industrie en mi-2025.

Niveau d'intégration Portée Chronologie Gamme de coûts d'agence Infrastructure mensuelle
De base API de modèle unique, prompt simple, pas de RAG 2-4 semaines 8 000 $ - 20 000 $ 50 $ - 500 $
Standard Système multi-prompts, RAG de base, un modèle 6-10 semaines 25 000 $ - 65 000 $ 200 $ - 2 000 $
Avancé Orchestration multi-modèles, pipeline RAG complet, harness d'évaluation 12-20 semaines 75 000 $ - 180 000 $ 1 000 $ - 10 000 $
Entreprise Fine-tuning personnalisé, RAG multi-locataire, conformité, scale 16-30 semaines 150 000 $ - 400 000 $+ 5 000 $ - 50 000 $+

Quelques remarques sur ces chiffres :

Les tarifs des agences varient énormément. Une petite agence spécialisée comme la nôtre (consultez notre page de tarification pour les tarifs actuels) facturera différemment qu'une grande consultance. J'ai vu Deloitte et Accenture proposer 500 K$ + pour un travail qu'une équipe ciblée peut livrer pour 120 K$.

Les coûts d'infrastructure sont le tueur caché. Le coût de construction unique est juste le début. Les appels d'API OpenAI à grande échelle deviennent rapidement coûteux. Un produit SaaS traitant 100K requêtes/mois avec GPT-4o regarde un coût de 3 000 $ à 8 000 $/mois uniquement en coûts d'API, selon la longueur du prompt et la taille de la réponse.

L'intégration la moins chère n'est pas la moins chère. J'ai vu des équipes dépenser 8 K$ pour un simple wrapper ChatGPT, puis dépenser 60 K$ six mois plus tard pour le reconstruire correctement parce qu'elles n'avaient pas comptabilisé la gestion du contexte, la gestion des erreurs ou l'évaluation.

Où l'argent va réellement

Sur un projet d'intégration typique de 60 K$, voici la répartition approximative :

  • Architecture et découverte : 15 % (9 000 $)
  • Intégration IA de base : 25 % (15 000 $)
  • Pipeline RAG : 25 % (15 000 $)
  • Travail frontend/UX : 15 % (9 000 $)
  • Évaluation et test : 10 % (6 000 $)
  • Documentation et transmission : 10 % (6 000 $)

Cette tranche d'évaluation est trop petite, honnêtement. Sur nos projets plus récents, nous l'avons poussée à 15-20 %.

Comparaison des fournisseurs de modèles : ChatGPT vs Claude vs Gemini

Au mi-2025, voici où se situent les trois grands fournisseurs pour le travail d'intégration :

Facteur OpenAI (GPT-4o / GPT-4.1) Anthropic (Claude 4 Sonnet) Google (Gemini 2.5 Pro)
Meilleur pour Général, function calling, vision Documents longs, analyse, critique de sécurité Multimodal, grand contexte, écosystème Google
Fenêtre de contexte 128K tokens 200K tokens 1M tokens
Coût d'entrée (par 1M tokens) 2,50 $ (GPT-4o) 3,00 $ (Sonnet) 1,25 $ (2.5 Pro)
Coût de sortie (par 1M tokens) 10,00 $ (GPT-4o) 15,00 $ (Sonnet) 10,00 $ (2.5 Pro)
Support du streaming Excellent Excellent Bon
Function Calling Meilleur de sa catégorie Fort Fort
Maturité du SDK Très mature Mature S'améliore rapidement
Limites de débit Généreuses aux niveaux supérieurs Modérées Généreuses
Fine-tuning Disponible (GPT-4o) Pas encore disponible Disponible

Tarification en juin 2025. Ceux-ci changent fréquemment.

Mon analyse honnête : pour la plupart des intégrations, le modèle importe moins que le système qui l'entoure. J'ai vu des intégrations Claude 3.5 Haiku bien conçues surpasser des implémentations paresseuses de GPT-4. La conception des prompts, la gestion du contexte et la qualité de la récupération font une plus grande différence que le modèle lui-même une fois que vous êtes dans le top tier.

Cela dit, quelques conseils pratiques :

  • Applications SaaS avec données structurées : Le function calling d'OpenAI est difficile à surpasser. L'écosystème d'outils est le plus mature.
  • Workflows lourds en documents : La large fenêtre de contexte de Claude et sa capacité à gérer l'analyse nuancée en font notre choix pour la legal tech, les plateformes de recherche et les applications riches en contenu.
  • Cost-sensitive, haut volume : Gemini 2.5 Flash est ridiculement bon marché pour sa qualité. Nous l'avons utilisé pour les tâches de classification où nous brûlerions le budget avec GPT-4o.

Pour nos projets Next.js development, nous utilisons par défaut OpenAI pour la qualité d'intégration du Vercel AI SDK, mais nous concevons la permutabilité des modèles dès le départ.

AI Integration Services: Real Costs, Delivery Models & Examples - architecture

Modèles d'architecture qui fonctionnent réellement

Voici une architecture simplifiée pour une application Next.js avec intégration IA que nous avons livrée plusieurs fois :

// app/api/chat/route.ts
import { openai } from '@ai-sdk/openai';
import { streamText } from 'ai';
import { retrieveContext } from '@/lib/rag';
import { trackUsage } from '@/lib/telemetry';

export async function POST(req: Request) {
  const { messages, conversationId } = await req.json();
  const lastMessage = messages[messages.length - 1].content;

  // RAG: retrieve relevant context
  const context = await retrieveContext(lastMessage, {
    topK: 5,
    threshold: 0.78,
    namespace: 'product-docs',
  });

  const result = streamText({
    model: openai('gpt-4o'),
    system: `You are a helpful assistant. Use the following context to answer questions.

Context:
${context.map(c => c.content).join('\n\n')}

Cite sources using [Source: title] format.`,
    messages,
    onFinish: async ({ usage }) => {
      await trackUsage({
        conversationId,
        promptTokens: usage.promptTokens,
        completionTokens: usage.completionTokens,
        model: 'gpt-4o',
      });
    },
  });

  return result.toDataStreamResponse();
}

C'est le motif du Vercel AI SDK. Il gère le streaming, la contre-pression et la gestion d'état côté client en standard. Pour les projets basés sur Astro, nous utilisons une approche légèrement différente avec des événements envoyés par le serveur, mais la logique backend est identique.

Le modèle Multi-Model Router

Pour l'optimisation des coûts, nous implémentons souvent un routeur qui envoie des requêtes simples à des modèles moins chers et des requêtes complexes à des modèles premium :

import { openai } from '@ai-sdk/openai';
import { anthropic } from '@ai-sdk/anthropic';
import { google } from '@ai-sdk/google';

function selectModel(query: string, complexity: 'low' | 'medium' | 'high') {
  switch (complexity) {
    case 'low':
      return google('gemini-2.5-flash');  // Cheapest, fast
    case 'medium':
      return openai('gpt-4o-mini');        // Good balance
    case 'high':
      return anthropic('claude-sonnet-4-20250514'); // Best quality
  }
}

La classification de la complexité elle-même peut être faite avec un petit modèle ou même un système basé sur des règles. Ne sur-concevez pas cette partie.

Pipelines RAG : La partie coûteuse dont personne ne parle

La génération augmentée par récupération est l'endroit où la plupart des intégrations IA deviennent coûteuses et complexes. Non pas parce que le concept est difficile — il est en réalité très simple — mais parce que la qualité des données est toujours pire que vous le pensez.

Un pipeline RAG a quatre étapes, et chacune a ses pièges :

1. Ingestion

Vous devez mettre vos données dans un format pouvant être chunké et embarqué. Si vous traitez des PDF, du HTML, du Markdown, des enregistrements de base de données ou (que Dieu vous aide) des documents scannés, cette seule étape peut prendre des semaines.

Nous utilisons une combinaison d'outils :

  • Unstructured.io pour l'analyse de documents
  • Loaders de documents LangChain pour les sources structurées
  • Analyseurs personnalisés pour les formats propriétaires

2. Chunking

La façon dont vous divisez les documents est plus importante que le modèle d'embedding que vous utilisez. Trop petit et vous perdez le contexte. Trop grand et vous diluez la pertinence.

Nos défauts actuels :

  • Taille du chunk : 512-1024 tokens pour le contenu général
  • Chevauchement : 10-15 % (50-150 tokens)
  • Stratégie : Chunking sémantique quand possible, splitting de caractères récursif en secours

3. Embedding

Le text-embedding-3-small d'OpenAI est notre défaut. C'est bon marché (0,02 $ par 1M tokens), rapide et suffisamment bon pour 90 % des cas d'usage. Pour des besoins de précision plus élevée, text-embedding-3-large à 0,13 $ par 1M tokens en vaut la peine.

Le embed-v4 de Cohere est une forte alternative, surtout pour le contenu multilingue.

4. Récupération et re-ranking

La recherche par similarité vectorielle naïve vous amène 70 % du chemin. Les 30 % restants viennent de :

  • Recherche hybride : Combinaison de similarité vectorielle avec recherche par mots-clés (BM25)
  • Re-ranking : Utilisation d'un cross-encoder pour re-scorer les résultats (Cohere Rerank ou un modèle local)
  • Filtrage des métadonnées : Pré-filtrage par date, catégorie, permissions utilisateur avant recherche de similarité

Sélection et coûts des vector stores

Voici à quoi ressemble le paysage des vector stores en 2025 :

Store Type Tier gratuit Offre payante à partir de Meilleur pour
Pinecone Géré 1 index, 100K vectors 70 $/mois (Starter) Production SaaS, simplicité
Weaviate Cloud Géré 1 cluster sandbox 25 $/mois Recherche hybride, multi-tenancy
Qdrant Cloud Géré 1 GB gratuit 9 $/mois Cost-sensitive, option d'auto-hébergement
Supabase pgvector Extension Postgres Inclus dans le plan gratuit 25 $/mois (Pro) Déjà sur Supabase, < 1M vectors
Neon pgvector Extension Postgres Inclus dans le plan gratuit 19 $/mois Boutiques Postgres sans serveur
Chroma Auto-hébergé Gratuit (OSS) Coûts d'infra seulement Prototypage, petits ensembles de données
Turbopuffer Géré Pay-per-use ~0,08 $/GB/mois de stockage Grande échelle, cost-optimisé

Pour la plupart de nos projets headless CMS development qui ont besoin de recherche IA, nous commençons avec pgvector sur Supabase ou Neon. C'est un service de moins à gérer, et pour les ensembles de données sous un million de vectors, les performances sont excellentes.

Quand nous avons besoin d'une vraie échelle — SaaS multi-locataire avec des millions de documents — Pinecone ou Weaviate sont les choix pragmatiques.

Harnesses d'évaluation : Comment savez-vous que ça marche

C'est la section que la plupart des agences ignorent complètement. Et c'est la raison pour laquelle tant d'intégrations IA sont livrées, « fonctionnent » pendant un mois, puis se dégradent lentement.

Une harness d'évaluation est un système qui mesure continuellement si votre intégration IA produit de bons résultats. Voici à quoi ressemble la nôtre :

Ce que nous mesurons

  • Qualité de la récupération : Les bons chunks sont-ils récupérés ? (Precision@K, Recall@K, NDCG)
  • Précision de la réponse : La réponse générée est-elle factuellement correcte compte tenu du contexte ? (LLM-as-judge, examen humain)
  • Fidélité : Le modèle hallucine-t-il ou cite-t-il des informations en dehors du contexte ?
  • Pertinence : La réponse répond-elle réellement à la question de l'utilisateur ?
  • Latence : Temps jusqu'au premier token, temps de réponse total
  • Coût par requête : Dépense totale en API par interaction

Outils que nous utilisons

  • Braintrust : Notre favori actuel pour l'évaluation LLM. Excellent système de scoring, bonne intégration CI/CD.
  • Langfuse : Traçage et évaluation open-source. Nous l'auto-hébergeons pour les clients ayant des exigences de résidence des données.
  • Scripts personnalisés : Parfois, vous avez juste besoin d'un script Python qui exécute 200 cas de test et crache un CSV. Ne sur-concevez pas cela.
# Exemple d'évaluation simplifiée
import braintrust
from autoevals import Factuality, ClosedQA

@braintrust.traced
def evaluate_response(question, context, response, expected):
    factuality = Factuality()(output=response, expected=expected, input=question)
    relevance = ClosedQA()(output=response, input=question)
    
    return {
        "factuality": factuality.score,
        "relevance": relevance.score,
    }

La boucle d'évaluation

Voici le flux de travail qui prévient réellement la régression :

  1. Maintenez un ensemble de données doré de 100-500 paires question/réponse
  2. Exécutez les évaluations à chaque changement de prompt
  3. Bloquez les déploiements si les scores chutent en dessous des seuils
  4. Examinez les cas limites hebdomadairement avec des experts du domaine
  5. Agrandissez l'ensemble de données doré à mesure que de nouveaux modes de défaillance apparaissent

Ce n'est pas facultatif. Si vous dépensez 50 K$ + pour une intégration IA et que vous ne l'évaluez pas systématiquement, vous naviguez à l'aveugle.

Vrais exemples de production

Exemple 1 : Découverte de produits e-commerce (Shopify + Next.js)

Client : Marque skincare D2C avec 800+ SKUs Défi : Les clients ne pouvaient pas trouver les bons produits par la recherche traditionnelle et le filtrage

Ce que nous avons construit :

  • Conseiller produit conversationnel utilisant Claude 3.5 Sonnet
  • Pipeline RAG sur les descriptions de produits, les listes d'ingrédients et les avis clients
  • Vector store sur Pinecone avec filtrage de métadonnées par type de peau, préoccupation et gamme de prix
  • Interface de chat en streaming dans Next.js 14 avec le Vercel AI SDK
  • Intégration avec l'API Shopify Storefront pour l'inventaire et les tarifs en temps réel

Résultats : Augmentation de 23 % de la valeur moyenne de la commande pour les utilisateurs ayant interagi avec le conseiller. Réduction de 40 % des retours « mauvais produit ».

Coût : 72 000 $ de build, ~1 800 $/mois d'infrastructure (y compris les coûts d'API à ~50K conversations/mois)

Exemple 2 : Assistant de base de connaissances SaaS

Client : Plateforme SaaS B2B avec 2 000+ documents d'aide Défi : Les tickets de support dépassaient l'équipe, la plupart des réponses étaient dans les docs

Ce que nous avons construit :

  • Assistant IA intégré utilisant GPT-4o-mini pour la vitesse
  • Pipeline RAG sur les documents d'aide, changelog et posts de forum communautaire
  • Re-indexation automatique lorsque les docs étaient mises à jour (webhook de leur CMS headless)
  • Flux d'escalade : Réponse IA → Articles suggérés → Escalade humaine
  • Harness d'évaluation exécutée chaque nuit contre 300 questions de test

Résultats : Réduction de 45 % des tickets de support Tier 1. Le temps de résolution moyen est passé de 4 heures à 12 secondes pour les requêtes traitées par IA.

Coût : 48 000 $ de build, ~600 $/mois d'infrastructure

Exemple 3 : Analyse de documents légaux

Client : Startup legal tech Défi : Les avocats passent des heures à examiner les contrats pour des clauses et des risques spécifiques

Ce que nous avons construit :

  • Pipeline multi-modèles : Gemini 2.5 Pro pour l'analyse initiale des documents (fenêtre de contexte de 1M tokens gère la plupart des contrats dans leur intégralité), Claude pour l'analyse nuancée
  • Harness d'évaluation personnalisée avec scoring d'expert du domaine
  • Sortie structurée pour la catégorisation des risques
  • Tableau de bord Next.js avec vue côte à côte du document et annotations IA

Résultats : Réduction de 70 % du temps d'examen initial. Les avocats utilisaient la sortie IA comme point de départ et affinaient à partir de là.

Coût : 135 000 $ de build, ~4 500 $/mois d'infrastructure

Comment les agences livrent les projets d'intégration IA

Toutes les agences ne sont pas bien configurées pour livrer un bon travail IA. Voici ce qu'il faut rechercher et ce qu'il faut éviter.

Bons signes

  • Ils posent des questions sur vos données d'abord, pas quel modèle vous voulez utiliser
  • Ils ont une stratégie d'évaluation claire avant de commencer à construire
  • Ils conçoivent pour la permutabilité des modèles (vous ne devriez pas être verrouillé dans un fournisseur)
  • Ils peuvent vous montrer du travail IA en production, pas seulement des démos
  • Ils comprennent votre pile — l'intégration IA ne se fait pas dans un vide

Drapeaux rouges

  • « Nous allons juste brancher l'API ChatGPT » — cela vous dit qu'ils n'ont jamais fait cela auparavant
  • Aucune mention d'évaluation ou de test
  • Devis à prix fixe sans phase de découverte
  • Ils veulent fine-tuner un modèle avant d'essayer l'ingénierie des prompts (le fine-tuning n'est presque jamais la bonne première étape)
  • Ils ne peuvent pas expliquer les compromis entre différents vector stores ou modèles d'embedding

Notre modèle de livraison

Chez Social Animal, nous structurons généralement les projets d'intégration IA par phases :

  1. Sprint de découverte (1-2 semaines) : Conception de l'architecture, audit des données, sélection du modèle, métriques de succès
  2. Build de base (4-8 semaines) : Intégration d'API, pipeline RAG, implémentation frontend
  3. Évaluation et raffinement (2-4 semaines) : Développement de harness, optimisation des prompts, test de charge
  4. Transmission et surveillance (1-2 semaines) : Documentation, formation d'équipe, configuration de la surveillance

Si vous évaluez les agences pour le travail IA, contactez-nous — nous sommes heureux de faire un examen technique de toute proposition que vous avez reçue, même si vous ne finissez pas par travailler avec nous.

FAQ

Quel est le coût d'intégration de ChatGPT dans une application SaaS ?

Une intégration ChatGPT de base avec un prompt unique et pas de RAG coûte 8 000 $ à 20 000 $. Une intégration de qualité production avec génération augmentée par récupération, évaluation et gestion appropriée des erreurs coûte 40 000 $ à 80 000 $. Les coûts d'API continus dépendent entièrement du volume d'utilisation — budgétez 200 $ à 5 000 $/mois pour la plupart des applications SaaS.

Dois-je utiliser ChatGPT, Claude ou Gemini pour mon intégration IA ?

Cela dépend de votre cas d'usage. OpenAI a l'écosystème le plus mature et le meilleur function calling. Claude excelle dans l'analyse des longs documents et le raisonnement nuancé. Gemini offre la plus grande fenêtre de contexte et le tarif le plus compétitif pour les cas d'utilisation à haut volume. La plupart des systèmes en production bénéficient de supporter plusieurs modèles et du routage basé sur la complexité de la tâche.

Qu'est-ce qu'un pipeline RAG et en ai-je besoin ?

RAG (Retrieval-Augmented Generation) est un système qui donne au modèle IA accès à vos données spécifiques en récupérant les informations pertinentes avant de générer une réponse. Vous en avez besoin si l'IA doit répondre à des questions sur votre contenu, produits, documentation ou toute donnée spécifique au domaine. Sans RAG, le modèle ne connaît que ce qu'il a appris pendant l'entraînement.

Combien de temps faut-il pour construire une intégration IA ?

Les intégrations simples prennent 2-4 semaines. Les intégrations standard avec RAG prennent 6-12 semaines. Les systèmes multi-modèles complexes avec harnesses d'évaluation prennent 12-20 semaines. La chronologie est fortement influencée par la qualité des données — si vos données sont désordonnées, attendez-vous à ajouter 2-4 semaines pour le nettoyage et le travail de pipeline.

Quels sont les coûts continus de l'exécution d'une intégration IA ?

Les coûts continus incluent les frais d'utilisation d'API (la plus grande variable), l'hébergement du vector store (25 $ à 500 $/mois pour la plupart des applications), les coûts de génération d'embeddings, les outils de surveillance et la maintenance occasionnelle des prompts. Une application SaaS de taille moyenne dépense généralement 500 $ à 3 000 $/mois en infrastructure IA totale.

Puis-je changer de modèle IA après la construction de l'intégration ?

Oui, si l'intégration a été conçue correctement. C'est pourquoi nous construisons toujours une couche d'abstraction entre votre logique d'application et le fournisseur de modèles. Changer les modèles devrait être une modification de configuration, pas une réécriture. Si votre intégration actuelle est étroitement couplée à un fournisseur, c'est un signe d'une mauvaise architecture.

Comment mesure-je si mon intégration IA fonctionne réellement ?

Vous avez besoin d'une harness d'évaluation — un système qui exécute des cas de test par rapport à votre IA et évalue les résultats. Les métriques clés incluent la précision de la récupération (les bons documents sont-ils trouvés ?), la précision de la réponse (la réponse est-elle correcte ?), la fidélité (hallucine-t-il ?), et la latence. Exécutez ces évaluations continuellement, pas seulement au lancement.

Le fine-tuning est-il meilleur que RAG pour mon cas d'usage ?

Probablement pas, du moins pas comme votre première approche. RAG est moins cher, plus rapide à mettre en œuvre, ne nécessite pas de données d'entraînement et est plus facile à mettre à jour lorsque vos données changent. Le fine-tuning a du sens pour des exigences très spécifiques de format de sortie ou lorsque vous devez modifier le comportement du modèle de façons que les prompts ne peuvent pas réaliser. Commencez par RAG et ne considérez le fine-tuning que après avoir atteint ses limites.