> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fanifyai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Base de connaissance (RAG)

> Alimenter la mémoire long terme de votre personnage principal pour réduire les hallucinations de l'IA de chatting

## Introduction

La **base de connaissance** (ou **RAG**, pour [Retrieval-Augmented Generation](https://fr.wikipedia.org/wiki/G%C3%A9n%C3%A9ration_augment%C3%A9e_par_r%C3%A9cup%C3%A9ration)) est la **mémoire long terme** de votre personnage. Elle stocke des phrases courtes et autonomes (anecdotes, goûts, famille, anniversaires, événements vécus...) que l'IA de chatting peut **récupérer à la demande** au moment de répondre à un fan.

Sans RAG, l'IA s'appuie uniquement sur le [persona](/fr/basics/configuration/persona-editor) (fiche d'identité courte) et **invente** dès qu'un utilisateurpose une question précise (« comment s'appelle ton chien ? », « tu fais quoi cet été ? »). C'est ce qu'on appelle une **hallucination**.

Avec une base de connaissance bien remplie, l'IA va **chercher l'info** avant de répondre, et n'invente plus.

<Note>
  La RAG est complémentaire du [persona](/fr/basics/configuration/persona-editor) : le persona définit **qui parle et comment**, la RAG définit **ce qu'elle sait**.
</Note>

## Prérequis

* **Configuration initiale terminée** ([mise en route](/fr/basics/configuration/onboarding))
* **Persona configuré** ([éditeur de persona](/fr/basics/configuration/persona-editor)) — le prénom et le métier de la créatrice sont utilisés par le générateur
* **Une clé OpenRouter valide** — la génération depuis un texte et les embeddings consomment des tokens
* **Un texte source décrivant votre personnage** : biographie, fiche persona, journal, histoire de vie... **300 lignes ou plus** donnent les meilleurs résultats

<Tip>
  Plus votre texte source est **précis et détaillé**, plus la RAG sera utile. Visez un document qui couvre : identité, famille, enfance, métier, hobbies, anecdotes marquantes, préférences alimentaires, animaux, vacances, manies, etc.
</Tip>

## Étapes

### 1) Ouvrir la base de connaissance

1. Connectez-vous à votre instance Fanify
2. Allez dans l'onglet **Admin** <img src="https://mintcdn.com/saufrasoft/aFq2Mb0yAiM80Ukz/assets/ui-elements/sidebar/tab_admin_hover.png?fit=max&auto=format&n=aFq2Mb0yAiM80Ukz&q=85&s=56afaefa40d91e63ee894ed87eb0209d" alt="Onglet Admin" style={{ display: "inline", height: "1.8em", verticalAlign: "middle", margin: "0 0.25em" }} width="240" height="50" data-path="assets/ui-elements/sidebar/tab_admin_hover.png" />
3. Cliquez sur **Chatting Auto** <img src="https://mintcdn.com/saufrasoft/aFq2Mb0yAiM80Ukz/assets/ui-elements/pages/admin-settings/setting-item/auto-chatting_fr.png?fit=max&auto=format&n=aFq2Mb0yAiM80Ukz&q=85&s=630f70aea037b9d8aef6b3fa99cef9ca" alt="Chatting Auto" style={{ display: "inline", height: "1.8em", verticalAlign: "middle", margin: "0 0.25em" }} width="554" height="68" data-path="assets/ui-elements/pages/admin-settings/setting-item/auto-chatting_fr.png" />
4. Cliquez sur **Base de connaissance**

La page liste les **8 catégories** de connaissances, avec en haut un bouton **Générer depuis un texte**.

### 2) Générer la base depuis votre fiche persona (recommandé)

C'est la méthode la plus rapide et la plus complète. Vous collez votre fiche, l'IA la **découpe en petits chunks** sémantiques, écrits à la première personne, et les catégorise automatiquement.

<Steps>
  <Step title="Cliquer sur Générer depuis un texte">
    En haut de la page, cliquez le bouton **Générer depuis un texte**. Une fenêtre s'ouvre avec une zone de texte.
  </Step>

  <Step title="Coller votre fiche persona">
    Collez votre fiche complète (biographie, histoire, anecdotes, goûts...). Aucune limite stricte de longueur, **300 lignes ou plus est idéal**.

    <Tip>
      Écrivez la fiche **à la troisième personne** (« Lyly est née en 2008 à Bordeaux... ») ou en mode narratif libre. L'IA reformulera tout à la **première personne** automatiquement.
    </Tip>
  </Step>

  <Step title="Générer un aperçu">
    Cliquez sur **Générer un aperçu**. L'IA analyse votre texte et propose une liste d'entrées. Chaque entrée contient :

    | Champ              | Description                                              |
    | ------------------ | -------------------------------------------------------- |
    | **Texte original** | 1 fait par phrase, à la 1ère personne, autonome          |
    | **Type**           | `Info modèle`, `Vie modèle` ou `Autres`                  |
    | **Tags**           | 1 à 3 mots-clés (ex : `Family`, `Occupation`, `Hobbies`) |
    | **Température**    | 0 (neutre) à 100 (très intime/sexuel)                    |
    | **Importance**     | 0 (anecdotique) à 100 (info identitaire cruciale)        |

    Vérifiez rapidement la cohérence (pas d'inventions, faits corrects).
  </Step>

  <Step title="Tout sauvegarder">
    Si l'aperçu vous convient, cliquez sur **Tout sauvegarder en base**. Chaque entrée est **vectorisée** (un embedding est calculé) puis enregistrée. À partir de cet instant, l'IA de chatting peut y accéder.
  </Step>
</Steps>

<Warning>
  La génération et la sauvegarde consomment des tokens auprès de votre fournisseur LLM et du modèle d'**embedding** configuré. Pour 300 lignes, comptez quelques centaines de milliers de tokens au total.
</Warning>

<Note>
  Vous pouvez relancer une génération à tout moment avec un texte différent (par exemple, un journal hebdomadaire) pour **enrichir** la base. Les nouvelles entrées s'ajoutent aux précédentes, elles ne les écrasent pas.
</Note>

### 3) Vérifier et compléter manuellement

Une fois la génération terminée, ouvrez chaque catégorie pour parcourir les entrées créées.

<AccordionGroup>
  <Accordion title="Modifier une entrée existante" icon="pen">
    1. Ouvrez la catégorie concernée (ex : **Informations modèle**)
    2. Cliquez sur le **texte** d'une entrée : il devient éditable
    3. Modifiez librement, puis cliquez ailleurs pour valider
    4. Vous pouvez aussi modifier les **tags**, la **date**, ou supprimer l'entrée via l'icône poubelle

    <Note>
      Si vous modifiez le **texte**, l'embedding est automatiquement **recalculé** lors de la sauvegarde. La recherche sémantique reste donc à jour sans action de votre part.
    </Note>
  </Accordion>

  <Accordion title="Ajouter une entrée à la main" icon="plus">
    1. Ouvrez la catégorie concernée
    2. Cliquez sur le bouton **+** en haut à droite
    3. Saisissez votre texte (1 fait par phrase, à la 1ère personne)
    4. Ajoutez des tags pertinents
    5. Cliquez sur la **coche verte** pour valider (l'embedding est généré à ce moment)

    <Tip>
      Préférez **plusieurs entrées courtes** à une seule entrée longue. Une entrée = un fait = une phrase autonome.
    </Tip>
  </Accordion>

  <Accordion title="Rechercher dans la base" icon="magnifying-glass">
    Sur chaque catégorie, l'icône **loupe** ouvre une barre de recherche avec deux modes :

    * **Texte** : recherche classique par mots-clés
    * **Sémantique** : trouve les entrées par sens (ex : « voyages » remontera des phrases qui parlent de vacances ou d'avion sans contenir le mot)
  </Accordion>
</AccordionGroup>

## Comment fonctionne la mémoire Fanify

La base de connaissance regroupe **8 catégories**. Pas besoin d'en maîtriser le détail technique : retenez surtout les 3 premières, ce sont celles que vous alimentez.

| Catégorie                    | À quoi ça sert                                                                                        |
| ---------------------------- | ----------------------------------------------------------------------------------------------------- |
| **Informations modèle**      | Identité, apparence physique, goûts, préférences, biens possédés                                      |
| **Vie de la modèle**         | Anecdotes, famille, événements vécus, relations                                                       |
| **Quotidien de la modèle**   | Journal du jour (ce qu'elle a fait aujourd'hui)                                                       |
| **Mémoires utilisateur**     | Faits dits par le **l'utilisateur** pendant les conversations (alimenté automatiquement)              |
| **Mémoires modèle**          | Faits dits par votre **personnage** pendant les conversations (alimenté automatiquement)              |
| **Informations utilisateur** | Données générales sur les utilisateurs                                                                |
| **Descriptions de média**    | Descriptions détaillées des photos/vidéos de votre galerie de PPV (gérer par les PPV automatiquement) |
| **Autres**                   | Catégorie fourre-tout                                                                                 |

<Note>
  Les catégories **Mémoires utilisateur**, **Mémoires modèle** et **Descriptions de média** sont alimentées **automatiquement** par l'IA pendant l'utilisation de Fanify. Vous n'avez pas besoin de les remplir à la main.
</Note>

Au moment de répondre à un fan, un **agent de recherche** interroge cette base, sélectionne les 3-4 entrées les plus pertinentes, et les injecte dans le contexte de l'agent de réflexion. C'est ce qui empêche l'IA d'inventer.

## Exemples concrets en chatting

Quelques situations réelles où la RAG fait la différence :

<CardGroup cols={2}>
  <Card title="Question sur la famille" icon="users">
    **Fan** : « Tu as des frères et sœurs ? »\
    Sans RAG : réponse inventée différente à chaque fois.\
    Avec RAG : l'IA retrouve « J'ai une petite sœur Lyna de 16 ans et un frère Yllan de 13 ans » et reste **cohérente** sur la durée.
  </Card>

  <Card title="Question sur le métier" icon="briefcase">
    **Fan** : « Ton père fait quoi dans la vie ? »\
    L'IA retrouve « Mon père est un ancien militaire devenu chef d'entreprise dans l'aéronautique » et répond précisément.
  </Card>

  <Card title="Rappel de détails" icon="cake-candles">
    **Fan** : « C'est quand ton anniv déjà ? »\
    L'IA retrouve la date exacte saisie dans la base au lieu d'en inventer une nouvelle.
  </Card>

  <Card title="Anecdotes personnelles" icon="plane">
    **Fan** : « Raconte-moi ton voyage au Japon »\
    L'IA retrouve les phrases liées à ce voyage et les utilise pour broder une réponse fidèle.
  </Card>
</CardGroup>

## Bon à savoir

### Quand enrichir la base ?

* **Au tout début**, juste après le persona : c'est le moment le plus rentable
* **Quand un utilisateur vous pose une question répétée** mal gérée par l'IA : ajoutez l'info manquante
* **Périodiquement**, en relançant le générateur avec un nouveau texte (journal de la semaine, événements récents)

### Température et importance

* **Température** : utilisez 0 pour les faits neutres (famille, métier), 50+ pour les goûts intimes, 80+ pour le contenu explicite. L'IA filtre automatiquement selon le ton de la conversation.
* **Importance** : 100 = info identitaire (prénom, métier, ville de naissance), 50 = anecdote utile, 20 = détail mineur. Les entrées importantes remontent plus facilement dans les recherches.

### Cohérence avec le persona

Si une info contredit votre [persona](/fr/basics/configuration/persona-editor) (ex : prénom différent, métier différent), le persona **prime**. Évitez les contradictions pour ne pas perturber l'IA.

## Dépannage rapide

* **L'IA continue d'halluciner sur un sujet** : ouvrez la catégorie concernée et vérifiez qu'une entrée couvre bien l'info. Si l'entrée existe, vérifiez que ses **tags** correspondent au vocabulaire utilisé par les fans.
* **La génération depuis un texte est très lente** : c'est normal sur de longs textes. Comptez 30 à 90 secondes pour 300 lignes selon le modèle configuré.
* **« Échec de génération »** : vérifiez que votre clé OpenRouter (ou autre fournisseur) est valide et que l'agent **Générateur de connaissances** est bien configuré dans **Admin > Chatting Auto > Agents > RAG & Recherche**.
* **Aucun résultat en recherche sémantique** : vérifiez que les entrées ont bien un **embedding** (icône ✓ dans la liste). Si ce n'est pas le cas, votre **modèle d'embedding** est mal configuré (voir **Admin > Chatting Auto > Modèle d'embedding**). Il se peut également que vous n'ayez pas [synchroniser les modèles d'embeddings OpenRouter](/fr/basics/configuration/openrouter#modèles-d’embedding)
* **Entrées dupliquées après plusieurs générations** : c'est sans gravité, mais vous pouvez supprimer les doublons à la main pour alléger la base.
