export function transformAnalyzeBatchResults()

in sdk/cognitivelanguage/ai-language-text/src/transforms.ts [377:577]


export function transformAnalyzeBatchResults(
  docIds: string[],
  response: AnalyzeTextLROResultUnion[] = [],
  errors: ErrorModel[] = [],
): AnalyzeBatchResult[] {
  const errorMap = toIndexErrorMap(errors);
  return response.map((actionData, idx): AnalyzeBatchResult => {
    const { lastUpdateDateTime: completedOn, actionName, kind: resultKind } = actionData;
    const error = errorMap.get(idx);
    switch (resultKind as KnownAnalyzeTextLROResultsKind) {
      case "SentimentAnalysisLROResults": {
        const kind = "SentimentAnalysis";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as SentimentLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind,
          results: toSentimentAnalysisResult(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "EntityRecognitionLROResults": {
        const kind = "EntityRecognition";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as EntityRecognitionLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind: "EntityRecognition",
          results: toEntityRecognitionResult(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "PiiEntityRecognitionLROResults": {
        const kind = "PiiEntityRecognition";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as PiiEntityRecognitionLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind,
          results: toPiiEntityRecognitionResult(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "KeyPhraseExtractionLROResults": {
        const kind = "KeyPhraseExtraction";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as KeyPhraseExtractionLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind,
          results: toKeyPhraseExtractionResult(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "EntityLinkingLROResults": {
        const kind = "EntityLinking";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as EntityLinkingLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind,
          results: toEntityLinkingResult(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "HealthcareLROResults": {
        const kind = "Healthcare";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as HealthcareLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind,
          results: toHealthcareResult(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "CustomEntityRecognitionLROResults": {
        const kind = "CustomEntityRecognition";
        if (actionData.status === "failed") {
          return returnErrorCustomTask(kind, error, completedOn);
        }
        const { results } = actionData as CustomEntityRecognitionLROResult;
        const { deploymentName, projectName, statistics } = results;
        return {
          kind,
          results: transformDocumentResults<CustomEntitiesResultDocumentsItem>(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          deploymentName,
          projectName,
        };
      }
      case "CustomSingleLabelClassificationLROResults": {
        const kind = "CustomSingleLabelClassification";
        if (actionData.status === "failed") {
          return returnErrorCustomTask(kind, error, completedOn);
        }
        const { results } = actionData as CustomSingleLabelClassificationLROResult;
        const { deploymentName, projectName, statistics } = results;
        return {
          kind,
          results: transformDocumentResults<CustomLabelClassificationResultDocumentsItem>(
            docIds,
            results,
          ),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          deploymentName,
          projectName,
        };
      }
      case "CustomMultiLabelClassificationLROResults": {
        const kind = "CustomMultiLabelClassification";
        if (actionData.status === "failed") {
          return returnErrorCustomTask(kind, error, completedOn);
        }
        const { results } = actionData as CustomMultiLabelClassificationLROResult;
        const { deploymentName, projectName, statistics } = results;
        return {
          kind,
          results: transformDocumentResults<CustomLabelClassificationResultDocumentsItem>(
            docIds,
            results,
          ),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          deploymentName,
          projectName,
        };
      }
      case "ExtractiveSummarizationLROResults": {
        const kind = "ExtractiveSummarization";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as ExtractiveSummarizationLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind: "ExtractiveSummarization",
          results: transformDocumentResults(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      case "AbstractiveSummarizationLROResults": {
        const kind = "AbstractiveSummarization";
        if (actionData.status === "failed") {
          return returnErrorTask(kind, error, completedOn);
        }
        const { results } = actionData as AbstractiveSummarizationLROResult;
        const { modelVersion, statistics } = results;
        return {
          kind: "AbstractiveSummarization",
          results: transformDocumentResults(docIds, results),
          completedOn,
          ...(actionName ? { actionName } : {}),
          ...(statistics ? { statistics } : {}),
          modelVersion,
        };
      }
      default: {
        throw new Error(`Unsupported results kind: ${resultKind}`);
      }
    }
  });
}