import { DiarizationEntry } from '../types'; /** * Cette fonction envoie le fichier audio et la clé API de l'utilisateur au backend. * @param file Le fichier MP3 à analyser. * @param apiKey La clé API Gemini fournie par l'utilisateur. * @returns Une promesse qui se résout avec le résultat de la diarisation. */ export async function processAudioFile(file: File, apiKey: string): Promise { const formData = new FormData(); formData.append('file', file); try { const response = await fetch('/api/diarize', { method: 'POST', headers: { // Transmet la clé API de manière sécurisée dans un en-tête 'X-API-KEY': apiKey, }, body: formData, }); if (!response.ok) { const errorData = await response.json(); throw new Error(`Erreur du serveur (${response.status}): ${errorData.detail || 'Erreur inconnue'}`); } const result = await response.json(); return result as DiarizationEntry[]; } catch (error) { console.error("Erreur lors de l'appel au backend pour la diarisation:", error); if (error instanceof Error) { throw new Error(`Échec du traitement du fichier : ${error.message}`); } throw new Error("Une erreur inconnue est survenue lors du traitement du fichier."); } }