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