References for CRUD

add_document_with_chunks(db, doc, chunks, batch_size=10)

Ajoute un document et ses chunks à la base de données en générant les embeddings en mode lot.

Cette fonction insère un document et tous ses chunks associés, génère les embeddings par lots pour améliorer les performances, et préserve les relations hiérarchiques entre les chunks.

Parameters:
  • db (Session) –

    Session SQLAlchemy active.

  • doc (DocumentCreate) –

    Données du document à créer.

  • chunks (List[Dict[str, Any]]) –

    Liste des chunks définis par l'utilisateur.

  • batch_size (int, default: 10 ) –

    Nombre de chunks à traiter par lot.

Returns:
  • Dict[str, Any]

    Dict contenant l'ID du document, le nombre de chunks, le corpus_id et si un index doit être créé.

delete_document(document_id)

Supprime un document de la base de données avec tous ses chunks associés.

Cette fonction supprime un document et tous ses chunks. Si le document est le dernier de son corpus, l'index vectoriel associé est également supprimé.

Parameters:
  • document_id (int) –

    Identifiant du document à supprimer.

Returns:
  • Dict[str, Any]

    Dict contenant le statut de l'opération et les actions réalisées.

delete_document_chunks(document_id, chunk_ids=None)

Supprime des chunks spécifiques d'un document ou tous les chunks si aucun ID n'est spécifié.

Cette fonction supprime des chunks et met à jour les statistiques d'index du corpus. L'index devient invalide après suppression de chunks et nécessite une reconstruction.

Parameters:
  • document_id (int) –

    ID du document.

  • chunk_ids (Optional[List[int]], default: None ) –

    Liste des IDs des chunks à supprimer (si None, supprime tous les chunks).

Returns:
  • Dict[str, Any]

    Dict contenant le statut de l'opération et des informations sur l'index.

get_documents(theme=None, document_type=None, corpus_id=None, skip=0, limit=100, db=None)

Liste l'ensemble des documents de la base de données avec leur nombre de chunks.

Cette fonction permet de récupérer un ensemble paginé de documents avec possibilité de filtrage sur différents critères.

Parameters:
  • theme (Optional[str], default: None ) –

    Filtre optionnel pour le thème du document.

  • document_type (Optional[str], default: None ) –

    Filtre optionnel pour le type du document.

  • corpus_id (Optional[str], default: None ) –

    Filtre optionnel sur l'identifiant du corpus.

  • skip (int, default: 0 ) –

    Nombre de documents à ignorer (pour la pagination).

  • limit (int, default: 100 ) –

    Nombre maximal de documents à retourner.

  • db (Session, default: None ) –

    Session de base de données fournie par dépendance.

Returns:
  • List[DocumentResponse]

    Liste des documents formatés avec leur nombre de chunks associés.

update_document_with_chunks(document_update, new_chunks=None)

Met à jour un document existant et ses chunks dans la base de données.

Parameters:
  • document_update (DocumentUpdate) –

    Données de mise à jour du document.

  • new_chunks (Optional[List[Dict[str, Any]]], default: None ) –

    Nouveaux chunks à ajouter ou à remplacer (si replace_chunks=True).

Returns:
  • Dict[str, Any]

    Dict[str, Any]: Résultat de l'opération avec les informations mises à jour.