@azure-rest/ai-inference 1.0.0-beta.2 → 1.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +81 -4
  2. package/dist/browser/clientDefinitions.d.ts.map +1 -1
  3. package/dist/browser/clientDefinitions.js +1 -1
  4. package/dist/browser/clientDefinitions.js.map +1 -1
  5. package/dist/browser/constants.d.ts +2 -0
  6. package/dist/browser/constants.d.ts.map +1 -0
  7. package/dist/browser/constants.js +4 -0
  8. package/dist/browser/constants.js.map +1 -0
  9. package/dist/browser/index.js +1 -1
  10. package/dist/browser/index.js.map +1 -1
  11. package/dist/browser/isUnexpected.js +2 -3
  12. package/dist/browser/isUnexpected.js.map +1 -1
  13. package/dist/browser/logger.js +1 -1
  14. package/dist/browser/logger.js.map +1 -1
  15. package/dist/browser/modelClient.d.ts.map +1 -1
  16. package/dist/browser/modelClient.js +10 -3
  17. package/dist/browser/modelClient.js.map +1 -1
  18. package/dist/browser/models.d.ts +36 -35
  19. package/dist/browser/models.d.ts.map +1 -1
  20. package/dist/browser/models.js +1 -1
  21. package/dist/browser/models.js.map +1 -1
  22. package/dist/browser/outputModels.d.ts +17 -26
  23. package/dist/browser/outputModels.d.ts.map +1 -1
  24. package/dist/browser/outputModels.js +1 -1
  25. package/dist/browser/outputModels.js.map +1 -1
  26. package/dist/browser/parameters.d.ts +6 -0
  27. package/dist/browser/parameters.d.ts.map +1 -1
  28. package/dist/browser/parameters.js +1 -1
  29. package/dist/browser/parameters.js.map +1 -1
  30. package/dist/browser/responses.d.ts.map +1 -1
  31. package/dist/browser/responses.js +1 -1
  32. package/dist/browser/responses.js.map +1 -1
  33. package/dist/browser/tracingHelper.d.ts +9 -0
  34. package/dist/browser/tracingHelper.d.ts.map +1 -0
  35. package/dist/browser/tracingHelper.js +198 -0
  36. package/dist/browser/tracingHelper.js.map +1 -0
  37. package/dist/browser/tracingPolicy.d.ts +12 -0
  38. package/dist/browser/tracingPolicy.d.ts.map +1 -0
  39. package/dist/browser/tracingPolicy.js +68 -0
  40. package/dist/browser/tracingPolicy.js.map +1 -0
  41. package/dist/commonjs/clientDefinitions.d.ts.map +1 -1
  42. package/dist/commonjs/clientDefinitions.js +1 -1
  43. package/dist/commonjs/clientDefinitions.js.map +1 -1
  44. package/dist/commonjs/constants.d.ts +2 -0
  45. package/dist/commonjs/constants.d.ts.map +1 -0
  46. package/dist/commonjs/constants.js +7 -0
  47. package/dist/commonjs/constants.js.map +1 -0
  48. package/dist/commonjs/index.js +1 -1
  49. package/dist/commonjs/index.js.map +1 -1
  50. package/dist/commonjs/isUnexpected.js +2 -3
  51. package/dist/commonjs/isUnexpected.js.map +1 -1
  52. package/dist/commonjs/logger.js +1 -1
  53. package/dist/commonjs/logger.js.map +1 -1
  54. package/dist/commonjs/modelClient.d.ts.map +1 -1
  55. package/dist/commonjs/modelClient.js +9 -2
  56. package/dist/commonjs/modelClient.js.map +1 -1
  57. package/dist/commonjs/models.d.ts +36 -35
  58. package/dist/commonjs/models.d.ts.map +1 -1
  59. package/dist/commonjs/models.js +1 -1
  60. package/dist/commonjs/models.js.map +1 -1
  61. package/dist/commonjs/outputModels.d.ts +17 -26
  62. package/dist/commonjs/outputModels.d.ts.map +1 -1
  63. package/dist/commonjs/outputModels.js +1 -1
  64. package/dist/commonjs/outputModels.js.map +1 -1
  65. package/dist/commonjs/parameters.d.ts +6 -0
  66. package/dist/commonjs/parameters.d.ts.map +1 -1
  67. package/dist/commonjs/parameters.js +1 -1
  68. package/dist/commonjs/parameters.js.map +1 -1
  69. package/dist/commonjs/responses.d.ts.map +1 -1
  70. package/dist/commonjs/responses.js +1 -1
  71. package/dist/commonjs/responses.js.map +1 -1
  72. package/dist/commonjs/tracingHelper.d.ts +9 -0
  73. package/dist/commonjs/tracingHelper.d.ts.map +1 -0
  74. package/dist/commonjs/tracingHelper.js +205 -0
  75. package/dist/commonjs/tracingHelper.js.map +1 -0
  76. package/dist/commonjs/tracingPolicy.d.ts +12 -0
  77. package/dist/commonjs/tracingPolicy.d.ts.map +1 -0
  78. package/dist/commonjs/tracingPolicy.js +72 -0
  79. package/dist/commonjs/tracingPolicy.js.map +1 -0
  80. package/dist/commonjs/tsdoc-metadata.json +1 -1
  81. package/dist/esm/clientDefinitions.d.ts.map +1 -1
  82. package/dist/esm/clientDefinitions.js +1 -1
  83. package/dist/esm/clientDefinitions.js.map +1 -1
  84. package/dist/esm/constants.d.ts +2 -0
  85. package/dist/esm/constants.d.ts.map +1 -0
  86. package/dist/esm/constants.js +4 -0
  87. package/dist/esm/constants.js.map +1 -0
  88. package/dist/esm/index.js +1 -1
  89. package/dist/esm/index.js.map +1 -1
  90. package/dist/esm/isUnexpected.js +2 -3
  91. package/dist/esm/isUnexpected.js.map +1 -1
  92. package/dist/esm/logger.js +1 -1
  93. package/dist/esm/logger.js.map +1 -1
  94. package/dist/esm/modelClient.d.ts.map +1 -1
  95. package/dist/esm/modelClient.js +10 -3
  96. package/dist/esm/modelClient.js.map +1 -1
  97. package/dist/esm/models.d.ts +36 -35
  98. package/dist/esm/models.d.ts.map +1 -1
  99. package/dist/esm/models.js +1 -1
  100. package/dist/esm/models.js.map +1 -1
  101. package/dist/esm/outputModels.d.ts +17 -26
  102. package/dist/esm/outputModels.d.ts.map +1 -1
  103. package/dist/esm/outputModels.js +1 -1
  104. package/dist/esm/outputModels.js.map +1 -1
  105. package/dist/esm/parameters.d.ts +6 -0
  106. package/dist/esm/parameters.d.ts.map +1 -1
  107. package/dist/esm/parameters.js +1 -1
  108. package/dist/esm/parameters.js.map +1 -1
  109. package/dist/esm/responses.d.ts.map +1 -1
  110. package/dist/esm/responses.js +1 -1
  111. package/dist/esm/responses.js.map +1 -1
  112. package/dist/esm/tracingHelper.d.ts +9 -0
  113. package/dist/esm/tracingHelper.d.ts.map +1 -0
  114. package/dist/esm/tracingHelper.js +198 -0
  115. package/dist/esm/tracingHelper.js.map +1 -0
  116. package/dist/esm/tracingPolicy.d.ts +12 -0
  117. package/dist/esm/tracingPolicy.d.ts.map +1 -0
  118. package/dist/esm/tracingPolicy.js +68 -0
  119. package/dist/esm/tracingPolicy.js.map +1 -0
  120. package/dist/react-native/clientDefinitions.d.ts.map +1 -1
  121. package/dist/react-native/clientDefinitions.js +1 -1
  122. package/dist/react-native/clientDefinitions.js.map +1 -1
  123. package/dist/react-native/constants.d.ts +2 -0
  124. package/dist/react-native/constants.d.ts.map +1 -0
  125. package/dist/react-native/constants.js +4 -0
  126. package/dist/react-native/constants.js.map +1 -0
  127. package/dist/react-native/index.js +1 -1
  128. package/dist/react-native/index.js.map +1 -1
  129. package/dist/react-native/isUnexpected.js +2 -3
  130. package/dist/react-native/isUnexpected.js.map +1 -1
  131. package/dist/react-native/logger.js +1 -1
  132. package/dist/react-native/logger.js.map +1 -1
  133. package/dist/react-native/modelClient.d.ts.map +1 -1
  134. package/dist/react-native/modelClient.js +10 -3
  135. package/dist/react-native/modelClient.js.map +1 -1
  136. package/dist/react-native/models.d.ts +36 -35
  137. package/dist/react-native/models.d.ts.map +1 -1
  138. package/dist/react-native/models.js +1 -1
  139. package/dist/react-native/models.js.map +1 -1
  140. package/dist/react-native/outputModels.d.ts +17 -26
  141. package/dist/react-native/outputModels.d.ts.map +1 -1
  142. package/dist/react-native/outputModels.js +1 -1
  143. package/dist/react-native/outputModels.js.map +1 -1
  144. package/dist/react-native/parameters.d.ts +6 -0
  145. package/dist/react-native/parameters.d.ts.map +1 -1
  146. package/dist/react-native/parameters.js +1 -1
  147. package/dist/react-native/parameters.js.map +1 -1
  148. package/dist/react-native/responses.d.ts.map +1 -1
  149. package/dist/react-native/responses.js +1 -1
  150. package/dist/react-native/responses.js.map +1 -1
  151. package/dist/react-native/tracingHelper.d.ts +9 -0
  152. package/dist/react-native/tracingHelper.d.ts.map +1 -0
  153. package/dist/react-native/tracingHelper.js +198 -0
  154. package/dist/react-native/tracingHelper.js.map +1 -0
  155. package/dist/react-native/tracingPolicy.d.ts +12 -0
  156. package/dist/react-native/tracingPolicy.d.ts.map +1 -0
  157. package/dist/react-native/tracingPolicy.js +68 -0
  158. package/dist/react-native/tracingPolicy.js.map +1 -0
  159. package/package.json +23 -22
package/README.md CHANGED
@@ -223,7 +223,7 @@ async function main(){
223
223
  }
224
224
  for (const choice of response.body.choices) {
225
225
  const completion = choice.message.content;
226
- console.log(`Input: ${examplePrompts[promptIndex++]}`);
226
+ console.log(`Input: ${messages[promptIndex++].content}`);
227
227
  console.log(`Chatbot: ${completion}`);
228
228
  }
229
229
  }
@@ -251,7 +251,7 @@ async function main(){
251
251
  ""As a layman I would say: 'I think we have it'. Would you agree?"" Rolf-Dieter Heuer, CERN's director-general, asked the packed auditorium. The physicists assembled there burst into applause.
252
252
  :`;
253
253
 
254
- const summarizationPrompt = [`
254
+ const summarizationPrompt = `
255
255
  Summarize the following text.
256
256
 
257
257
  Text:
@@ -260,7 +260,7 @@ async function main(){
260
260
  """"""
261
261
 
262
262
  Summary:
263
- `];
263
+ `;
264
264
 
265
265
  console.log(`Input: ${summarizationPrompt}`);
266
266
 
@@ -354,7 +354,7 @@ context -- including the original system and user messages, the response from th
354
354
  calls, and the tool messages that resolved each of those tools -- when making a subsequent request.
355
355
 
356
356
  ```js
357
- const choice = result.choices[0];
357
+ const choice = result.body.choices[0];
358
358
  const responseMessage = choice.message;
359
359
  if (responseMessage?.role === "assistant") {
360
360
  const requestedToolCalls = responseMessage?.toolCalls;
@@ -446,6 +446,83 @@ data: length=1024, [0.04196167, 0.029083252, ..., -0.0027484894, 0.0073127747]
446
446
 
447
447
  To generate embeddings for additional phrases, simply call `client.path("/embeddings").post` multiple times using the same `client`.
448
448
 
449
+ ### Instrumentation
450
+ Currently instrumentation is only supported for `Chat Completion without streaming`.
451
+ To enable instrumentation, it is required to register exporter(s).
452
+
453
+ Here is an example to add console as a exporter:
454
+ ```js
455
+ import { ConsoleSpanExporter, NodeTracerProvider, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-node";
456
+
457
+ const provider = new NodeTracerProvider();
458
+ provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
459
+ provider.register();
460
+
461
+ ```
462
+
463
+ Here is an example to add application insight to be a exporter:
464
+
465
+ ```js
466
+ import { NodeTracerProvider, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-node";
467
+ import { AzureMonitorTraceExporter } from "@azure/monitor-opentelemetry-exporter";
468
+
469
+ // provide a connection string
470
+ const connectionString = "<connection string>";
471
+
472
+ const provider = new NodeTracerProvider();
473
+ if (connectionString) {
474
+ const exporter = new AzureMonitorTraceExporter({ connectionString });
475
+ provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
476
+ }
477
+ provider.register();
478
+ ```
479
+
480
+ In addition, you need to register to use instrumentation for Azure SDK. You must do this before you import any dependency of `@azure-core-tracing`
481
+
482
+ ```js
483
+ import { registerInstrumentations } from "@opentelemetry/instrumentation";
484
+ import { createAzureSdkInstrumentation } from "@azure/opentelemetry-instrumentation-azure-sdk";
485
+
486
+ registerInstrumentations({
487
+ instrumentations: [createAzureSdkInstrumentation()],
488
+ });
489
+ ```
490
+
491
+ Finally when you are making a call for chat completion, you need to include
492
+ ```js
493
+ tracingOptions: { tracingContext: context.active() }
494
+ ```
495
+ Here is an example:
496
+
497
+ ```js
498
+ import { context } from "@opentelemetry/api";
499
+ client.path("/chat/completions").post({
500
+ body: {...},
501
+ tracingOptions: { tracingContext: context.active() }
502
+ });
503
+ ```
504
+
505
+ ### Tracing Your Own Functions
506
+ Open Telemetry provides `startActiveSpan` to instrument you own code. Here is an example:
507
+
508
+ ```js
509
+ import { trace } from "@opentelemetry/api";
510
+ const tracer = trace.getTracer("sample", "0.1.0");
511
+
512
+ const getWeatherFunc = (location: string, unit: string): string => {
513
+ return tracer.startActiveSpan("getWeatherFunc", span => {
514
+ if (unit !== "celsius") {
515
+ unit = "fahrenheit";
516
+ }
517
+ const result = `The temperature in ${location} is 72 degrees ${unit}`;
518
+ span.setAttribute("result", result);
519
+ span.end();
520
+ return result;
521
+ });
522
+ }
523
+ ```
524
+
525
+
449
526
  ## Troubleshooting
450
527
 
451
528
  ### Logging
@@ -1 +1 @@
1
- {"version":3,"file":"clientDefinitions.d.ts","sourceRoot":"","sources":["../../src/clientDefinitions.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,IAAI,CACF,OAAO,CAAC,EAAE,4BAA4B,GACrC,gBAAgB,CACjB,6BAA6B,GAAG,iCAAiC,CAClE,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,GAAG,CACD,OAAO,CAAC,EAAE,sBAAsB,GAC/B,gBAAgB,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CACF,OAAO,CAAC,EAAE,uBAAuB,GAChC,gBAAgB,CAAC,wBAAwB,GAAG,4BAA4B,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,CACF,OAAO,CAAC,EAAE,4BAA4B,GACrC,gBAAgB,CACjB,6BAA6B,GAAG,iCAAiC,CAClE,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,iFAAiF;IACjF,CAAC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,oEAAoE;IACpE,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,2EAA2E;IAC3E,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC;IACrC,kFAAkF;IAClF,CAAC,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,CAAC;CAClD;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"clientDefinitions.d.ts","sourceRoot":"","sources":["../../src/clientDefinitions.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,IAAI,CACF,OAAO,CAAC,EAAE,4BAA4B,GACrC,gBAAgB,CAAC,6BAA6B,GAAG,iCAAiC,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,GAAG,CACD,OAAO,CAAC,EAAE,sBAAsB,GAC/B,gBAAgB,CAAC,uBAAuB,GAAG,2BAA2B,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,IAAI,CACF,OAAO,CAAC,EAAE,uBAAuB,GAChC,gBAAgB,CAAC,wBAAwB,GAAG,4BAA4B,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,CACF,OAAO,CAAC,EAAE,4BAA4B,GACrC,gBAAgB,CAAC,6BAA6B,GAAG,iCAAiC,CAAC,CAAC;CACxF;AAED,MAAM,WAAW,MAAM;IACrB,iFAAiF;IACjF,CAAC,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,oEAAoE;IACpE,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,2EAA2E;IAC3E,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa,CAAC;IACrC,kFAAkF;IAClF,CAAC,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,CAAC;CAClD;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  export {};
4
4
  //# sourceMappingURL=clientDefinitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientDefinitions.js","sourceRoot":"","sources":["../../src/clientDefinitions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n GetChatCompletionsParameters,\n GetModelInfoParameters,\n GetEmbeddingsParameters,\n GetImageEmbeddingsParameters,\n} from \"./parameters.js\";\nimport {\n GetChatCompletions200Response,\n GetChatCompletionsDefaultResponse,\n GetModelInfo200Response,\n GetModelInfoDefaultResponse,\n GetEmbeddings200Response,\n GetEmbeddingsDefaultResponse,\n GetImageEmbeddings200Response,\n GetImageEmbeddingsDefaultResponse,\n} from \"./responses.js\";\nimport { Client, StreamableMethod } from \"@azure-rest/core-client\";\n\nexport interface GetChatCompletions {\n /**\n * Gets chat completions for the provided chat messages.\n * Completions support a wide variety of tasks and generate text that continues from or \"completes\"\n * provided prompt data. The method makes a REST API call to the `/chat/completions` route\n * on the given endpoint.\n */\n post(\n options?: GetChatCompletionsParameters,\n ): StreamableMethod<\n GetChatCompletions200Response | GetChatCompletionsDefaultResponse\n >;\n}\n\nexport interface GetModelInfo {\n /**\n * Returns information about the AI model.\n * The method makes a REST API call to the `/info` route on the given endpoint.\n */\n get(\n options?: GetModelInfoParameters,\n ): StreamableMethod<GetModelInfo200Response | GetModelInfoDefaultResponse>;\n}\n\nexport interface GetEmbeddings {\n /**\n * Return the embedding vectors for given text prompts.\n * The method makes a REST API call to the `/embeddings` route on the given endpoint.\n */\n post(\n options?: GetEmbeddingsParameters,\n ): StreamableMethod<GetEmbeddings200Response | GetEmbeddingsDefaultResponse>;\n}\n\nexport interface GetImageEmbeddings {\n /**\n * Return the embedding vectors for given images.\n * The method makes a REST API call to the `/images/embeddings` route on the given endpoint.\n */\n post(\n options?: GetImageEmbeddingsParameters,\n ): StreamableMethod<\n GetImageEmbeddings200Response | GetImageEmbeddingsDefaultResponse\n >;\n}\n\nexport interface Routes {\n /** Resource for '/chat/completions' has methods for the following verbs: post */\n (path: \"/chat/completions\"): GetChatCompletions;\n /** Resource for '/info' has methods for the following verbs: get */\n (path: \"/info\"): GetModelInfo;\n /** Resource for '/embeddings' has methods for the following verbs: post */\n (path: \"/embeddings\"): GetEmbeddings;\n /** Resource for '/images/embeddings' has methods for the following verbs: post */\n (path: \"/images/embeddings\"): GetImageEmbeddings;\n}\n\nexport type ModelClient = Client & {\n path: Routes;\n};\n"]}
1
+ {"version":3,"file":"clientDefinitions.js","sourceRoot":"","sources":["../../src/clientDefinitions.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n GetChatCompletionsParameters,\n GetModelInfoParameters,\n GetEmbeddingsParameters,\n GetImageEmbeddingsParameters,\n} from \"./parameters.js\";\nimport {\n GetChatCompletions200Response,\n GetChatCompletionsDefaultResponse,\n GetModelInfo200Response,\n GetModelInfoDefaultResponse,\n GetEmbeddings200Response,\n GetEmbeddingsDefaultResponse,\n GetImageEmbeddings200Response,\n GetImageEmbeddingsDefaultResponse,\n} from \"./responses.js\";\nimport { Client, StreamableMethod } from \"@azure-rest/core-client\";\n\nexport interface GetChatCompletions {\n /**\n * Gets chat completions for the provided chat messages.\n * Completions support a wide variety of tasks and generate text that continues from or \"completes\"\n * provided prompt data. The method makes a REST API call to the `/chat/completions` route\n * on the given endpoint.\n */\n post(\n options?: GetChatCompletionsParameters,\n ): StreamableMethod<GetChatCompletions200Response | GetChatCompletionsDefaultResponse>;\n}\n\nexport interface GetModelInfo {\n /**\n * Returns information about the AI model.\n * The method makes a REST API call to the `/info` route on the given endpoint.\n */\n get(\n options?: GetModelInfoParameters,\n ): StreamableMethod<GetModelInfo200Response | GetModelInfoDefaultResponse>;\n}\n\nexport interface GetEmbeddings {\n /**\n * Return the embedding vectors for given text prompts.\n * The method makes a REST API call to the `/embeddings` route on the given endpoint.\n */\n post(\n options?: GetEmbeddingsParameters,\n ): StreamableMethod<GetEmbeddings200Response | GetEmbeddingsDefaultResponse>;\n}\n\nexport interface GetImageEmbeddings {\n /**\n * Return the embedding vectors for given images.\n * The method makes a REST API call to the `/images/embeddings` route on the given endpoint.\n */\n post(\n options?: GetImageEmbeddingsParameters,\n ): StreamableMethod<GetImageEmbeddings200Response | GetImageEmbeddingsDefaultResponse>;\n}\n\nexport interface Routes {\n /** Resource for '/chat/completions' has methods for the following verbs: post */\n (path: \"/chat/completions\"): GetChatCompletions;\n /** Resource for '/info' has methods for the following verbs: get */\n (path: \"/info\"): GetModelInfo;\n /** Resource for '/embeddings' has methods for the following verbs: post */\n (path: \"/embeddings\"): GetEmbeddings;\n /** Resource for '/images/embeddings' has methods for the following verbs: post */\n (path: \"/images/embeddings\"): GetImageEmbeddings;\n}\n\nexport type ModelClient = Client & {\n path: Routes;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const SDK_VERSION: string;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,EAAE,MAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ export const SDK_VERSION = "1.0.0-beta.3";
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,CAAC,MAAM,WAAW,GAAW,cAAc,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport const SDK_VERSION: string = \"1.0.0-beta.3\";\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import ModelClient from "./modelClient.js";
4
4
  export * from "./modelClient.js";
5
5
  export * from "./parameters.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAElC,eAAe,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport ModelClient from \"./modelClient.js\";\n\nexport * from \"./modelClient.js\";\nexport * from \"./parameters.js\";\nexport * from \"./responses.js\";\nexport * from \"./clientDefinitions.js\";\nexport * from \"./isUnexpected.js\";\nexport * from \"./models.js\";\nexport * from \"./outputModels.js\";\n\nexport default ModelClient;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAElC,eAAe,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport ModelClient from \"./modelClient.js\";\n\nexport * from \"./modelClient.js\";\nexport * from \"./parameters.js\";\nexport * from \"./responses.js\";\nexport * from \"./clientDefinitions.js\";\nexport * from \"./isUnexpected.js\";\nexport * from \"./models.js\";\nexport * from \"./outputModels.js\";\n\nexport default ModelClient;\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  const responseMap = {
4
4
  "POST /chat/completions": ["200"],
5
5
  "GET /info": ["200"],
@@ -36,8 +36,7 @@ function getParametrizedPathSuccess(method, path) {
36
36
  // track if we have found a match to return the values found.
37
37
  let found = true;
38
38
  for (let i = candidateParts.length - 1, j = pathParts.length - 1; i >= 1 && j >= 1; i--, j--) {
39
- if (((_a = candidateParts[i]) === null || _a === void 0 ? void 0 : _a.startsWith("{")) &&
40
- ((_b = candidateParts[i]) === null || _b === void 0 ? void 0 : _b.indexOf("}")) !== -1) {
39
+ if (((_a = candidateParts[i]) === null || _a === void 0 ? void 0 : _a.startsWith("{")) && ((_b = candidateParts[i]) === null || _b === void 0 ? void 0 : _b.indexOf("}")) !== -1) {
41
40
  const start = candidateParts[i].indexOf("}") + 1, end = (_c = candidateParts[i]) === null || _c === void 0 ? void 0 : _c.length;
42
41
  // If the current part of the candidate is a "template" part
43
42
  // Try to use the suffix of pattern to match the path
@@ -1 +1 @@
1
- {"version":3,"file":"isUnexpected.js","sourceRoot":"","sources":["../../src/isUnexpected.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n GetChatCompletions200Response,\n GetChatCompletionsDefaultResponse,\n GetModelInfo200Response,\n GetModelInfoDefaultResponse,\n GetEmbeddings200Response,\n GetEmbeddingsDefaultResponse,\n GetImageEmbeddings200Response,\n GetImageEmbeddingsDefaultResponse,\n} from \"./responses.js\";\n\nconst responseMap: Record<string, string[]> = {\n \"POST /chat/completions\": [\"200\"],\n \"GET /info\": [\"200\"],\n \"POST /embeddings\": [\"200\"],\n \"POST /images/embeddings\": [\"200\"],\n};\n\nexport function isUnexpected(\n response: GetChatCompletions200Response | GetChatCompletionsDefaultResponse,\n): response is GetChatCompletionsDefaultResponse;\nexport function isUnexpected(\n response: GetModelInfo200Response | GetModelInfoDefaultResponse,\n): response is GetModelInfoDefaultResponse;\nexport function isUnexpected(\n response: GetEmbeddings200Response | GetEmbeddingsDefaultResponse,\n): response is GetEmbeddingsDefaultResponse;\nexport function isUnexpected(\n response: GetImageEmbeddings200Response | GetImageEmbeddingsDefaultResponse,\n): response is GetImageEmbeddingsDefaultResponse;\nexport function isUnexpected(\n response:\n | GetChatCompletions200Response\n | GetChatCompletionsDefaultResponse\n | GetModelInfo200Response\n | GetModelInfoDefaultResponse\n | GetEmbeddings200Response\n | GetEmbeddingsDefaultResponse\n | GetImageEmbeddings200Response\n | GetImageEmbeddingsDefaultResponse,\n): response is\n | GetChatCompletionsDefaultResponse\n | GetModelInfoDefaultResponse\n | GetEmbeddingsDefaultResponse\n | GetImageEmbeddingsDefaultResponse {\n const lroOriginal = response.headers[\"x-ms-original-url\"];\n const url = new URL(lroOriginal ?? response.request.url);\n const method = response.request.method;\n let pathDetails = responseMap[`${method} ${url.pathname}`];\n if (!pathDetails) {\n pathDetails = getParametrizedPathSuccess(method, url.pathname);\n }\n return !pathDetails.includes(response.status);\n}\n\nfunction getParametrizedPathSuccess(method: string, path: string): string[] {\n const pathParts = path.split(\"/\");\n\n // Traverse list to match the longest candidate\n // matchedLen: the length of candidate path\n // matchedValue: the matched status code array\n let matchedLen = -1,\n matchedValue: string[] = [];\n\n // Iterate the responseMap to find a match\n for (const [key, value] of Object.entries(responseMap)) {\n // Extracting the path from the map key which is in format\n // GET /path/foo\n if (!key.startsWith(method)) {\n continue;\n }\n const candidatePath = getPathFromMapKey(key);\n // Get each part of the url path\n const candidateParts = candidatePath.split(\"/\");\n\n // track if we have found a match to return the values found.\n let found = true;\n for (\n let i = candidateParts.length - 1, j = pathParts.length - 1;\n i >= 1 && j >= 1;\n i--, j--\n ) {\n if (\n candidateParts[i]?.startsWith(\"{\") &&\n candidateParts[i]?.indexOf(\"}\") !== -1\n ) {\n const start = candidateParts[i]!.indexOf(\"}\") + 1,\n end = candidateParts[i]?.length;\n // If the current part of the candidate is a \"template\" part\n // Try to use the suffix of pattern to match the path\n // {guid} ==> $\n // {guid}:export ==> :export$\n const isMatched = new RegExp(\n `${candidateParts[i]?.slice(start, end)}`,\n ).test(pathParts[j] || \"\");\n\n if (!isMatched) {\n found = false;\n break;\n }\n continue;\n }\n\n // If the candidate part is not a template and\n // the parts don't match mark the candidate as not found\n // to move on with the next candidate path.\n if (candidateParts[i] !== pathParts[j]) {\n found = false;\n break;\n }\n }\n\n // We finished evaluating the current candidate parts\n // Update the matched value if and only if we found the longer pattern\n if (found && candidatePath.length > matchedLen) {\n matchedLen = candidatePath.length;\n matchedValue = value;\n }\n }\n\n return matchedValue;\n}\n\nfunction getPathFromMapKey(mapKey: string): string {\n const pathStart = mapKey.indexOf(\"/\");\n return mapKey.slice(pathStart);\n}\n"]}
1
+ {"version":3,"file":"isUnexpected.js","sourceRoot":"","sources":["../../src/isUnexpected.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n GetChatCompletions200Response,\n GetChatCompletionsDefaultResponse,\n GetModelInfo200Response,\n GetModelInfoDefaultResponse,\n GetEmbeddings200Response,\n GetEmbeddingsDefaultResponse,\n GetImageEmbeddings200Response,\n GetImageEmbeddingsDefaultResponse,\n} from \"./responses.js\";\n\nconst responseMap: Record<string, string[]> = {\n \"POST /chat/completions\": [\"200\"],\n \"GET /info\": [\"200\"],\n \"POST /embeddings\": [\"200\"],\n \"POST /images/embeddings\": [\"200\"],\n};\n\nexport function isUnexpected(\n response: GetChatCompletions200Response | GetChatCompletionsDefaultResponse,\n): response is GetChatCompletionsDefaultResponse;\nexport function isUnexpected(\n response: GetModelInfo200Response | GetModelInfoDefaultResponse,\n): response is GetModelInfoDefaultResponse;\nexport function isUnexpected(\n response: GetEmbeddings200Response | GetEmbeddingsDefaultResponse,\n): response is GetEmbeddingsDefaultResponse;\nexport function isUnexpected(\n response: GetImageEmbeddings200Response | GetImageEmbeddingsDefaultResponse,\n): response is GetImageEmbeddingsDefaultResponse;\nexport function isUnexpected(\n response:\n | GetChatCompletions200Response\n | GetChatCompletionsDefaultResponse\n | GetModelInfo200Response\n | GetModelInfoDefaultResponse\n | GetEmbeddings200Response\n | GetEmbeddingsDefaultResponse\n | GetImageEmbeddings200Response\n | GetImageEmbeddingsDefaultResponse,\n): response is\n | GetChatCompletionsDefaultResponse\n | GetModelInfoDefaultResponse\n | GetEmbeddingsDefaultResponse\n | GetImageEmbeddingsDefaultResponse {\n const lroOriginal = response.headers[\"x-ms-original-url\"];\n const url = new URL(lroOriginal ?? response.request.url);\n const method = response.request.method;\n let pathDetails = responseMap[`${method} ${url.pathname}`];\n if (!pathDetails) {\n pathDetails = getParametrizedPathSuccess(method, url.pathname);\n }\n return !pathDetails.includes(response.status);\n}\n\nfunction getParametrizedPathSuccess(method: string, path: string): string[] {\n const pathParts = path.split(\"/\");\n\n // Traverse list to match the longest candidate\n // matchedLen: the length of candidate path\n // matchedValue: the matched status code array\n let matchedLen = -1,\n matchedValue: string[] = [];\n\n // Iterate the responseMap to find a match\n for (const [key, value] of Object.entries(responseMap)) {\n // Extracting the path from the map key which is in format\n // GET /path/foo\n if (!key.startsWith(method)) {\n continue;\n }\n const candidatePath = getPathFromMapKey(key);\n // Get each part of the url path\n const candidateParts = candidatePath.split(\"/\");\n\n // track if we have found a match to return the values found.\n let found = true;\n for (let i = candidateParts.length - 1, j = pathParts.length - 1; i >= 1 && j >= 1; i--, j--) {\n if (candidateParts[i]?.startsWith(\"{\") && candidateParts[i]?.indexOf(\"}\") !== -1) {\n const start = candidateParts[i]!.indexOf(\"}\") + 1,\n end = candidateParts[i]?.length;\n // If the current part of the candidate is a \"template\" part\n // Try to use the suffix of pattern to match the path\n // {guid} ==> $\n // {guid}:export ==> :export$\n const isMatched = new RegExp(`${candidateParts[i]?.slice(start, end)}`).test(\n pathParts[j] || \"\",\n );\n\n if (!isMatched) {\n found = false;\n break;\n }\n continue;\n }\n\n // If the candidate part is not a template and\n // the parts don't match mark the candidate as not found\n // to move on with the next candidate path.\n if (candidateParts[i] !== pathParts[j]) {\n found = false;\n break;\n }\n }\n\n // We finished evaluating the current candidate parts\n // Update the matched value if and only if we found the longer pattern\n if (found && candidatePath.length > matchedLen) {\n matchedLen = candidatePath.length;\n matchedValue = value;\n }\n }\n\n return matchedValue;\n}\n\nfunction getPathFromMapKey(mapKey: string): string {\n const pathStart = mapKey.indexOf(\"/\");\n return mapKey.slice(pathStart);\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { createClientLogger } from "@azure/logger";
4
4
  export const logger = createClientLogger("ai-inference");
5
5
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"ai-inference\");\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { createClientLogger } from \"@azure/logger\";\nexport const logger = createClientLogger(\"ai-inference\");\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"modelClient.d.ts","sourceRoot":"","sources":["../../src/modelClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EACL,eAAe,EACf,aAAa,EAEd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,6CAA6C;AAC7C,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,eAAe,GAAG,aAAa,EAC5C,EAAE,UAAiC,EAAE,GAAG,OAAO,EAAE,GAAE,kBAAuB,GACzE,WAAW,CAgDb"}
1
+ {"version":3,"file":"modelClient.d.ts","sourceRoot":"","sources":["../../src/modelClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,6CAA6C;AAC7C,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,eAAe,GAAG,aAAa,EAC5C,EAAE,UAAiC,EAAE,GAAG,OAAO,EAAE,GAAE,kBAAuB,GACzE,WAAW,CAwDb"}
@@ -1,9 +1,10 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  import { __rest } from "tslib";
4
4
  import { getClient } from "@azure-rest/core-client";
5
5
  import { logger } from "./logger.js";
6
- import { isKeyCredential, } from "@azure/core-auth";
6
+ import { isKeyCredential } from "@azure/core-auth";
7
+ import { tracingPolicy } from "./tracingPolicy.js";
7
8
  /**
8
9
  * Initialize a new instance of `ModelClient`
9
10
  * @param endpointParam - The parameter endpointParam
@@ -14,7 +15,7 @@ export default function createClient(endpointParam, credentials, _a = {}) {
14
15
  var _b, _c, _d, _e, _f, _g, _h, _j;
15
16
  var { apiVersion = "2024-05-01-preview" } = _a, options = __rest(_a, ["apiVersion"]);
16
17
  const endpointUrl = (_c = (_b = options.endpoint) !== null && _b !== void 0 ? _b : options.baseUrl) !== null && _c !== void 0 ? _c : `${endpointParam}`;
17
- const userAgentInfo = `azsdk-js-AiModelInference-rest/1.0.0-beta.2`;
18
+ const userAgentInfo = `azsdk-js-ai-inference/1.0.0-beta.2`;
18
19
  const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
19
20
  ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`
20
21
  : `${userAgentInfo}`;
@@ -28,6 +29,12 @@ export default function createClient(endpointParam, credentials, _a = {}) {
28
29
  } });
29
30
  const client = getClient(endpointUrl, credentials, options);
30
31
  client.pipeline.removePolicy({ name: "ApiVersionPolicy" });
32
+ client.pipeline.addPolicy({
33
+ name: "InferenceTracingPolicy",
34
+ sendRequest: (req, next) => {
35
+ return tracingPolicy().sendRequest(req, next);
36
+ },
37
+ });
31
38
  client.pipeline.addPolicy({
32
39
  name: "ClientApiVersionPolicy",
33
40
  sendRequest: (req, next) => {
@@ -1 +1 @@
1
- {"version":3,"file":"modelClient.js","sourceRoot":"","sources":["../../src/modelClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAAE,SAAS,EAAiB,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAGL,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAS1B;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,aAAqB,EACrB,WAA4C,EAC5C,KAAwE,EAAE;;QAA1E,EAAE,UAAU,GAAG,oBAAoB,OAAuC,EAAlC,OAAO,cAA/C,cAAiD,CAAF;IAE/C,MAAM,WAAW,GAAG,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,OAAO,mCAAI,GAAG,aAAa,EAAE,CAAC;IAC9E,MAAM,aAAa,GAAG,6CAA6C,CAAC;IACpE,MAAM,eAAe,GACnB,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,eAAe;QAClE,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,IAAI,aAAa,EAAE;QAChE,CAAC,CAAC,GAAG,aAAa,EAAE,CAAC;IACzB,OAAO,mCACF,OAAO,KACV,gBAAgB,EAAE;YAChB,eAAe;SAChB,EACD,cAAc,EAAE;YACd,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,MAAM,mCAAI,MAAM,CAAC,IAAI;SACtD,EACD,WAAW,EAAE;YACX,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,MAAM,mCAAI,CAAC,+BAA+B,CAAC;YACxE,gBAAgB,EAAE,MAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,gBAAgB,mCAAI,SAAS;SACrE,GACF,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAgB,CAAC;IAE3E,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE,CAAC;gBACvD,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAC5E,eAAe,UAAU,EAAE,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YACxB,IAAI,EAAE,2BAA2B;YACjC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI;gBAC7B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { getClient, ClientOptions } from \"@azure-rest/core-client\";\nimport { logger } from \"./logger.js\";\nimport {\n TokenCredential,\n KeyCredential,\n isKeyCredential,\n} from \"@azure/core-auth\";\nimport { ModelClient } from \"./clientDefinitions.js\";\n\n/** The optional parameters for the client */\nexport interface ModelClientOptions extends ClientOptions {\n /** The api version option of the client */\n apiVersion?: string;\n}\n\n/**\n * Initialize a new instance of `ModelClient`\n * @param endpointParam - The parameter endpointParam\n * @param credentials - uniquely identify client credential\n * @param options - the parameter for all optional parameters\n */\nexport default function createClient(\n endpointParam: string,\n credentials: TokenCredential | KeyCredential,\n { apiVersion = \"2024-05-01-preview\", ...options }: ModelClientOptions = {},\n): ModelClient {\n const endpointUrl = options.endpoint ?? options.baseUrl ?? `${endpointParam}`;\n const userAgentInfo = `azsdk-js-AiModelInference-rest/1.0.0-beta.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`\n : `${userAgentInfo}`;\n options = {\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n loggingOptions: {\n logger: options.loggingOptions?.logger ?? logger.info,\n },\n credentials: {\n scopes: options.credentials?.scopes ?? [\"https://ml.azure.com/.default\"],\n apiKeyHeaderName: options.credentials?.apiKeyHeaderName ?? \"api-key\",\n },\n };\n const client = getClient(endpointUrl, credentials, options) as ModelClient;\n\n client.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n client.pipeline.addPolicy({\n name: \"ClientApiVersionPolicy\",\n sendRequest: (req, next) => {\n // Use the apiVersion defined in request url directly\n // Append one if there is no apiVersion and we have one at client options\n const url = new URL(req.url);\n if (!url.searchParams.get(\"api-version\") && apiVersion) {\n req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n\n return next(req);\n },\n });\n if (isKeyCredential(credentials)) {\n client.pipeline.addPolicy({\n name: \"customKeyCredentialPolicy\",\n async sendRequest(request, next) {\n request.headers.set(\"Authorization\", \"Bearer \" + credentials.key);\n return next(request);\n },\n });\n }\n\n return client;\n}\n"]}
1
+ {"version":3,"file":"modelClient.js","sourceRoot":"","sources":["../../src/modelClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { getClient, ClientOptions } from \"@azure-rest/core-client\";\nimport { logger } from \"./logger.js\";\nimport { TokenCredential, KeyCredential, isKeyCredential } from \"@azure/core-auth\";\nimport { ModelClient } from \"./clientDefinitions.js\";\nimport { tracingPolicy } from \"./tracingPolicy.js\";\n\n/** The optional parameters for the client */\nexport interface ModelClientOptions extends ClientOptions {\n /** The api version option of the client */\n apiVersion?: string;\n}\n\n/**\n * Initialize a new instance of `ModelClient`\n * @param endpointParam - The parameter endpointParam\n * @param credentials - uniquely identify client credential\n * @param options - the parameter for all optional parameters\n */\nexport default function createClient(\n endpointParam: string,\n credentials: TokenCredential | KeyCredential,\n { apiVersion = \"2024-05-01-preview\", ...options }: ModelClientOptions = {},\n): ModelClient {\n const endpointUrl = options.endpoint ?? options.baseUrl ?? `${endpointParam}`;\n const userAgentInfo = `azsdk-js-ai-inference/1.0.0-beta.2`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`\n : `${userAgentInfo}`;\n options = {\n ...options,\n userAgentOptions: {\n userAgentPrefix,\n },\n loggingOptions: {\n logger: options.loggingOptions?.logger ?? logger.info,\n },\n credentials: {\n scopes: options.credentials?.scopes ?? [\"https://ml.azure.com/.default\"],\n apiKeyHeaderName: options.credentials?.apiKeyHeaderName ?? \"api-key\",\n },\n };\n\n const client = getClient(endpointUrl, credentials, options) as ModelClient;\n\n client.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n client.pipeline.addPolicy({\n name: \"InferenceTracingPolicy\",\n sendRequest: (req, next) => {\n return tracingPolicy().sendRequest(req, next);\n },\n });\n client.pipeline.addPolicy({\n name: \"ClientApiVersionPolicy\",\n sendRequest: (req, next) => {\n // Use the apiVersion defined in request url directly\n // Append one if there is no apiVersion and we have one at client options\n const url = new URL(req.url);\n if (!url.searchParams.get(\"api-version\") && apiVersion) {\n req.url = `${req.url}${\n Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n\n return next(req);\n },\n });\n if (isKeyCredential(credentials)) {\n client.pipeline.addPolicy({\n name: \"customKeyCredentialPolicy\",\n async sendRequest(request, next) {\n request.headers.set(\"Authorization\", \"Bearer \" + credentials.key);\n return next(request);\n },\n });\n }\n\n return client;\n}\n"]}
@@ -44,6 +44,8 @@ export interface ChatMessageImageUrl {
44
44
  /**
45
45
  * The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and
46
46
  * accuracy.
47
+ *
48
+ * Possible values: "auto", "low", "high"
47
49
  */
48
50
  detail?: ChatMessageImageDetailLevel;
49
51
  }
@@ -59,23 +61,13 @@ export interface ChatRequestAssistantMessage extends ChatRequestMessageParent {
59
61
  */
60
62
  tool_calls?: Array<ChatCompletionsToolCall>;
61
63
  }
62
- /**
63
- * An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested
64
- * chat completion.
65
- */
66
- export interface ChatCompletionsToolCallParent {
64
+ /** A function tool call requested by the AI model. */
65
+ export interface ChatCompletionsToolCall {
67
66
  /** The ID of the tool call. */
68
67
  id: string;
69
- type: string;
70
- }
71
- /**
72
- * A tool call to a function tool, issued by the model in evaluation of a configured function tool, that represents
73
- * a function invocation needed for a subsequent chat completions request to resolve.
74
- */
75
- export interface ChatCompletionsFunctionToolCall extends ChatCompletionsToolCallParent {
76
- /** The type of tool call, in this case always 'function'. */
68
+ /** The type of tool call. Currently, only `function` is supported. */
77
69
  type: "function";
78
- /** The details of the function invocation requested by the tool call. */
70
+ /** The details of the function call requested by the AI model. */
79
71
  function: FunctionCall;
80
72
  }
81
73
  /** The name and arguments of a function that should be called, as generated by the model. */
@@ -99,13 +91,31 @@ export interface ChatRequestToolMessage extends ChatRequestMessageParent {
99
91
  /** The ID of the tool call resolved by the provided content. */
100
92
  tool_call_id: string;
101
93
  }
102
- /** An abstract representation of a tool that can be used by the model to improve a chat completions response. */
103
- export interface ChatCompletionsToolDefinitionParent {
94
+ /**
95
+ * Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode.
96
+ * Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON
97
+ * via a system or user message.
98
+ */
99
+ export interface ChatCompletionsResponseFormatParent {
104
100
  type: string;
105
101
  }
106
- /** The definition information for a chat completions function tool that can call a function in response to a tool call. */
107
- export interface ChatCompletionsFunctionToolDefinition extends ChatCompletionsToolDefinitionParent {
108
- /** The object name, which is always 'function'. */
102
+ /** A response format for Chat Completions that emits text responses. This is the default response format. */
103
+ export interface ChatCompletionsResponseFormatText extends ChatCompletionsResponseFormatParent {
104
+ /** Response format type: always 'text' for this object. */
105
+ type: "text";
106
+ }
107
+ /**
108
+ * A response format for Chat Completions that restricts responses to emitting valid JSON objects.
109
+ * Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON
110
+ * via a system or user message.
111
+ */
112
+ export interface ChatCompletionsResponseFormatJSON extends ChatCompletionsResponseFormatParent {
113
+ /** Response format type: always 'json_object' for this object. */
114
+ type: "json_object";
115
+ }
116
+ /** The definition of a chat completions tool that can call a function. */
117
+ export interface ChatCompletionsToolDefinition {
118
+ /** The type of the tool. Currently, only `function` is supported. */
109
119
  type: "function";
110
120
  /** The function definition details for the function tool. */
111
121
  function: FunctionDefinition;
@@ -122,13 +132,9 @@ export interface FunctionDefinition {
122
132
  /** The parameters the function accepts, described as a JSON Schema object. */
123
133
  parameters?: unknown;
124
134
  }
125
- /** An abstract representation of an explicit, named tool selection to use for a chat completions request. */
126
- export interface ChatCompletionsNamedToolSelectionParent {
127
- type: string;
128
- }
129
135
  /** A tool selection of a specific, named function tool that will limit chat completions to using the named function. */
130
- export interface ChatCompletionsNamedFunctionToolSelection extends ChatCompletionsNamedToolSelectionParent {
131
- /** The object type, which is always 'function'. */
136
+ export interface ChatCompletionsNamedToolSelection {
137
+ /** The type of the tool. Currently, only `function` is supported. */
132
138
  type: "function";
133
139
  /** The function that should be called. */
134
140
  function: ChatCompletionsFunctionToolSelection;
@@ -153,24 +159,19 @@ export type ChatRequestMessage = ChatRequestMessageParent | ChatRequestSystemMes
153
159
  /** An abstract representation of a structured content item within a chat message. */
154
160
  export type ChatMessageContentItem = ChatMessageContentItemParent | ChatMessageTextContentItem | ChatMessageImageContentItem;
155
161
  /**
156
- * An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested
157
- * chat completion.
162
+ * Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode.
163
+ * Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON
164
+ * via a system or user message.
158
165
  */
159
- export type ChatCompletionsToolCall = ChatCompletionsToolCallParent | ChatCompletionsFunctionToolCall;
160
- /** An abstract representation of a tool that can be used by the model to improve a chat completions response. */
161
- export type ChatCompletionsToolDefinition = ChatCompletionsToolDefinitionParent | ChatCompletionsFunctionToolDefinition;
162
- /** An abstract representation of an explicit, named tool selection to use for a chat completions request. */
163
- export type ChatCompletionsNamedToolSelection = ChatCompletionsNamedToolSelectionParent | ChatCompletionsNamedFunctionToolSelection;
166
+ export type ChatCompletionsResponseFormat = ChatCompletionsResponseFormatParent | ChatCompletionsResponseFormatText | ChatCompletionsResponseFormatJSON;
164
167
  /** Alias for ExtraParameters */
165
168
  export type ExtraParameters = string;
166
169
  /** Alias for ChatRole */
167
170
  export type ChatRole = string;
168
171
  /** Alias for ChatMessageImageDetailLevel */
169
172
  export type ChatMessageImageDetailLevel = string;
170
- /** Alias for ChatCompletionsResponseFormat */
171
- export type ChatCompletionsResponseFormat = string;
172
173
  /** Alias for ChatCompletionsToolSelectionPreset */
173
- export type ChatCompletionsToolSelectionPreset = string | "auto" | "none" | "required";
174
+ export type ChatCompletionsToolSelectionPreset = string;
174
175
  /** Alias for EmbeddingEncodingFormat */
175
176
  export type EmbeddingEncodingFormat = string;
176
177
  /** Alias for EmbeddingInputType */
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
2
+ // Licensed under the MIT License.
3
3
  export {};
4
4
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/** An abstract representation of a chat message as provided in a request. */\nexport interface ChatRequestMessageParent {\n role: ChatRole;\n}\n\n/**\n * A request chat message containing system instructions that influence how the model will generate a chat completions\n * response.\n */\nexport interface ChatRequestSystemMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'system' for system messages. */\n role: \"system\";\n /** The contents of the system message. */\n content: string;\n}\n\n/** A request chat message representing user input to the assistant. */\nexport interface ChatRequestUserMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'user' for user messages. */\n role: \"user\";\n /** The contents of the user message, with available input types varying by selected model. */\n content: string | Array<ChatMessageContentItem>;\n}\n\n/** An abstract representation of a structured content item within a chat message. */\nexport interface ChatMessageContentItemParent {\n type: string;\n}\n\n/** A structured chat content item containing plain text. */\nexport interface ChatMessageTextContentItem\n extends ChatMessageContentItemParent {\n /** The discriminated object type: always 'text' for this type. */\n type: \"text\";\n /** The content of the message. */\n text: string;\n}\n\n/** A structured chat content item containing an image reference. */\nexport interface ChatMessageImageContentItem\n extends ChatMessageContentItemParent {\n /** The discriminated object type: always 'image_url' for this type. */\n type: \"image_url\";\n /** An internet location, which must be accessible to the model,from which the image may be retrieved. */\n image_url: ChatMessageImageUrl;\n}\n\n/** An internet location from which the model may retrieve an image. */\nexport interface ChatMessageImageUrl {\n /** The URL of the image. */\n url: string;\n /**\n * The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and\n * accuracy.\n */\n detail?: ChatMessageImageDetailLevel;\n}\n\n/** A request chat message representing response or action from the assistant. */\nexport interface ChatRequestAssistantMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'assistant' for assistant messages. */\n role: \"assistant\";\n /** The content of the message. */\n content?: string | null;\n /**\n * The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\n * completions request to resolve as configured.\n */\n tool_calls?: Array<ChatCompletionsToolCall>;\n}\n\n/**\n * An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested\n * chat completion.\n */\nexport interface ChatCompletionsToolCallParent {\n /** The ID of the tool call. */\n id: string;\n type: string;\n}\n\n/**\n * A tool call to a function tool, issued by the model in evaluation of a configured function tool, that represents\n * a function invocation needed for a subsequent chat completions request to resolve.\n */\nexport interface ChatCompletionsFunctionToolCall\n extends ChatCompletionsToolCallParent {\n /** The type of tool call, in this case always 'function'. */\n type: \"function\";\n /** The details of the function invocation requested by the tool call. */\n function: FunctionCall;\n}\n\n/** The name and arguments of a function that should be called, as generated by the model. */\nexport interface FunctionCall {\n /** The name of the function to call. */\n name: string;\n /**\n * The arguments to call the function with, as generated by the model in JSON format.\n * Note that the model does not always generate valid JSON, and may hallucinate parameters\n * not defined by your function schema. Validate the arguments in your code before calling\n * your function.\n */\n arguments: string;\n}\n\n/** A request chat message representing requested output from a configured tool. */\nexport interface ChatRequestToolMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'tool' for tool messages. */\n role: \"tool\";\n /** The content of the message. */\n content: string | null;\n /** The ID of the tool call resolved by the provided content. */\n tool_call_id: string;\n}\n\n/** An abstract representation of a tool that can be used by the model to improve a chat completions response. */\nexport interface ChatCompletionsToolDefinitionParent {\n type: string;\n}\n\n/** The definition information for a chat completions function tool that can call a function in response to a tool call. */\nexport interface ChatCompletionsFunctionToolDefinition\n extends ChatCompletionsToolDefinitionParent {\n /** The object name, which is always 'function'. */\n type: \"function\";\n /** The function definition details for the function tool. */\n function: FunctionDefinition;\n}\n\n/** The definition of a caller-specified function that chat completions may invoke in response to matching user input. */\nexport interface FunctionDefinition {\n /** The name of the function to be called. */\n name: string;\n /**\n * A description of what the function does. The model will use this description when selecting the function and\n * interpreting its parameters.\n */\n description?: string;\n /** The parameters the function accepts, described as a JSON Schema object. */\n parameters?: unknown;\n}\n\n/** An abstract representation of an explicit, named tool selection to use for a chat completions request. */\nexport interface ChatCompletionsNamedToolSelectionParent {\n type: string;\n}\n\n/** A tool selection of a specific, named function tool that will limit chat completions to using the named function. */\nexport interface ChatCompletionsNamedFunctionToolSelection\n extends ChatCompletionsNamedToolSelectionParent {\n /** The object type, which is always 'function'. */\n type: \"function\";\n /** The function that should be called. */\n function: ChatCompletionsFunctionToolSelection;\n}\n\n/** A tool selection of a specific, named function tool that will limit chat completions to using the named function. */\nexport interface ChatCompletionsFunctionToolSelection {\n /** The name of the function that should be called. */\n name: string;\n}\n\n/** Represents an image with optional text. */\nexport interface ImageEmbeddingInput {\n /** The input image, in PNG format. */\n image: string;\n /**\n * Optional. The text input to feed into the model (like DINO, CLIP).\n * Returns a 422 error if the model doesn't support the value or parameter.\n */\n text?: string;\n}\n\n/** An abstract representation of a chat message as provided in a request. */\nexport type ChatRequestMessage =\n | ChatRequestMessageParent\n | ChatRequestSystemMessage\n | ChatRequestUserMessage\n | ChatRequestAssistantMessage\n | ChatRequestToolMessage;\n/** An abstract representation of a structured content item within a chat message. */\nexport type ChatMessageContentItem =\n | ChatMessageContentItemParent\n | ChatMessageTextContentItem\n | ChatMessageImageContentItem;\n/**\n * An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested\n * chat completion.\n */\nexport type ChatCompletionsToolCall =\n | ChatCompletionsToolCallParent\n | ChatCompletionsFunctionToolCall;\n/** An abstract representation of a tool that can be used by the model to improve a chat completions response. */\nexport type ChatCompletionsToolDefinition =\n | ChatCompletionsToolDefinitionParent\n | ChatCompletionsFunctionToolDefinition;\n/** An abstract representation of an explicit, named tool selection to use for a chat completions request. */\nexport type ChatCompletionsNamedToolSelection =\n | ChatCompletionsNamedToolSelectionParent\n | ChatCompletionsNamedFunctionToolSelection;\n/** Alias for ExtraParameters */\nexport type ExtraParameters = string;\n/** Alias for ChatRole */\nexport type ChatRole = string;\n/** Alias for ChatMessageImageDetailLevel */\nexport type ChatMessageImageDetailLevel = string;\n/** Alias for ChatCompletionsResponseFormat */\nexport type ChatCompletionsResponseFormat = string;\n/** Alias for ChatCompletionsToolSelectionPreset */\nexport type ChatCompletionsToolSelectionPreset =\n | string\n | \"auto\"\n | \"none\"\n | \"required\";\n/** Alias for EmbeddingEncodingFormat */\nexport type EmbeddingEncodingFormat = string;\n/** Alias for EmbeddingInputType */\nexport type EmbeddingInputType = string;\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/** An abstract representation of a chat message as provided in a request. */\nexport interface ChatRequestMessageParent {\n role: ChatRole;\n}\n\n/**\n * A request chat message containing system instructions that influence how the model will generate a chat completions\n * response.\n */\nexport interface ChatRequestSystemMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'system' for system messages. */\n role: \"system\";\n /** The contents of the system message. */\n content: string;\n}\n\n/** A request chat message representing user input to the assistant. */\nexport interface ChatRequestUserMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'user' for user messages. */\n role: \"user\";\n /** The contents of the user message, with available input types varying by selected model. */\n content: string | Array<ChatMessageContentItem>;\n}\n\n/** An abstract representation of a structured content item within a chat message. */\nexport interface ChatMessageContentItemParent {\n type: string;\n}\n\n/** A structured chat content item containing plain text. */\nexport interface ChatMessageTextContentItem extends ChatMessageContentItemParent {\n /** The discriminated object type: always 'text' for this type. */\n type: \"text\";\n /** The content of the message. */\n text: string;\n}\n\n/** A structured chat content item containing an image reference. */\nexport interface ChatMessageImageContentItem extends ChatMessageContentItemParent {\n /** The discriminated object type: always 'image_url' for this type. */\n type: \"image_url\";\n /** An internet location, which must be accessible to the model,from which the image may be retrieved. */\n image_url: ChatMessageImageUrl;\n}\n\n/** An internet location from which the model may retrieve an image. */\nexport interface ChatMessageImageUrl {\n /** The URL of the image. */\n url: string;\n /**\n * The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and\n * accuracy.\n *\n * Possible values: \"auto\", \"low\", \"high\"\n */\n detail?: ChatMessageImageDetailLevel;\n}\n\n/** A request chat message representing response or action from the assistant. */\nexport interface ChatRequestAssistantMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'assistant' for assistant messages. */\n role: \"assistant\";\n /** The content of the message. */\n content?: string | null;\n /**\n * The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat\n * completions request to resolve as configured.\n */\n tool_calls?: Array<ChatCompletionsToolCall>;\n}\n\n/** A function tool call requested by the AI model. */\nexport interface ChatCompletionsToolCall {\n /** The ID of the tool call. */\n id: string;\n /** The type of tool call. Currently, only `function` is supported. */\n type: \"function\";\n /** The details of the function call requested by the AI model. */\n function: FunctionCall;\n}\n\n/** The name and arguments of a function that should be called, as generated by the model. */\nexport interface FunctionCall {\n /** The name of the function to call. */\n name: string;\n /**\n * The arguments to call the function with, as generated by the model in JSON format.\n * Note that the model does not always generate valid JSON, and may hallucinate parameters\n * not defined by your function schema. Validate the arguments in your code before calling\n * your function.\n */\n arguments: string;\n}\n\n/** A request chat message representing requested output from a configured tool. */\nexport interface ChatRequestToolMessage extends ChatRequestMessageParent {\n /** The chat role associated with this message, which is always 'tool' for tool messages. */\n role: \"tool\";\n /** The content of the message. */\n content: string | null;\n /** The ID of the tool call resolved by the provided content. */\n tool_call_id: string;\n}\n\n/**\n * Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode.\n * Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\n * via a system or user message.\n */\nexport interface ChatCompletionsResponseFormatParent {\n type: string;\n}\n\n/** A response format for Chat Completions that emits text responses. This is the default response format. */\nexport interface ChatCompletionsResponseFormatText extends ChatCompletionsResponseFormatParent {\n /** Response format type: always 'text' for this object. */\n type: \"text\";\n}\n\n/**\n * A response format for Chat Completions that restricts responses to emitting valid JSON objects.\n * Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\n * via a system or user message.\n */\nexport interface ChatCompletionsResponseFormatJSON extends ChatCompletionsResponseFormatParent {\n /** Response format type: always 'json_object' for this object. */\n type: \"json_object\";\n}\n\n/** The definition of a chat completions tool that can call a function. */\nexport interface ChatCompletionsToolDefinition {\n /** The type of the tool. Currently, only `function` is supported. */\n type: \"function\";\n /** The function definition details for the function tool. */\n function: FunctionDefinition;\n}\n\n/** The definition of a caller-specified function that chat completions may invoke in response to matching user input. */\nexport interface FunctionDefinition {\n /** The name of the function to be called. */\n name: string;\n /**\n * A description of what the function does. The model will use this description when selecting the function and\n * interpreting its parameters.\n */\n description?: string;\n /** The parameters the function accepts, described as a JSON Schema object. */\n parameters?: unknown;\n}\n\n/** A tool selection of a specific, named function tool that will limit chat completions to using the named function. */\nexport interface ChatCompletionsNamedToolSelection {\n /** The type of the tool. Currently, only `function` is supported. */\n type: \"function\";\n /** The function that should be called. */\n function: ChatCompletionsFunctionToolSelection;\n}\n\n/** A tool selection of a specific, named function tool that will limit chat completions to using the named function. */\nexport interface ChatCompletionsFunctionToolSelection {\n /** The name of the function that should be called. */\n name: string;\n}\n\n/** Represents an image with optional text. */\nexport interface ImageEmbeddingInput {\n /** The input image, in PNG format. */\n image: string;\n /**\n * Optional. The text input to feed into the model (like DINO, CLIP).\n * Returns a 422 error if the model doesn't support the value or parameter.\n */\n text?: string;\n}\n\n/** An abstract representation of a chat message as provided in a request. */\nexport type ChatRequestMessage =\n | ChatRequestMessageParent\n | ChatRequestSystemMessage\n | ChatRequestUserMessage\n | ChatRequestAssistantMessage\n | ChatRequestToolMessage;\n/** An abstract representation of a structured content item within a chat message. */\nexport type ChatMessageContentItem =\n | ChatMessageContentItemParent\n | ChatMessageTextContentItem\n | ChatMessageImageContentItem;\n/**\n * Represents the format that the model must output. Use this to enable JSON mode instead of the default text mode.\n * Note that to enable JSON mode, some AI models may also require you to instruct the model to produce JSON\n * via a system or user message.\n */\nexport type ChatCompletionsResponseFormat =\n | ChatCompletionsResponseFormatParent\n | ChatCompletionsResponseFormatText\n | ChatCompletionsResponseFormatJSON;\n/** Alias for ExtraParameters */\nexport type ExtraParameters = string;\n/** Alias for ChatRole */\nexport type ChatRole = string;\n/** Alias for ChatMessageImageDetailLevel */\nexport type ChatMessageImageDetailLevel = string;\n/** Alias for ChatCompletionsToolSelectionPreset */\nexport type ChatCompletionsToolSelectionPreset = string;\n/** Alias for EmbeddingEncodingFormat */\nexport type EmbeddingEncodingFormat = string;\n/** Alias for EmbeddingInputType */\nexport type EmbeddingInputType = string;\n"]}
@@ -1,20 +1,10 @@
1
- /**
2
- * An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested
3
- * chat completion.
4
- */
5
- export interface ChatCompletionsToolCallOutputParent {
1
+ /** A function tool call requested by the AI model. */
2
+ export interface ChatCompletionsToolCallOutput {
6
3
  /** The ID of the tool call. */
7
4
  id: string;
8
- type: string;
9
- }
10
- /**
11
- * A tool call to a function tool, issued by the model in evaluation of a configured function tool, that represents
12
- * a function invocation needed for a subsequent chat completions request to resolve.
13
- */
14
- export interface ChatCompletionsFunctionToolCallOutput extends ChatCompletionsToolCallOutputParent {
15
- /** The type of tool call, in this case always 'function'. */
5
+ /** The type of tool call. Currently, only `function` is supported. */
16
6
  type: "function";
17
- /** The details of the function invocation requested by the tool call. */
7
+ /** The details of the function call requested by the AI model. */
18
8
  function: FunctionCallOutput;
19
9
  }
20
10
  /** The name and arguments of a function that should be called, as generated by the model. */
@@ -81,7 +71,11 @@ export interface ChatChoiceOutput {
81
71
  }
82
72
  /** A representation of a chat message as received in a response. */
83
73
  export interface ChatResponseMessageOutput {
84
- /** The chat role associated with the message. */
74
+ /**
75
+ * The chat role associated with the message.
76
+ *
77
+ * Possible values: "system", "user", "assistant", "tool"
78
+ */
85
79
  role: ChatRoleOutput;
86
80
  /** The content of the message. */
87
81
  content: string | null;
@@ -95,7 +89,11 @@ export interface ChatResponseMessageOutput {
95
89
  export interface ModelInfoOutput {
96
90
  /** The name of the AI model. For example: `Phi21` */
97
91
  model_name: string;
98
- /** The type of the AI model. A Unique identifier for the profile. */
92
+ /**
93
+ * The type of the AI model. A Unique identifier for the profile.
94
+ *
95
+ * Possible values: "embeddings", "image_generation", "text_generation", "image_embeddings", "audio_generation", "chat"
96
+ */
99
97
  model_type: ModelTypeOutput;
100
98
  /** The model provider name. For example: `Microsoft Research` */
101
99
  model_provider_name: string;
@@ -106,8 +104,6 @@ export interface ModelInfoOutput {
106
104
  * recommendations, and other similar scenarios.
107
105
  */
108
106
  export interface EmbeddingsResultOutput {
109
- /** Unique identifier for the embeddings result. */
110
- id: string;
111
107
  /** Embedding values for the prompts submitted in the request. */
112
108
  data: Array<EmbeddingItemOutput>;
113
109
  /** Usage counts for tokens input using the embeddings API. */
@@ -118,10 +114,10 @@ export interface EmbeddingsResultOutput {
118
114
  /** Representation of a single embeddings relatedness comparison. */
119
115
  export interface EmbeddingItemOutput {
120
116
  /**
121
- * List of embeddings value for the input prompt. These represent a measurement of the
122
- * vector-based relatedness of the provided input.
117
+ * List of embedding values for the input prompt. These represent a measurement of the
118
+ * vector-based relatedness of the provided input. Or a base64 encoded string of the embedding vector.
123
119
  */
124
- embedding: number[];
120
+ embedding: string | number[];
125
121
  /** Index of the prompt to which the EmbeddingItem corresponds. */
126
122
  index: number;
127
123
  }
@@ -135,11 +131,6 @@ export interface EmbeddingsUsageOutput {
135
131
  */
136
132
  total_tokens: number;
137
133
  }
138
- /**
139
- * An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested
140
- * chat completion.
141
- */
142
- export type ChatCompletionsToolCallOutput = ChatCompletionsToolCallOutputParent | ChatCompletionsFunctionToolCallOutput;
143
134
  /** Alias for ChatRoleOutput */
144
135
  export type ChatRoleOutput = string;
145
136
  /** Alias for CompletionsFinishReasonOutput */