using MediatR; using RAG.Application.Embedding.DTOs; using RAG.Domain.Interfaces; namespace RAG.Application.Embedding.Commands; public record EmbedBatchCommand(List Texts) : IRequest; public class EmbedBatchCommandHandler(IEmbeddingService embeddingService) : IRequestHandler { public async Task Handle(EmbedBatchCommand request, CancellationToken ct) { var vectors = await embeddingService.EmbedBatchAsync(request.Texts, ct); var dimensions = vectors.FirstOrDefault()?.Length ?? 0; return new EmbeddingBatchResponse(vectors.Select(v => v.ToList()).ToList(), dimensions); } }