Skip to content

[document] Add POST/PATCH/DELETE /v1/chunks #592

@leoguillaume

Description

@leoguillaume

Context and needs

User story

En tant qu'utilisateur je souhaite pouvoir ajouter des chunks à un document existant sans devoir le recharger. De plus, je souhaite pouvoir modifier un chunk existant. Enfin pour avoir le contrôle sur ma méthode de chunking, je souhaite avoir la possibilité d'ajouter des chunks directement sans devoir passer par NoSplitter qui nécessite de créer un document par chunk.

Context

Actuellement, la seule manière de créer directement des chunks est de passer par POST /v1/documents avec le paramètre chunker à NoSplitter qui nécessite de créer un document par chunk. Cela n'est pas pratique pour visualiser facilement les documents par la suite. De plus, la méthode actuellement n'est pas très compréhensible pour l'utilisateur et intuitive.

Goal

L'objectif de cette fonctionnalité est de permettre à l'utilisateur de créer des chunks directement par des endpoints /v1/chunks sans devoir passer par NoSplitter qui nécessite de créer un document par chunk. De plus, il doit pouvoir modifier un chunk existant.

Functional spec

Scope

La feature doit permettre :

  • Ajouter un chunk à un document existant depuis un endpoint POST /v1/chunks

Lors de la création d'un chunk, l'utilisateur n'aura pas a spécifier de méthode de chunking car il devra passer le chunk par une string. L'utilisateur doit pouvoir spécifier le document ID et le chunk ID. Le chunk ID correspond à l'emplacement du chunk dans le document. Le chunk ID (int) est unique pour un document et si un chunk ID existe déjà, l'utilisateur doit recevoir une erreur 400 Bad Request. Le chunk ID peut être optionnel et si il n'est pas spécifié, le chunk sera ajouté à la fin du document avec un ID incrémenté. Le chunk doit être embeddé et ajouté dans le vector store et ajouté au document. L'utilisateur peut spécifier un chunk ID qui n'est pas continue avec les chunks existants.

  • Modifier un chunk existant depuis un endpoint PATCH /v1/chunks

Lors de la modification d'un chunk, l'utilisateur doit pouvoir spécifier le document ID et le chunk ID. Le chunk ID correspond à l'emplacement du chunk dans le document. Si le chunk ID n'existe pas, l'utilisateur doit recevoir une erreur 404 Not Found. Le chunk doit être embeddé a nouveau dans le vector store et remplacer l'ancien chunk.

  • Supprimer un chunk existant depuis un endpoint DELETE /v1/chunks

Lors de la suppression d'un chunk, l'utilisateur doit pouvoir spécifier le document ID et le chunk ID. Le chunk ID correspond à l'emplacement du chunk dans le document. Si le chunk ID n'existe pas, l'utilisateur doit recevoir une erreur 404 Not Found. Le chunk doit être supprimé du vector store et du document.

  • Supprimer la méthode NoSplitter pour la création des documents.

Lors de la création d'un document, l'utilisateur ne peut plus utiliser la méthode NoSplitter pour la création des chunks (400 Bad Request). Cette erreur a pour but de l'inciter à utiliser les nouveaux endpoints pour la création des chunks.
L'argument chunker doit être indiqué comme déprécié.

Acceptance criteria

  • The user can [perform the action] without errors
  • Error messages are clear and actionable
  • Behavior complies with business rules

Technical spec

Architecture & integration

  • Impact on existing components identified
  • Existing API reused or new API specified
  • Error handling and HTTP status codes defined
  • Backward compatibility ensured

Data

  • Data model defined or updated
  • Backend validation rules implemented
  • Data migration handled if needed

Security & compliance

  • Authentication and authorization enforced
  • Input validation and protection against invalid requests
  • GDPR compliance (personal data, logging, retention)

Quality & testing

  • Unit tests
  • Integration tests
  • Functional / E2E tests
  • Technical documentation updated

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions