export type EmbeddingBatchOutputLine = { custom_id?: string; error?: { message?: string }; response?: { status_code?: number; body?: | { data?: Array<{ embedding?: number[]; }>; error?: { message?: string }; } | string; }; }; export function applyEmbeddingBatchOutputLine(params: { line: EmbeddingBatchOutputLine; remaining: Set; errors: string[]; byCustomId: Map; }) { const customId = params.line.custom_id; if (!customId) { return; } params.remaining.delete(customId); const errorMessage = params.line.error?.message; if (errorMessage) { params.errors.push(`${customId}: ${errorMessage}`); return; } const response = params.line.response; const statusCode = response?.status_code ?? 0; if (statusCode >= 400) { const messageFromObject = response?.body && typeof response.body === "object" ? (response.body as { error?: { message?: string } }).error?.message : undefined; const messageFromString = typeof response?.body === "string" ? response.body : undefined; params.errors.push(`${customId}: ${messageFromObject ?? messageFromString ?? "unknown error"}`); return; } const data = response?.body && typeof response.body === "object" ? (response.body.data ?? []) : []; const embedding = data[0]?.embedding ?? []; if (embedding.length === 0) { params.errors.push(`${customId}: empty embedding`); return; } params.byCustomId.set(customId, embedding); }