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);
}
}