@azure/ai-language-text 1.1.0-beta.1 → 1.1.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -41,7 +41,7 @@ const DEFAULT_COGNITIVE_SCOPE = "https://cognitiveservices.azure.com/.default";
41
41
  /**
42
42
  * @internal
43
43
  */
44
- const SDK_VERSION = "1.1.0-beta.1";
44
+ const SDK_VERSION = "1.1.0-beta.2";
45
45
  /**
46
46
  * @internal
47
47
  */
@@ -166,6 +166,21 @@ function getOperationOptions(options) {
166
166
  rest,
167
167
  };
168
168
  }
169
+ /**
170
+ *
171
+ * @param error - error with the target in the JSON error pointer format "#/items/0
172
+ * @returns number: the position of the task with error
173
+ */
174
+ function extractErrorPointerIndex(error) {
175
+ if (!error.target) {
176
+ throw new Error("Unexpected response from service - no target present");
177
+ }
178
+ const position = parseInt(error.target.split("/").pop());
179
+ if (isNaN(position)) {
180
+ throw new Error(`Unexpected response from service - action pointer "${error.target}" is not a valid action pointer.`);
181
+ }
182
+ return position;
183
+ }
169
184
 
170
185
  /*
171
186
  * Copyright (c) Microsoft Corporation.
@@ -330,12 +345,6 @@ const AnalyzeTextJobsInput = {
330
345
  name: "String"
331
346
  }
332
347
  },
333
- defaultLanguage: {
334
- serializedName: "defaultLanguage",
335
- type: {
336
- name: "String"
337
- }
338
- },
339
348
  analysisInput: {
340
349
  serializedName: "analysisInput",
341
350
  type: {
@@ -1646,7 +1655,7 @@ const AbstractiveSummarizationTaskParametersBase = {
1646
1655
  name: "Composite",
1647
1656
  className: "AbstractiveSummarizationTaskParametersBase",
1648
1657
  modelProperties: {
1649
- maxSentenceCount: {
1658
+ sentenceCount: {
1650
1659
  serializedName: "sentenceCount",
1651
1660
  type: {
1652
1661
  name: "Number"
@@ -1697,6 +1706,7 @@ const AbstractiveSummary = {
1697
1706
  },
1698
1707
  contexts: {
1699
1708
  serializedName: "contexts",
1709
+ required: true,
1700
1710
  type: {
1701
1711
  name: "Sequence",
1702
1712
  element: {
@@ -4076,74 +4086,172 @@ function toHealthcareResult(docIds, results) {
4076
4086
  /**
4077
4087
  * @internal
4078
4088
  */
4079
- function transformAnalyzeBatchResults(docIds, response = []) {
4080
- return response.map((actionData) => {
4081
- const { lastUpdateDateTime: completedOn, actionName, kind } = actionData;
4082
- switch (kind) {
4089
+ function transformAnalyzeBatchResults(docIds, response = [], errors = []) {
4090
+ const errorMap = toIndexErrorMap(errors);
4091
+ return response.map((actionData, idx) => {
4092
+ const { lastUpdateDateTime: completedOn, actionName, kind: resultKind } = actionData;
4093
+ const error = errorMap.get(idx);
4094
+ switch (resultKind) {
4083
4095
  case "SentimentAnalysisLROResults": {
4096
+ const kind = "SentimentAnalysis";
4097
+ if (actionData.status === "failed") {
4098
+ return returnErrorTask(kind, error, completedOn);
4099
+ }
4084
4100
  const { results } = actionData;
4085
4101
  const { modelVersion, statistics } = results;
4086
- return Object.assign(Object.assign(Object.assign({ kind: "SentimentAnalysis", results: toSentimentAnalysisResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4102
+ return Object.assign(Object.assign(Object.assign({ kind, results: toSentimentAnalysisResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4087
4103
  }
4088
4104
  case "EntityRecognitionLROResults": {
4105
+ const kind = "EntityRecognition";
4106
+ if (actionData.status === "failed") {
4107
+ return returnErrorTask(kind, error, completedOn);
4108
+ }
4089
4109
  const { results } = actionData;
4090
4110
  const { modelVersion, statistics } = results;
4091
4111
  return Object.assign(Object.assign(Object.assign({ kind: "EntityRecognition", results: toEntityRecognitionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4092
4112
  }
4093
4113
  case "PiiEntityRecognitionLROResults": {
4114
+ const kind = "PiiEntityRecognition";
4115
+ if (actionData.status === "failed") {
4116
+ return returnErrorTask(kind, error, completedOn);
4117
+ }
4094
4118
  const { results } = actionData;
4095
4119
  const { modelVersion, statistics } = results;
4096
- return Object.assign(Object.assign(Object.assign({ kind: "PiiEntityRecognition", results: toPiiEntityRecognitionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4120
+ return Object.assign(Object.assign(Object.assign({ kind, results: toPiiEntityRecognitionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4097
4121
  }
4098
4122
  case "KeyPhraseExtractionLROResults": {
4123
+ const kind = "KeyPhraseExtraction";
4124
+ if (actionData.status === "failed") {
4125
+ return returnErrorTask(kind, error, completedOn);
4126
+ }
4099
4127
  const { results } = actionData;
4100
4128
  const { modelVersion, statistics } = results;
4101
- return Object.assign(Object.assign(Object.assign({ kind: "KeyPhraseExtraction", results: toKeyPhraseExtractionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4129
+ return Object.assign(Object.assign(Object.assign({ kind, results: toKeyPhraseExtractionResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4102
4130
  }
4103
4131
  case "EntityLinkingLROResults": {
4132
+ const kind = "EntityLinking";
4133
+ if (actionData.status === "failed") {
4134
+ return returnErrorTask(kind, error, completedOn);
4135
+ }
4104
4136
  const { results } = actionData;
4105
4137
  const { modelVersion, statistics } = results;
4106
- return Object.assign(Object.assign(Object.assign({ kind: "EntityLinking", results: toEntityLinkingResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4138
+ return Object.assign(Object.assign(Object.assign({ kind, results: toEntityLinkingResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4107
4139
  }
4108
4140
  case "HealthcareLROResults": {
4141
+ const kind = "Healthcare";
4142
+ if (actionData.status === "failed") {
4143
+ return returnErrorTask(kind, error, completedOn);
4144
+ }
4109
4145
  const { results } = actionData;
4110
4146
  const { modelVersion, statistics } = results;
4111
- return Object.assign(Object.assign(Object.assign({ kind: "Healthcare", results: toHealthcareResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4147
+ return Object.assign(Object.assign(Object.assign({ kind, results: toHealthcareResult(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4112
4148
  }
4113
4149
  case "CustomEntityRecognitionLROResults": {
4150
+ const kind = "CustomEntityRecognition";
4151
+ if (actionData.status === "failed") {
4152
+ return returnErrorCustomTask(kind, error, completedOn);
4153
+ }
4114
4154
  const { results } = actionData;
4115
4155
  const { deploymentName, projectName, statistics } = results;
4116
- return Object.assign(Object.assign(Object.assign({ kind: "CustomEntityRecognition", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
4156
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
4117
4157
  projectName });
4118
4158
  }
4119
4159
  case "CustomSingleLabelClassificationLROResults": {
4160
+ const kind = "CustomSingleLabelClassification";
4161
+ if (actionData.status === "failed") {
4162
+ return returnErrorCustomTask(kind, error, completedOn);
4163
+ }
4120
4164
  const { results } = actionData;
4121
4165
  const { deploymentName, projectName, statistics } = results;
4122
- return Object.assign(Object.assign(Object.assign({ kind: "CustomSingleLabelClassification", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
4166
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
4123
4167
  projectName });
4124
4168
  }
4125
4169
  case "CustomMultiLabelClassificationLROResults": {
4170
+ const kind = "CustomMultiLabelClassification";
4171
+ if (actionData.status === "failed") {
4172
+ return returnErrorCustomTask(kind, error, completedOn);
4173
+ }
4126
4174
  const { results } = actionData;
4127
4175
  const { deploymentName, projectName, statistics } = results;
4128
- return Object.assign(Object.assign(Object.assign({ kind: "CustomMultiLabelClassification", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
4176
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { deploymentName,
4129
4177
  projectName });
4130
4178
  }
4131
4179
  case "ExtractiveSummarizationLROResults": {
4180
+ const kind = "ExtractiveSummarization";
4181
+ if (actionData.status === "failed") {
4182
+ return returnErrorTask(kind, error, completedOn);
4183
+ }
4132
4184
  const { results } = actionData;
4133
4185
  const { modelVersion, statistics } = results;
4134
- return Object.assign(Object.assign(Object.assign({ kind: "ExtractiveSummarization", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4186
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4135
4187
  }
4136
4188
  case "AbstractiveSummarizationLROResults": {
4189
+ const kind = "AbstractiveSummarization";
4190
+ if (actionData.status === "failed") {
4191
+ return returnErrorTask(kind, error, completedOn);
4192
+ }
4137
4193
  const { results } = actionData;
4138
4194
  const { modelVersion, statistics } = results;
4139
- return Object.assign(Object.assign(Object.assign({ kind: "AbstractiveSummarization", results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4195
+ return Object.assign(Object.assign(Object.assign({ kind, results: transformDocumentResults(docIds, results), completedOn }, (actionName ? { actionName } : {})), (statistics ? { statistics } : {})), { modelVersion });
4140
4196
  }
4141
4197
  default: {
4142
- throw new Error(`Unsupported results kind: ${kind}`);
4198
+ throw new Error(`Unsupported results kind: ${resultKind}`);
4143
4199
  }
4144
4200
  }
4145
4201
  });
4146
4202
  }
4203
+ /**
4204
+ * @internal
4205
+ * Transform a list of error into index and error Map
4206
+ */
4207
+ function toIndexErrorMap(errors) {
4208
+ const errorMap = new Map();
4209
+ for (const error of errors) {
4210
+ const position = extractErrorPointerIndex(error);
4211
+ const errorWithoutTarget = tslib.__rest(error, ["target"]);
4212
+ errorMap.set(position, toTextAnalysisError(errorWithoutTarget));
4213
+ }
4214
+ return errorMap;
4215
+ }
4216
+ /**
4217
+ * Return the error for non-custom task
4218
+ *
4219
+ * @param kind - non custom task kind
4220
+ * @param error - error returned from the service
4221
+ * @param failedOn - the LastUpdateDateTime from the service
4222
+ * @returns - AnalyzeBatchResult with error
4223
+ */
4224
+ function returnErrorTask(kind, error, failedOn) {
4225
+ if (!error) {
4226
+ throw new Error("Unexpected response from service - no errors for missing action results.");
4227
+ }
4228
+ return {
4229
+ kind,
4230
+ modelVersion: "",
4231
+ failedOn,
4232
+ error,
4233
+ };
4234
+ }
4235
+ /**
4236
+ * Return the error for non-custom task
4237
+ *
4238
+ * @param kind - non custom task kind
4239
+ * @param error - error returned from the service
4240
+ * @param failedOn - the LastUpdateDateTime from the service
4241
+ * @returns AnalyzeBatchResult for custom task with error
4242
+ */
4243
+ function returnErrorCustomTask(kind, error, failedOn) {
4244
+ if (!error) {
4245
+ throw new Error("Unexpected response from service - no errors for missing action results.");
4246
+ }
4247
+ return {
4248
+ kind,
4249
+ projectName: "",
4250
+ deploymentName: "",
4251
+ failedOn,
4252
+ error,
4253
+ };
4254
+ }
4147
4255
 
4148
4256
  // Copyright (c) Microsoft Corporation.
4149
4257
  const serializer$2 = coreClient.createSerializer(Mappers, /* isXml */ false);
@@ -4161,13 +4269,24 @@ const jobStatusOperationSpec$1 = {
4161
4269
  queryParameters: [top, skip, includeStatistics],
4162
4270
  serializer: serializer$2,
4163
4271
  };
4272
+ function addOnResponse(options, cb) {
4273
+ return Object.assign(Object.assign({}, options), { onResponse: (rawResponse, response, error) => {
4274
+ var _a;
4275
+ cb(rawResponse, response, error);
4276
+ (_a = options.onResponse) === null || _a === void 0 ? void 0 : _a.call(options, rawResponse, response, error);
4277
+ } });
4278
+ }
4279
+ function logWarnHeader(rawResponse) {
4280
+ const warnHeader = rawResponse.headers.get("warn-text");
4281
+ if (warnHeader) {
4282
+ warnHeader.split(";").map((x) => logger.warning(x));
4283
+ }
4284
+ }
4164
4285
  async function getRawResponse(getResponse, options) {
4165
- const { onResponse } = options || {};
4166
4286
  let rawResponse;
4167
- const flatResponse = await getResponse(Object.assign(Object.assign({}, options), { onResponse: (response, flatResponseParam) => {
4168
- rawResponse = response;
4169
- onResponse === null || onResponse === void 0 ? void 0 : onResponse(response, flatResponseParam);
4170
- } }));
4287
+ const flatResponse = await getResponse(addOnResponse(options, (response) => {
4288
+ rawResponse = response;
4289
+ }));
4171
4290
  return {
4172
4291
  flatResponse,
4173
4292
  rawResponse: {
@@ -4190,7 +4309,12 @@ function createSendPollRequest(settings) {
4190
4309
  return async (path) => {
4191
4310
  return throwError(sendRequest({
4192
4311
  client,
4193
- opOptions: options,
4312
+ opOptions: addOnResponse(options, (_, response) => {
4313
+ const castResponse = response;
4314
+ if (castResponse.status.toLowerCase() === "partiallysucceeded") {
4315
+ castResponse.status = "succeeded";
4316
+ }
4317
+ }),
4194
4318
  path,
4195
4319
  spanStr,
4196
4320
  spec: jobStatusOperationSpec$1,
@@ -4205,7 +4329,7 @@ function createAnalyzeBatchLro(settings) {
4205
4329
  const { client, commonOptions, documents, initialRequestOptions, pollRequestOptions, tasks, tracing, } = settings;
4206
4330
  return {
4207
4331
  async sendInitialRequest() {
4208
- return tracing.withSpan(`${clientName}.beginAnalyzeBatch`, Object.assign(Object.assign({}, commonOptions), initialRequestOptions), async (finalOptions) => throwError(getRawResponse((paramOptions) => client.analyzeBatch({
4332
+ return tracing.withSpan(`${clientName}.beginAnalyzeBatch`, addOnResponse(Object.assign(Object.assign({}, commonOptions), initialRequestOptions), logWarnHeader), async (finalOptions) => throwError(getRawResponse((paramOptions) => client.analyzeBatch({
4209
4333
  tasks,
4210
4334
  analysisInput: {
4211
4335
  documents,
@@ -4273,7 +4397,7 @@ function processAnalyzeResult(options) {
4273
4397
  });
4274
4398
  const flatResponse = response.flatResponse;
4275
4399
  return {
4276
- page: transformAnalyzeBatchResults(docIds, flatResponse.tasks.items),
4400
+ page: transformAnalyzeBatchResults(docIds, flatResponse.tasks.items, flatResponse.errors),
4277
4401
  nextPageLink: flatResponse.nextLink,
4278
4402
  };
4279
4403
  },
@@ -4414,13 +4538,13 @@ class GeneratedClient extends coreClient__namespace.ServiceClient {
4414
4538
  const defaults = {
4415
4539
  requestContentType: "application/json; charset=utf-8"
4416
4540
  };
4417
- const packageDetails = `azsdk-js-ai-language-text/1.1.0-beta.1`;
4541
+ const packageDetails = `azsdk-js-ai-language-text/1.1.0-beta.2`;
4418
4542
  const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
4419
4543
  ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
4420
4544
  : `${packageDetails}`;
4421
4545
  const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: {
4422
4546
  userAgentPrefix
4423
- }, baseUri: (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri) !== null && _b !== void 0 ? _b : "{Endpoint}/language" });
4547
+ }, endpoint: (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri) !== null && _b !== void 0 ? _b : "{Endpoint}/language" });
4424
4548
  super(optionsWithDefaults);
4425
4549
  // Parameter assignments
4426
4550
  this.endpoint = endpoint;
@@ -4639,8 +4763,8 @@ class TextAnalysisClient {
4639
4763
  throw new Error("'documents' must be a non-empty array");
4640
4764
  }
4641
4765
  if (isStringArray(documents)) {
4642
- const languageHint = (_a = languageOrOptions) !== null && _a !== void 0 ? _a : this.defaultLanguage;
4643
- realInputs = convertToTextDocumentInput(documents, languageHint);
4766
+ const languageCode = (_a = languageOrOptions) !== null && _a !== void 0 ? _a : this.defaultLanguage;
4767
+ realInputs = convertToTextDocumentInput(documents, languageCode);
4644
4768
  realOptions = options;
4645
4769
  }
4646
4770
  else {