# Intégration LLMs

> Docus génère des fichiers de contenu prêts pour l'IA grâce au module Nuxt LLMs

Docus intègre `nuxt-llms` par défaut pour préparer votre contenu aux Large Language Models (LLMs). Toutes vos pages de documentation sont injectées et les fichiers `/llms.txt` et `/llms-full.txt` sont automatiquement générés et pré-rendus.

<note to="/llms.txt">

Consultez le fichier `/llms.txt` généré pour la documentation Docus elle-même.

</note>

## Valeurs par défaut

Voici les valeurs par défaut utilisées pour générer le fichier `/llms.txt` :

- `domain` → calculé en fonction de votre plateforme de déploiement (ou via la variable d'environnement `NUXT_SITE_URL`)
- `title` → extrait de votre `package.json`
- `description` → extrait de votre `package.json`
- `full.title` → extrait de votre `package.json`
- `full.description` → extrait de votre `package.json`

## Personnalisation

Vous pouvez surcharger vos données LLMs depuis le `nuxt.config.ts` :

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  llms: {
    domain: 'https://votre-site.com',
    title: 'Nom de votre site',
    description: 'Une brève description de votre site',
    full: {
      title: 'Nom de votre site',
      description: 'Une brève description de votre site',
    },
  },
})
```

## Accès au Markdown brut

Lorsque `nuxt-llms` est activé, Docus expose également un endpoint markdown brut permettant aux agents IA de récupérer les fichiers source prêts pour les LLMs sans passer par le pipeline de rendu complet. Cela réduit l'utilisation de tokens et améliore la vitesse de réponse pour les outils IA consommant votre documentation.

### Fonctionnement

- **Endpoint** : `/raw/<chemin-contenu>.md` — utilisez le même chemin que l'URL de la page, supprimez le `/index` final et conservez l'extension `.md`
- **Content-Type** : `text/markdown; charset=utf-8`
- **Enrichissement automatique** : si le document demandé n'a pas de titre ou de description de premier niveau, la route ajoute automatiquement le titre et la description au début du corps markdown
- **Intégration LLMs.txt** : les liens des documents dans `llms.txt` sont automatiquement réécrits vers l'endpoint `/raw/...md`, afin que les agents récupèrent du markdown compact au lieu du HTML complet

<note to="/raw/fr/ai/llms.md">

Essayez d'accéder à la version Markdown brute de cette page.

</note>

### Configuration

Vous pouvez personnaliser le comportement du markdown brut depuis votre `nuxt.config.ts` :

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  llms: {
    contentRawMarkdown: {
      // Empêcher l'exposition de certaines collections de pages
      excludeCollections: ['blog'],
      // Conserver les liens llms.txt pointant vers les pages rendues plutôt que le markdown brut
      rewriteLLMSTxt: false,
    },
  },
})
```

Pour désactiver complètement l'accès au markdown brut :

```ts [nuxt.config.ts]
export default defineNuxtConfig({
  llms: {
    contentRawMarkdown: false,
  },
})
```

## Redirection Markdown

<note>

Cette fonctionnalité n'est disponible que lorsque Docus est déployé sur Vercel. Nous pourrons la rendre agnostique une fois que Nitro v3 prendra en charge les réécritures globales pour plusieurs fournisseurs.

</note>

Lorsqu'il est déployé sur Vercel, Docus configure automatiquement un routage intelligent pour servir du contenu markdown aux agents IA et aux outils en ligne de commande.

### Pourquoi ?

Les agents comme Claude Code utilisent les en-têtes `Accept: text/markdown` par défaut, retourner du Markdown brut permet d'économiser beaucoup de transfert de données et de tokens dans le processus.

### Comment ?

Docus détecte les requêtes provenant d'agents IA et d'outils en ligne de commande à l'aide des en-têtes HTTP :

- **En-tête Accept** : Les requêtes avec `Accept: text/markdown` sont automatiquement redirigées
- **Détection du user-agent** : Les requêtes `curl` en tant qu'agents sont automatiquement redirigées

### Règles de redirection

- **Chemin racine** : `/` → `/llms.txt`
- **Pages de documentation** : `/{chemin}` → `/raw/{chemin}.md`

### Exemple d'utilisation

```bash
# Obtenir llms.txt depuis la page d'accueil
curl -H "Accept: text/markdown" https://docus.dev/

# Obtenir llms.txt depuis la page d'accueil localisée
curl -H "Accept: text/markdown" https://docus.dev/fr

# Obtenir le markdown brut d'une page de documentation
curl -H "Accept: text/markdown" https://docus.dev/fr/ai/llms
```

Toutes ces commandes retourneront du contenu markdown au lieu de HTML.

<tip to="https://github.com/nuxt-content/nuxt-llms">

Consultez la documentation nuxt-llms pour plus d'informations sur le module.

</tip>
