using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace ManagerService.Services { /// /// Transforme du texte en vecteur pour la recherche sémantique du guide IA. /// La dimension est figée dans le schéma (`vector(768)` sur ContentEmbedding) : /// changer de modèle ou de dimension impose un re-embed complet et une migration de colonne. /// public interface IEmbeddingService { int Dimensions { get; } Task EmbedAsync(string text, CancellationToken cancellationToken = default); /// /// Vectorise plusieurs textes en un minimum d'appels réseau. /// Indispensable : un PDF de 100 pages produit ~150 morceaux, soit autant /// d'allers-retours HTTP séquentiels si on n'embed qu'un texte à la fois. /// L'ordre des résultats suit celui des textes fournis. /// Task> EmbedBatchAsync(IReadOnlyList texts, CancellationToken cancellationToken = default); } }