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

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 (127) hide show
  1. package/README.md +155 -82
  2. package/dist/browser/clientDefinitions.d.ts +7 -5
  3. package/dist/browser/clientDefinitions.d.ts.map +1 -1
  4. package/dist/browser/clientDefinitions.js.map +1 -1
  5. package/dist/browser/constants.js +1 -1
  6. package/dist/browser/constants.js.map +1 -1
  7. package/dist/browser/isUnexpected.d.ts +1 -1
  8. package/dist/browser/isUnexpected.d.ts.map +1 -1
  9. package/dist/browser/isUnexpected.js +2 -1
  10. package/dist/browser/isUnexpected.js.map +1 -1
  11. package/dist/browser/modelClient.d.ts +3 -3
  12. package/dist/browser/modelClient.d.ts.map +1 -1
  13. package/dist/browser/modelClient.js +1 -1
  14. package/dist/browser/modelClient.js.map +1 -1
  15. package/dist/browser/models.d.ts +43 -10
  16. package/dist/browser/models.d.ts.map +1 -1
  17. package/dist/browser/models.js.map +1 -1
  18. package/dist/browser/outputModels.d.ts +3 -1
  19. package/dist/browser/outputModels.d.ts.map +1 -1
  20. package/dist/browser/outputModels.js.map +1 -1
  21. package/dist/browser/parameters.d.ts +5 -5
  22. package/dist/browser/parameters.d.ts.map +1 -1
  23. package/dist/browser/parameters.js.map +1 -1
  24. package/dist/browser/responses.d.ts +3 -3
  25. package/dist/browser/responses.d.ts.map +1 -1
  26. package/dist/browser/responses.js.map +1 -1
  27. package/dist/browser/tracingHelper.d.ts +3 -3
  28. package/dist/browser/tracingHelper.d.ts.map +1 -1
  29. package/dist/browser/tracingHelper.js.map +1 -1
  30. package/dist/browser/tracingPolicy.d.ts +1 -1
  31. package/dist/browser/tracingPolicy.d.ts.map +1 -1
  32. package/dist/browser/tracingPolicy.js.map +1 -1
  33. package/dist/commonjs/clientDefinitions.d.ts +7 -5
  34. package/dist/commonjs/clientDefinitions.d.ts.map +1 -1
  35. package/dist/commonjs/clientDefinitions.js.map +1 -1
  36. package/dist/commonjs/constants.js +1 -1
  37. package/dist/commonjs/constants.js.map +1 -1
  38. package/dist/commonjs/isUnexpected.d.ts +1 -1
  39. package/dist/commonjs/isUnexpected.d.ts.map +1 -1
  40. package/dist/commonjs/isUnexpected.js +2 -1
  41. package/dist/commonjs/isUnexpected.js.map +1 -1
  42. package/dist/commonjs/modelClient.d.ts +3 -3
  43. package/dist/commonjs/modelClient.d.ts.map +1 -1
  44. package/dist/commonjs/modelClient.js +1 -1
  45. package/dist/commonjs/modelClient.js.map +1 -1
  46. package/dist/commonjs/models.d.ts +43 -10
  47. package/dist/commonjs/models.d.ts.map +1 -1
  48. package/dist/commonjs/models.js.map +1 -1
  49. package/dist/commonjs/outputModels.d.ts +3 -1
  50. package/dist/commonjs/outputModels.d.ts.map +1 -1
  51. package/dist/commonjs/outputModels.js.map +1 -1
  52. package/dist/commonjs/parameters.d.ts +5 -5
  53. package/dist/commonjs/parameters.d.ts.map +1 -1
  54. package/dist/commonjs/parameters.js.map +1 -1
  55. package/dist/commonjs/responses.d.ts +3 -3
  56. package/dist/commonjs/responses.d.ts.map +1 -1
  57. package/dist/commonjs/responses.js.map +1 -1
  58. package/dist/commonjs/tracingHelper.d.ts +3 -3
  59. package/dist/commonjs/tracingHelper.d.ts.map +1 -1
  60. package/dist/commonjs/tracingHelper.js.map +1 -1
  61. package/dist/commonjs/tracingPolicy.d.ts +1 -1
  62. package/dist/commonjs/tracingPolicy.d.ts.map +1 -1
  63. package/dist/commonjs/tracingPolicy.js.map +1 -1
  64. package/dist/commonjs/tsdoc-metadata.json +1 -1
  65. package/dist/esm/clientDefinitions.d.ts +7 -5
  66. package/dist/esm/clientDefinitions.d.ts.map +1 -1
  67. package/dist/esm/clientDefinitions.js.map +1 -1
  68. package/dist/esm/constants.js +1 -1
  69. package/dist/esm/constants.js.map +1 -1
  70. package/dist/esm/isUnexpected.d.ts +1 -1
  71. package/dist/esm/isUnexpected.d.ts.map +1 -1
  72. package/dist/esm/isUnexpected.js +2 -1
  73. package/dist/esm/isUnexpected.js.map +1 -1
  74. package/dist/esm/modelClient.d.ts +3 -3
  75. package/dist/esm/modelClient.d.ts.map +1 -1
  76. package/dist/esm/modelClient.js +1 -1
  77. package/dist/esm/modelClient.js.map +1 -1
  78. package/dist/esm/models.d.ts +43 -10
  79. package/dist/esm/models.d.ts.map +1 -1
  80. package/dist/esm/models.js.map +1 -1
  81. package/dist/esm/outputModels.d.ts +3 -1
  82. package/dist/esm/outputModels.d.ts.map +1 -1
  83. package/dist/esm/outputModels.js.map +1 -1
  84. package/dist/esm/parameters.d.ts +5 -5
  85. package/dist/esm/parameters.d.ts.map +1 -1
  86. package/dist/esm/parameters.js.map +1 -1
  87. package/dist/esm/responses.d.ts +3 -3
  88. package/dist/esm/responses.d.ts.map +1 -1
  89. package/dist/esm/responses.js.map +1 -1
  90. package/dist/esm/tracingHelper.d.ts +3 -3
  91. package/dist/esm/tracingHelper.d.ts.map +1 -1
  92. package/dist/esm/tracingHelper.js.map +1 -1
  93. package/dist/esm/tracingPolicy.d.ts +1 -1
  94. package/dist/esm/tracingPolicy.d.ts.map +1 -1
  95. package/dist/esm/tracingPolicy.js.map +1 -1
  96. package/dist/react-native/clientDefinitions.d.ts +7 -5
  97. package/dist/react-native/clientDefinitions.d.ts.map +1 -1
  98. package/dist/react-native/clientDefinitions.js.map +1 -1
  99. package/dist/react-native/constants.js +1 -1
  100. package/dist/react-native/constants.js.map +1 -1
  101. package/dist/react-native/isUnexpected.d.ts +1 -1
  102. package/dist/react-native/isUnexpected.d.ts.map +1 -1
  103. package/dist/react-native/isUnexpected.js +2 -1
  104. package/dist/react-native/isUnexpected.js.map +1 -1
  105. package/dist/react-native/modelClient.d.ts +3 -3
  106. package/dist/react-native/modelClient.d.ts.map +1 -1
  107. package/dist/react-native/modelClient.js +1 -1
  108. package/dist/react-native/modelClient.js.map +1 -1
  109. package/dist/react-native/models.d.ts +43 -10
  110. package/dist/react-native/models.d.ts.map +1 -1
  111. package/dist/react-native/models.js.map +1 -1
  112. package/dist/react-native/outputModels.d.ts +3 -1
  113. package/dist/react-native/outputModels.d.ts.map +1 -1
  114. package/dist/react-native/outputModels.js.map +1 -1
  115. package/dist/react-native/parameters.d.ts +5 -5
  116. package/dist/react-native/parameters.d.ts.map +1 -1
  117. package/dist/react-native/parameters.js.map +1 -1
  118. package/dist/react-native/responses.d.ts +3 -3
  119. package/dist/react-native/responses.d.ts.map +1 -1
  120. package/dist/react-native/responses.js.map +1 -1
  121. package/dist/react-native/tracingHelper.d.ts +3 -3
  122. package/dist/react-native/tracingHelper.d.ts.map +1 -1
  123. package/dist/react-native/tracingHelper.js.map +1 -1
  124. package/dist/react-native/tracingPolicy.d.ts +1 -1
  125. package/dist/react-native/tracingPolicy.d.ts.map +1 -1
  126. package/dist/react-native/tracingPolicy.js.map +1 -1
  127. package/package.json +12 -12
@@ -1,6 +1,6 @@
1
- import { RawHttpHeadersInput } from "@azure/core-rest-pipeline";
2
- import { RequestParameters } from "@azure-rest/core-client";
3
- import { ExtraParameters, ChatRequestMessage, ChatCompletionsResponseFormat, ChatCompletionsToolDefinition, ChatCompletionsToolSelectionPreset, ChatCompletionsNamedToolSelection, EmbeddingEncodingFormat, EmbeddingInputType, ImageEmbeddingInput } from "./models.js";
1
+ import type { RawHttpHeadersInput } from "@azure/core-rest-pipeline";
2
+ import type { RequestParameters } from "@azure-rest/core-client";
3
+ import type { ExtraParameters, ChatRequestMessage, ChatCompletionsResponseFormat, ChatCompletionsToolDefinition, ChatCompletionsToolChoicePreset, ChatCompletionsNamedToolChoice, EmbeddingEncodingFormat, EmbeddingInputType, ImageEmbeddingInput } from "./models.js";
4
4
  export interface GetChatCompletionsHeaders {
5
5
  /**
6
6
  * Controls what happens if extra parameters, undefined by the REST API,
@@ -23,7 +23,7 @@ export interface GetChatCompletionsBodyParam {
23
23
  response_format?: ChatCompletionsResponseFormat;
24
24
  stop?: string[];
25
25
  tools?: Array<ChatCompletionsToolDefinition>;
26
- tool_choice?: ChatCompletionsToolSelectionPreset | ChatCompletionsNamedToolSelection;
26
+ tool_choice?: ChatCompletionsToolChoicePreset | ChatCompletionsNamedToolChoice;
27
27
  seed?: number;
28
28
  model?: string;
29
29
  };
@@ -67,7 +67,7 @@ export interface GetImageEmbeddingsHeaders {
67
67
  "extra-parameters"?: ExtraParameters;
68
68
  }
69
69
  export interface GetImageEmbeddingsBodyParam {
70
- body?: {
70
+ body: {
71
71
  input: Array<ImageEmbeddingInput>;
72
72
  dimensions?: number;
73
73
  encoding_format?: EmbeddingEncodingFormat;
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,6BAA6B,EAC7B,6BAA6B,EAC7B,kCAAkC,EAClC,iCAAiC,EACjC,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,6BAA6B,CAAC;QAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,WAAW,CAAC,EAAE,kCAAkC,GAAG,iCAAiC,CAAC;QACrF,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,mBAAmB,GAAG,yBAAyB,CAAC;CAC3D;AAED,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GACtE,2BAA2B,GAC3B,iBAAiB,CAAC;AACpB,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,uBAAuB,CAAC;QAC1C,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,mBAAmB,GAAG,oBAAoB,CAAC;CACtD;AAED,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAC5D,sBAAsB,GACtB,iBAAiB,CAAC;AAEpB,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,uBAAuB,CAAC;QAC1C,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,mBAAmB,GAAG,yBAAyB,CAAC;CAC3D;AAED,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GACtE,2BAA2B,GAC3B,iBAAiB,CAAC"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,6BAA6B,CAAC;QAChD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,WAAW,CAAC,EACR,+BAA+B,GAC/B,8BAA8B,CAAC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,mBAAmB,GAAG,yBAAyB,CAAC;CAC3D;AAED,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GACtE,2BAA2B,GAC3B,iBAAiB,CAAC;AACpB,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,uBAAuB,CAAC;QAC1C,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,mBAAmB,GAAG,oBAAoB,CAAC;CACtD;AAED,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAC5D,sBAAsB,GACtB,iBAAiB,CAAC;AAEpB,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,eAAe,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,uBAAuB,CAAC;QAC1C,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,mBAAmB,GAAG,yBAAyB,CAAC;CAC3D;AAED,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,GACtE,2BAA2B,GAC3B,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RawHttpHeadersInput } from \"@azure/core-rest-pipeline\";\nimport { RequestParameters } from \"@azure-rest/core-client\";\nimport {\n ExtraParameters,\n ChatRequestMessage,\n ChatCompletionsResponseFormat,\n ChatCompletionsToolDefinition,\n ChatCompletionsToolSelectionPreset,\n ChatCompletionsNamedToolSelection,\n EmbeddingEncodingFormat,\n EmbeddingInputType,\n ImageEmbeddingInput,\n} from \"./models.js\";\n\nexport interface GetChatCompletionsHeaders {\n /**\n * Controls what happens if extra parameters, undefined by the REST API,\n * are passed in the JSON request payload.\n * This sets the HTTP request header `extra-parameters`.\n *\n * Possible values: \"error\", \"drop\", \"pass-through\"\n */\n \"extra-parameters\"?: ExtraParameters;\n}\n\nexport interface GetChatCompletionsBodyParam {\n body?: {\n messages: Array<ChatRequestMessage>;\n frequency_penalty?: number;\n stream?: boolean;\n presence_penalty?: number;\n temperature?: number;\n top_p?: number;\n max_tokens?: number;\n response_format?: ChatCompletionsResponseFormat;\n stop?: string[];\n tools?: Array<ChatCompletionsToolDefinition>;\n tool_choice?: ChatCompletionsToolSelectionPreset | ChatCompletionsNamedToolSelection;\n seed?: number;\n model?: string;\n };\n}\n\nexport interface GetChatCompletionsHeaderParam {\n headers?: RawHttpHeadersInput & GetChatCompletionsHeaders;\n}\n\nexport type GetChatCompletionsParameters = GetChatCompletionsHeaderParam &\n GetChatCompletionsBodyParam &\n RequestParameters;\nexport type GetModelInfoParameters = RequestParameters;\n\nexport interface GetEmbeddingsHeaders {\n /**\n * Controls what happens if extra parameters, undefined by the REST API,\n * are passed in the JSON request payload.\n * This sets the HTTP request header `extra-parameters`.\n *\n * Possible values: \"error\", \"drop\", \"pass-through\"\n */\n \"extra-parameters\"?: ExtraParameters;\n}\n\nexport interface GetEmbeddingsBodyParam {\n body?: {\n input: string[];\n dimensions?: number;\n encoding_format?: EmbeddingEncodingFormat;\n input_type?: EmbeddingInputType;\n model?: string;\n };\n}\n\nexport interface GetEmbeddingsHeaderParam {\n headers?: RawHttpHeadersInput & GetEmbeddingsHeaders;\n}\n\nexport type GetEmbeddingsParameters = GetEmbeddingsHeaderParam &\n GetEmbeddingsBodyParam &\n RequestParameters;\n\nexport interface GetImageEmbeddingsHeaders {\n /**\n * Controls what happens if extra parameters, undefined by the REST API,\n * are passed in the JSON request payload.\n * This sets the HTTP request header `extra-parameters`.\n *\n * Possible values: \"error\", \"drop\", \"pass-through\"\n */\n \"extra-parameters\"?: ExtraParameters;\n}\n\nexport interface GetImageEmbeddingsBodyParam {\n body?: {\n input: Array<ImageEmbeddingInput>;\n dimensions?: number;\n encoding_format?: EmbeddingEncodingFormat;\n input_type?: EmbeddingInputType;\n model?: string;\n };\n}\n\nexport interface GetImageEmbeddingsHeaderParam {\n headers?: RawHttpHeadersInput & GetImageEmbeddingsHeaders;\n}\n\nexport type GetImageEmbeddingsParameters = GetImageEmbeddingsHeaderParam &\n GetImageEmbeddingsBodyParam &\n RequestParameters;\n"]}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../src/parameters.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawHttpHeadersInput } from \"@azure/core-rest-pipeline\";\nimport type { RequestParameters } from \"@azure-rest/core-client\";\nimport type {\n ExtraParameters,\n ChatRequestMessage,\n ChatCompletionsResponseFormat,\n ChatCompletionsToolDefinition,\n ChatCompletionsToolChoicePreset,\n ChatCompletionsNamedToolChoice,\n EmbeddingEncodingFormat,\n EmbeddingInputType,\n ImageEmbeddingInput,\n} from \"./models.js\";\n\nexport interface GetChatCompletionsHeaders {\n /**\n * Controls what happens if extra parameters, undefined by the REST API,\n * are passed in the JSON request payload.\n * This sets the HTTP request header `extra-parameters`.\n *\n * Possible values: \"error\", \"drop\", \"pass-through\"\n */\n \"extra-parameters\"?: ExtraParameters;\n}\n\nexport interface GetChatCompletionsBodyParam {\n body?: {\n messages: Array<ChatRequestMessage>;\n frequency_penalty?: number;\n stream?: boolean;\n presence_penalty?: number;\n temperature?: number;\n top_p?: number;\n max_tokens?: number;\n response_format?: ChatCompletionsResponseFormat;\n stop?: string[];\n tools?: Array<ChatCompletionsToolDefinition>;\n tool_choice?:\n | ChatCompletionsToolChoicePreset\n | ChatCompletionsNamedToolChoice;\n seed?: number;\n model?: string;\n };\n}\n\nexport interface GetChatCompletionsHeaderParam {\n headers?: RawHttpHeadersInput & GetChatCompletionsHeaders;\n}\n\nexport type GetChatCompletionsParameters = GetChatCompletionsHeaderParam &\n GetChatCompletionsBodyParam &\n RequestParameters;\nexport type GetModelInfoParameters = RequestParameters;\n\nexport interface GetEmbeddingsHeaders {\n /**\n * Controls what happens if extra parameters, undefined by the REST API,\n * are passed in the JSON request payload.\n * This sets the HTTP request header `extra-parameters`.\n *\n * Possible values: \"error\", \"drop\", \"pass-through\"\n */\n \"extra-parameters\"?: ExtraParameters;\n}\n\nexport interface GetEmbeddingsBodyParam {\n body?: {\n input: string[];\n dimensions?: number;\n encoding_format?: EmbeddingEncodingFormat;\n input_type?: EmbeddingInputType;\n model?: string;\n };\n}\n\nexport interface GetEmbeddingsHeaderParam {\n headers?: RawHttpHeadersInput & GetEmbeddingsHeaders;\n}\n\nexport type GetEmbeddingsParameters = GetEmbeddingsHeaderParam &\n GetEmbeddingsBodyParam &\n RequestParameters;\n\nexport interface GetImageEmbeddingsHeaders {\n /**\n * Controls what happens if extra parameters, undefined by the REST API,\n * are passed in the JSON request payload.\n * This sets the HTTP request header `extra-parameters`.\n *\n * Possible values: \"error\", \"drop\", \"pass-through\"\n */\n \"extra-parameters\"?: ExtraParameters;\n}\n\nexport interface GetImageEmbeddingsBodyParam {\n body: {\n input: Array<ImageEmbeddingInput>;\n dimensions?: number;\n encoding_format?: EmbeddingEncodingFormat;\n input_type?: EmbeddingInputType;\n model?: string;\n };\n}\n\nexport interface GetImageEmbeddingsHeaderParam {\n headers?: RawHttpHeadersInput & GetImageEmbeddingsHeaders;\n}\n\nexport type GetImageEmbeddingsParameters = GetImageEmbeddingsHeaderParam &\n GetImageEmbeddingsBodyParam &\n RequestParameters;\n"]}
@@ -1,6 +1,6 @@
1
- import { RawHttpHeaders } from "@azure/core-rest-pipeline";
2
- import { HttpResponse, ErrorResponse } from "@azure-rest/core-client";
3
- import { ChatCompletionsOutput, ModelInfoOutput, EmbeddingsResultOutput } from "./outputModels.js";
1
+ import type { RawHttpHeaders } from "@azure/core-rest-pipeline";
2
+ import type { HttpResponse, ErrorResponse } from "@azure-rest/core-client";
3
+ import type { ChatCompletionsOutput, ModelInfoOutput, EmbeddingsResultOutput } from "./outputModels.js";
4
4
  /** The request has succeeded. */
5
5
  export interface GetChatCompletions200Response extends HttpResponse {
6
6
  status: "200";
@@ -1 +1 @@
1
- {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,iCAAiC;AACjC,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,WAAW,gCAAgC;IAC/C,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iCAAkC,SAAQ,YAAY;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,gCAAgC,CAAC;CAC5D;AAED,iCAAiC;AACjC,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,0BAA0B,CAAC;CACtD;AAED,iCAAiC;AACjC,MAAM,WAAW,wBAAyB,SAAQ,YAAY;IAC5D,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,2BAA2B,CAAC;CACvD;AAED,iCAAiC;AACjC,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,WAAW,gCAAgC;IAC/C,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iCAAkC,SAAQ,YAAY;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,gCAAgC,CAAC;CAC5D"}
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,iCAAiC;AACjC,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,WAAW,gCAAgC;IAC/C,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iCAAkC,SAAQ,YAAY;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,gCAAgC,CAAC;CAC5D;AAED,iCAAiC;AACjC,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,0BAA0B,CAAC;CACtD;AAED,iCAAiC;AACjC,MAAM,WAAW,wBAAyB,SAAQ,YAAY;IAC5D,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,2BAA2B,CAAC;CACvD;AAED,iCAAiC;AACjC,MAAM,WAAW,6BAA8B,SAAQ,YAAY;IACjE,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,MAAM,WAAW,gCAAgC;IAC/C,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iCAAkC,SAAQ,YAAY;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,GAAG,gCAAgC,CAAC;CAC5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport { HttpResponse, ErrorResponse } from \"@azure-rest/core-client\";\nimport { ChatCompletionsOutput, ModelInfoOutput, EmbeddingsResultOutput } from \"./outputModels.js\";\n\n/** The request has succeeded. */\nexport interface GetChatCompletions200Response extends HttpResponse {\n status: \"200\";\n body: ChatCompletionsOutput;\n}\n\nexport interface GetChatCompletionsDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetChatCompletionsDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetChatCompletionsDefaultHeaders;\n}\n\n/** The request has succeeded. */\nexport interface GetModelInfo200Response extends HttpResponse {\n status: \"200\";\n body: ModelInfoOutput;\n}\n\nexport interface GetModelInfoDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetModelInfoDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetModelInfoDefaultHeaders;\n}\n\n/** The request has succeeded. */\nexport interface GetEmbeddings200Response extends HttpResponse {\n status: \"200\";\n body: EmbeddingsResultOutput;\n}\n\nexport interface GetEmbeddingsDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetEmbeddingsDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetEmbeddingsDefaultHeaders;\n}\n\n/** The request has succeeded. */\nexport interface GetImageEmbeddings200Response extends HttpResponse {\n status: \"200\";\n body: EmbeddingsResultOutput;\n}\n\nexport interface GetImageEmbeddingsDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetImageEmbeddingsDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetImageEmbeddingsDefaultHeaders;\n}\n"]}
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { RawHttpHeaders } from \"@azure/core-rest-pipeline\";\nimport type { HttpResponse, ErrorResponse } from \"@azure-rest/core-client\";\nimport type {\n ChatCompletionsOutput,\n ModelInfoOutput,\n EmbeddingsResultOutput,\n} from \"./outputModels.js\";\n\n/** The request has succeeded. */\nexport interface GetChatCompletions200Response extends HttpResponse {\n status: \"200\";\n body: ChatCompletionsOutput;\n}\n\nexport interface GetChatCompletionsDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetChatCompletionsDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetChatCompletionsDefaultHeaders;\n}\n\n/** The request has succeeded. */\nexport interface GetModelInfo200Response extends HttpResponse {\n status: \"200\";\n body: ModelInfoOutput;\n}\n\nexport interface GetModelInfoDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetModelInfoDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetModelInfoDefaultHeaders;\n}\n\n/** The request has succeeded. */\nexport interface GetEmbeddings200Response extends HttpResponse {\n status: \"200\";\n body: EmbeddingsResultOutput;\n}\n\nexport interface GetEmbeddingsDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetEmbeddingsDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetEmbeddingsDefaultHeaders;\n}\n\n/** The request has succeeded. */\nexport interface GetImageEmbeddings200Response extends HttpResponse {\n status: \"200\";\n body: EmbeddingsResultOutput;\n}\n\nexport interface GetImageEmbeddingsDefaultHeaders {\n /** String error code indicating what went wrong. */\n \"x-ms-error-code\"?: string;\n}\n\nexport interface GetImageEmbeddingsDefaultResponse extends HttpResponse {\n status: string;\n body: ErrorResponse;\n headers: RawHttpHeaders & GetImageEmbeddingsDefaultHeaders;\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { TracingSpan } from "@azure/core-tracing";
2
- import { GetChatCompletionsBodyParam } from "./parameters.js";
3
- import { PipelineRequest, PipelineResponse } from "@azure/core-rest-pipeline";
1
+ import type { TracingSpan } from "@azure/core-tracing";
2
+ import type { GetChatCompletionsBodyParam } from "./parameters.js";
3
+ import type { PipelineRequest, PipelineResponse } from "@azure/core-rest-pipeline";
4
4
  export declare function getRequestBody(request: PipelineRequest): GetChatCompletionsBodyParam;
5
5
  export declare function getSpanName(request: PipelineRequest): string;
6
6
  export declare function onStartTracing(span: TracingSpan, request: PipelineRequest, url: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"tracingHelper.d.ts","sourceRoot":"","sources":["../../src/tracingHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAa9D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA0B9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,2BAA2B,CAEpF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAG5D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CA6B7F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CA4BvF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAKvE"}
1
+ {"version":3,"file":"tracingHelper.d.ts","sourceRoot":"","sources":["../../src/tracingHelper.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAanE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AA0BnF,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,2BAA2B,CAEpF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAG5D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CA6B7F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CA4BvF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAKvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracingHelper.js","sourceRoot":"","sources":["../../src/tracingHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { TracingSpan } from \"@azure/core-tracing\";\nimport { GetChatCompletionsBodyParam } from \"./parameters.js\";\nimport {\n ChatRequestAssistantMessage,\n ChatRequestMessage,\n ChatRequestSystemMessage,\n ChatRequestToolMessage,\n} from \"./models.js\";\nimport {\n ChatChoiceOutput,\n ChatCompletionsOutput,\n ChatCompletionsToolCallOutput,\n} from \"./outputModels.js\";\nimport { isError } from \"@azure/core-util\";\nimport { PipelineRequest, PipelineResponse } from \"@azure/core-rest-pipeline\";\n\nconst INFERENCE_GEN_AI_SYSTEM_NAME = \"az.ai.inference\";\nconst isContentRecordingEnabled = () =>\n envVarToBoolean(\"AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED\");\n\nenum TracingAttributesEnum {\n Operation_Name = \"gen_ai.operation.name\",\n Request_Model = \"gen_ai.request.model\",\n System = \"gen_ai.system\",\n Error_Type = \"error.type\",\n Server_Port = \"server.port\",\n Request_Frequency_Penalty = \"gen_ai.request.frequency_penalty\",\n Request_Max_Tokens = \"gen_ai.request.max_tokens\",\n Request_Presence_Penalty = \"gen_ai.request.presence_penalty\",\n Request_Stop_Sequences = \"gen_ai.request.stop_sequences\",\n Request_Temperature = \"gen_ai.request.temperature\",\n Request_Top_P = \"gen_ai.request.top_p\",\n Response_Finish_Reasons = \"gen_ai.response.finish_reasons\",\n Response_Id = \"gen_ai.response.id\",\n Response_Model = \"gen_ai.response.model\",\n Usage_Input_Tokens = \"gen_ai.usage.input_tokens\",\n Usage_Output_Tokens = \"gen_ai.usage.output_tokens\",\n Server_Address = \"server.address\",\n}\n\nexport function getRequestBody(request: PipelineRequest): GetChatCompletionsBodyParam {\n return { body: JSON.parse(request.body as string) };\n}\n\nexport function getSpanName(request: PipelineRequest): string {\n const { body } = getRequestBody(request);\n return `chat ${body?.model ?? \"\"}`.trim();\n}\n\nexport function onStartTracing(span: TracingSpan, request: PipelineRequest, url: string): void {\n if (!span.isRecording()) {\n return;\n }\n\n const urlObj = new URL(url);\n const port = Number(urlObj.port) || (urlObj.protocol === \"https:\" ? undefined : 80);\n\n if (port) {\n span.setAttribute(TracingAttributesEnum.Server_Port, port);\n }\n span.setAttribute(TracingAttributesEnum.Server_Address, urlObj.hostname);\n span.setAttribute(TracingAttributesEnum.Operation_Name, \"chat\");\n span.setAttribute(TracingAttributesEnum.System, \"az.ai.inference\");\n\n const { body } = getRequestBody(request);\n if (!body) return;\n\n span.setAttribute(TracingAttributesEnum.Request_Model, body.model);\n span.setAttribute(TracingAttributesEnum.Request_Frequency_Penalty, body.frequency_penalty);\n span.setAttribute(TracingAttributesEnum.Request_Max_Tokens, body.max_tokens);\n span.setAttribute(TracingAttributesEnum.Request_Presence_Penalty, body.presence_penalty);\n span.setAttribute(TracingAttributesEnum.Request_Stop_Sequences, body.stop);\n span.setAttribute(TracingAttributesEnum.Request_Temperature, body.temperature);\n span.setAttribute(TracingAttributesEnum.Request_Top_P, body.top_p);\n\n if (body.messages) {\n addRequestChatMessageEvent(span, body.messages);\n }\n}\n\nexport function tryProcessResponse(span: TracingSpan, response?: PipelineResponse): void {\n if (!span.isRecording()) {\n return;\n }\n\n if (response?.bodyAsText) {\n const body: any = JSON.parse(response.bodyAsText);\n if (body.error ?? body.message) {\n span.setAttribute(TracingAttributesEnum.Error_Type, `${body.status ?? body.statusCode}`);\n span.setStatus({\n status: \"error\",\n error: body.error ?? body.message, // message is not in the schema of the response, but it can present if there is crediential error\n });\n }\n span.setAttribute(TracingAttributesEnum.Response_Id, body.id);\n span.setAttribute(TracingAttributesEnum.Response_Model, body.model);\n if (body.choices) {\n span.setAttribute(\n TracingAttributesEnum.Response_Finish_Reasons,\n body.choices.map((choice: ChatChoiceOutput) => choice.finish_reason).join(\",\"),\n );\n }\n if (body.usage) {\n span.setAttribute(TracingAttributesEnum.Usage_Input_Tokens, body.usage.prompt_tokens);\n span.setAttribute(TracingAttributesEnum.Usage_Output_Tokens, body.usage.completion_tokens);\n }\n addResponseChatMessageEvent(span, body);\n }\n}\n\nexport function tryProcessError(span: TracingSpan, error: unknown): void {\n span.setStatus({\n status: \"error\",\n error: isError(error) ? error : undefined,\n });\n}\n\n/*\n* Add event to span. Sample:\n {\n name: 'gen_ai.user.message',\n attributes: {\n 'gen_ai.system': 'INFERENCE_GEN_AI_SYSTEM_NAME',\n 'gen_ai.event.content': `{\"role\":\"user\",\"content\":\"What's the weather like in Boston?\"}` \n },\n time: [ 1725666879, 622695900 ],\n droppedAttributesCount: 0\n },\n*/\nfunction addRequestChatMessageEvent(span: TracingSpan, messages: Array<ChatRequestMessage>): void {\n messages.forEach((message: any) => {\n if (message.role) {\n const content: {\n content?: string;\n tool_calls?: Array<ChatCompletionsToolCallOutput>;\n id?: string;\n } = {};\n\n const chatMsg = message as ChatRequestSystemMessage;\n if (chatMsg.content) {\n content.content = chatMsg.content;\n }\n if (!isContentRecordingEnabled()) {\n content.content = \"\";\n }\n\n const assistantMsg = message as ChatRequestAssistantMessage;\n if (assistantMsg.tool_calls) {\n content.tool_calls = assistantMsg.tool_calls;\n if (!isContentRecordingEnabled()) {\n const toolCalls: Array<ChatCompletionsToolCallOutput> = JSON.parse(\n JSON.stringify(content.tool_calls),\n );\n toolCalls.forEach((toolCall) => {\n if (toolCall.function.arguments) {\n toolCall.function.arguments = \"\";\n }\n toolCall.function.name = \"\";\n });\n content.tool_calls = toolCalls;\n }\n }\n\n const toolMsg: ChatRequestToolMessage = message;\n if (toolMsg.tool_call_id) {\n content.id = toolMsg.tool_call_id;\n }\n\n span.addEvent?.(`gen_ai.${message.role}.message`, {\n attributes: {\n \"gen_ai.system\": INFERENCE_GEN_AI_SYSTEM_NAME,\n \"gen_ai.event.content\": JSON.stringify(content),\n },\n });\n }\n });\n}\n\n/*\n* Add event to span. Sample:\n{\n name: 'gen_ai.choice',\n attributes: {\n 'gen_ai.system': 'INFERENCE_GEN_AI_SYSTEM_NAME',\n 'gen_ai.event.content': '{\"finish_reason\":\"tool_calls\",\"index\":0,\"message\":{\"content\":\"\"}}'\n },\n time: [ 1725666881, 780608000 ],\n droppedAttributesCount: 0\n} \n*/\nfunction addResponseChatMessageEvent(span: TracingSpan, body: ChatCompletionsOutput): void {\n if (!span.addEvent) {\n return;\n }\n\n body?.choices?.forEach((choice: ChatChoiceOutput) => {\n let message: { content?: string; toolCalls?: Array<ChatCompletionsToolCallOutput> } = {};\n\n if (choice.message.content) {\n message.content = choice.message.content;\n }\n if (choice.message.tool_calls) {\n message.toolCalls = choice.message.tool_calls;\n }\n\n if (!isContentRecordingEnabled()) {\n message = JSON.parse(JSON.stringify(message));\n message.content = \"\";\n if (message.toolCalls) {\n message.toolCalls.forEach((toolCall) => {\n if (toolCall.function.arguments) {\n toolCall.function.arguments = \"\";\n }\n toolCall.function.name = \"\";\n });\n }\n }\n\n const response = {\n finish_reason: choice.finish_reason,\n index: choice.index,\n message,\n };\n const attributes = {\n \"gen_ai.system\": INFERENCE_GEN_AI_SYSTEM_NAME,\n \"gen_ai.event.content\": JSON.stringify(response),\n };\n\n span.addEvent?.(\"gen_ai.choice\", { attributes });\n });\n}\n\nfunction envVarToBoolean(key: string): boolean {\n const value = process.env[key] ?? process.env[key.toLowerCase()];\n return value !== \"false\" && value !== \"0\" && Boolean(value);\n}\n"]}
1
+ {"version":3,"file":"tracingHelper.js","sourceRoot":"","sources":["../../src/tracingHelper.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TracingSpan } from \"@azure/core-tracing\";\nimport type { GetChatCompletionsBodyParam } from \"./parameters.js\";\nimport type {\n ChatRequestAssistantMessage,\n ChatRequestMessage,\n ChatRequestSystemMessage,\n ChatRequestToolMessage,\n} from \"./models.js\";\nimport type {\n ChatChoiceOutput,\n ChatCompletionsOutput,\n ChatCompletionsToolCallOutput,\n} from \"./outputModels.js\";\nimport { isError } from \"@azure/core-util\";\nimport type { PipelineRequest, PipelineResponse } from \"@azure/core-rest-pipeline\";\n\nconst INFERENCE_GEN_AI_SYSTEM_NAME = \"az.ai.inference\";\nconst isContentRecordingEnabled = (): boolean =>\n envVarToBoolean(\"AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED\");\n\nenum TracingAttributesEnum {\n Operation_Name = \"gen_ai.operation.name\",\n Request_Model = \"gen_ai.request.model\",\n System = \"gen_ai.system\",\n Error_Type = \"error.type\",\n Server_Port = \"server.port\",\n Request_Frequency_Penalty = \"gen_ai.request.frequency_penalty\",\n Request_Max_Tokens = \"gen_ai.request.max_tokens\",\n Request_Presence_Penalty = \"gen_ai.request.presence_penalty\",\n Request_Stop_Sequences = \"gen_ai.request.stop_sequences\",\n Request_Temperature = \"gen_ai.request.temperature\",\n Request_Top_P = \"gen_ai.request.top_p\",\n Response_Finish_Reasons = \"gen_ai.response.finish_reasons\",\n Response_Id = \"gen_ai.response.id\",\n Response_Model = \"gen_ai.response.model\",\n Usage_Input_Tokens = \"gen_ai.usage.input_tokens\",\n Usage_Output_Tokens = \"gen_ai.usage.output_tokens\",\n Server_Address = \"server.address\",\n}\n\nexport function getRequestBody(request: PipelineRequest): GetChatCompletionsBodyParam {\n return { body: JSON.parse(request.body as string) };\n}\n\nexport function getSpanName(request: PipelineRequest): string {\n const { body } = getRequestBody(request);\n return `chat ${body?.model ?? \"\"}`.trim();\n}\n\nexport function onStartTracing(span: TracingSpan, request: PipelineRequest, url: string): void {\n if (!span.isRecording()) {\n return;\n }\n\n const urlObj = new URL(url);\n const port = Number(urlObj.port) || (urlObj.protocol === \"https:\" ? undefined : 80);\n\n if (port) {\n span.setAttribute(TracingAttributesEnum.Server_Port, port);\n }\n span.setAttribute(TracingAttributesEnum.Server_Address, urlObj.hostname);\n span.setAttribute(TracingAttributesEnum.Operation_Name, \"chat\");\n span.setAttribute(TracingAttributesEnum.System, \"az.ai.inference\");\n\n const { body } = getRequestBody(request);\n if (!body) return;\n\n span.setAttribute(TracingAttributesEnum.Request_Model, body.model);\n span.setAttribute(TracingAttributesEnum.Request_Frequency_Penalty, body.frequency_penalty);\n span.setAttribute(TracingAttributesEnum.Request_Max_Tokens, body.max_tokens);\n span.setAttribute(TracingAttributesEnum.Request_Presence_Penalty, body.presence_penalty);\n span.setAttribute(TracingAttributesEnum.Request_Stop_Sequences, body.stop);\n span.setAttribute(TracingAttributesEnum.Request_Temperature, body.temperature);\n span.setAttribute(TracingAttributesEnum.Request_Top_P, body.top_p);\n\n if (body.messages) {\n addRequestChatMessageEvent(span, body.messages);\n }\n}\n\nexport function tryProcessResponse(span: TracingSpan, response?: PipelineResponse): void {\n if (!span.isRecording()) {\n return;\n }\n\n if (response?.bodyAsText) {\n const body: any = JSON.parse(response.bodyAsText);\n if (body.error ?? body.message) {\n span.setAttribute(TracingAttributesEnum.Error_Type, `${body.status ?? body.statusCode}`);\n span.setStatus({\n status: \"error\",\n error: body.error ?? body.message, // message is not in the schema of the response, but it can present if there is crediential error\n });\n }\n span.setAttribute(TracingAttributesEnum.Response_Id, body.id);\n span.setAttribute(TracingAttributesEnum.Response_Model, body.model);\n if (body.choices) {\n span.setAttribute(\n TracingAttributesEnum.Response_Finish_Reasons,\n body.choices.map((choice: ChatChoiceOutput) => choice.finish_reason).join(\",\"),\n );\n }\n if (body.usage) {\n span.setAttribute(TracingAttributesEnum.Usage_Input_Tokens, body.usage.prompt_tokens);\n span.setAttribute(TracingAttributesEnum.Usage_Output_Tokens, body.usage.completion_tokens);\n }\n addResponseChatMessageEvent(span, body);\n }\n}\n\nexport function tryProcessError(span: TracingSpan, error: unknown): void {\n span.setStatus({\n status: \"error\",\n error: isError(error) ? error : undefined,\n });\n}\n\n/*\n* Add event to span. Sample:\n {\n name: 'gen_ai.user.message',\n attributes: {\n 'gen_ai.system': 'INFERENCE_GEN_AI_SYSTEM_NAME',\n 'gen_ai.event.content': `{\"role\":\"user\",\"content\":\"What's the weather like in Boston?\"}` \n },\n time: [ 1725666879, 622695900 ],\n droppedAttributesCount: 0\n },\n*/\nfunction addRequestChatMessageEvent(span: TracingSpan, messages: Array<ChatRequestMessage>): void {\n messages.forEach((message: any) => {\n if (message.role) {\n const content: {\n content?: string;\n tool_calls?: Array<ChatCompletionsToolCallOutput>;\n id?: string;\n } = {};\n\n const chatMsg = message as ChatRequestSystemMessage;\n if (chatMsg.content) {\n content.content = chatMsg.content;\n }\n if (!isContentRecordingEnabled()) {\n content.content = \"\";\n }\n\n const assistantMsg = message as ChatRequestAssistantMessage;\n if (assistantMsg.tool_calls) {\n content.tool_calls = assistantMsg.tool_calls;\n if (!isContentRecordingEnabled()) {\n const toolCalls: Array<ChatCompletionsToolCallOutput> = JSON.parse(\n JSON.stringify(content.tool_calls),\n );\n toolCalls.forEach((toolCall) => {\n if (toolCall.function.arguments) {\n toolCall.function.arguments = \"\";\n }\n toolCall.function.name = \"\";\n });\n content.tool_calls = toolCalls;\n }\n }\n\n const toolMsg: ChatRequestToolMessage = message;\n if (toolMsg.tool_call_id) {\n content.id = toolMsg.tool_call_id;\n }\n\n span.addEvent?.(`gen_ai.${message.role}.message`, {\n attributes: {\n \"gen_ai.system\": INFERENCE_GEN_AI_SYSTEM_NAME,\n \"gen_ai.event.content\": JSON.stringify(content),\n },\n });\n }\n });\n}\n\n/*\n* Add event to span. Sample:\n{\n name: 'gen_ai.choice',\n attributes: {\n 'gen_ai.system': 'INFERENCE_GEN_AI_SYSTEM_NAME',\n 'gen_ai.event.content': '{\"finish_reason\":\"tool_calls\",\"index\":0,\"message\":{\"content\":\"\"}}'\n },\n time: [ 1725666881, 780608000 ],\n droppedAttributesCount: 0\n} \n*/\nfunction addResponseChatMessageEvent(span: TracingSpan, body: ChatCompletionsOutput): void {\n if (!span.addEvent) {\n return;\n }\n\n body?.choices?.forEach((choice: ChatChoiceOutput) => {\n let message: { content?: string; toolCalls?: Array<ChatCompletionsToolCallOutput> } = {};\n\n if (choice.message.content) {\n message.content = choice.message.content;\n }\n if (choice.message.tool_calls) {\n message.toolCalls = choice.message.tool_calls;\n }\n\n if (!isContentRecordingEnabled()) {\n message = JSON.parse(JSON.stringify(message));\n message.content = \"\";\n if (message.toolCalls) {\n message.toolCalls.forEach((toolCall) => {\n if (toolCall.function.arguments) {\n toolCall.function.arguments = \"\";\n }\n toolCall.function.name = \"\";\n });\n }\n }\n\n const response = {\n finish_reason: choice.finish_reason,\n index: choice.index,\n message,\n };\n const attributes = {\n \"gen_ai.system\": INFERENCE_GEN_AI_SYSTEM_NAME,\n \"gen_ai.event.content\": JSON.stringify(response),\n };\n\n span.addEvent?.(\"gen_ai.choice\", { attributes });\n });\n}\n\nfunction envVarToBoolean(key: string): boolean {\n const value = process.env[key] ?? process.env[key.toLowerCase()];\n return value !== \"false\" && value !== \"0\" && Boolean(value);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { PipelinePolicy } from "@azure/core-rest-pipeline";
1
+ import type { PipelinePolicy } from "@azure/core-rest-pipeline";
2
2
  /**
3
3
  * The programmatic identifier of the tracingPolicy.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tracingPolicy.d.ts","sourceRoot":"","sources":["../../src/tracingPolicy.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,cAAc,EAIf,MAAM,2BAA2B,CAAC;AAGnC;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,cAAc,CAyC9C"}
1
+ {"version":3,"file":"tracingPolicy.d.ts","sourceRoot":"","sources":["../../src/tracingPolicy.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,2BAA2B,CAAC;AAGnC;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,cAAc,CAyC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracingPolicy.js","sourceRoot":"","sources":["../../src/tracingPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAIL,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,SAAS,EAAE,6BAA6B;QACxC,WAAW,EAAE,0BAA0B;QACvC,cAAc,EAAE,WAAW;KAC5B,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;;YAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IACE,CAAC,aAAa;gBACd,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;iBACvC,MAAA,MAAA,cAAc,CAAC,OAAO,CAAC,0CAAE,IAAI,0CAAE,MAAM,CAAA,EACrC,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,MAAA,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,mCAAI,EAAE,CAAC;YAE7E,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC;gBACH,MAAA,OAAO,CAAC,cAAc,oCAAtB,OAAO,CAAC,cAAc,GAAK,EAAE,EAAC;gBAC9B,OAAO,CAAC,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC;gBAEvD,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChF,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnC,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,CAAC;YACZ,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,aAA4B,EAC5B,OAAwB;IAExB,IAAI,CAAC;QACH,oFAAoF;QACpF,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,SAAS,CACtD,WAAW,CAAC,OAAO,CAAC,EACpB,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,EAC1C;YACE,QAAQ,EAAE,QAAQ;SACnB,CACF,CAAC;QAEF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;IAChF,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,qDAAqD,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type TracingClient,\n type TracingContext,\n type TracingSpan,\n createTracingClient,\n} from \"@azure/core-tracing\";\nimport { logger } from \"./logger.js\";\nimport { getErrorMessage } from \"@azure/core-util\";\nimport {\n tryProcessResponse,\n onStartTracing,\n tryProcessError,\n getSpanName,\n getRequestBody,\n} from \"./tracingHelper.js\";\nimport {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { SDK_VERSION } from \"./constants.js\";\n\n/**\n * The programmatic identifier of the tracingPolicy.\n */\nexport const tracingPolicyName = \"inferenceTracingPolicy\";\n\n/**\n * A simple policy to create OpenTelemetry Spans for each request made by the pipeline\n * that has SpanOptions with a parent.\n * Requests made without a parent Span will not be recorded.\n */\nexport function tracingPolicy(): PipelinePolicy {\n const tracingClient = createTracingClient({\n namespace: \"Microsoft.CognitiveServices\",\n packageName: \"@azure/ai-inference-rest\",\n packageVersion: SDK_VERSION,\n });\n\n return {\n name: tracingPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const url = new URL(request.url);\n if (\n !tracingClient ||\n !url.href.endsWith(\"/chat/completions\") ||\n getRequestBody(request)?.body?.stream\n ) {\n return next(request);\n }\n\n const { span, tracingContext } = tryCreateSpan(tracingClient, request) ?? {};\n\n if (!span || !tracingContext) {\n return next(request);\n }\n\n try {\n request.tracingOptions ??= {};\n request.tracingOptions.tracingContext = tracingContext;\n\n onStartTracing(span, request, request.url);\n const response = await tracingClient.withContext(tracingContext, next, request);\n tryProcessResponse(span, response);\n return response;\n } catch (err: any) {\n tryProcessError(span, err);\n throw err;\n } finally {\n span.end();\n }\n },\n };\n}\n\nfunction tryCreateSpan(\n tracingClient: TracingClient,\n request: PipelineRequest,\n): { span: TracingSpan; tracingContext: TracingContext } | undefined {\n try {\n // As per spec, we do not need to differentiate between HTTP and HTTPS in span name.\n const { span, updatedOptions } = tracingClient.startSpan(\n getSpanName(request),\n { tracingOptions: request.tracingOptions },\n {\n spanKind: \"client\",\n },\n );\n\n return { span, tracingContext: updatedOptions.tracingOptions.tracingContext };\n } catch (e: any) {\n logger.warning(`Skipping creating a tracing span due to an error: ${getErrorMessage(e)}`);\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"tracingPolicy.js","sourceRoot":"","sources":["../../src/tracingPolicy.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAIL,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,SAAS,EAAE,6BAA6B;QACxC,WAAW,EAAE,0BAA0B;QACvC,cAAc,EAAE,WAAW;KAC5B,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,KAAK,CAAC,WAAW,CAAC,OAAwB,EAAE,IAAiB;;YAC3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IACE,CAAC,aAAa;gBACd,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;iBACvC,MAAA,MAAA,cAAc,CAAC,OAAO,CAAC,0CAAE,IAAI,0CAAE,MAAM,CAAA,EACrC,CAAC;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,MAAA,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,mCAAI,EAAE,CAAC;YAE7E,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC;gBACH,MAAA,OAAO,CAAC,cAAc,oCAAtB,OAAO,CAAC,cAAc,GAAK,EAAE,EAAC;gBAC9B,OAAO,CAAC,cAAc,CAAC,cAAc,GAAG,cAAc,CAAC;gBAEvD,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChF,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACnC,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,CAAC;YACZ,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,aAA4B,EAC5B,OAAwB;IAExB,IAAI,CAAC;QACH,oFAAoF;QACpF,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,SAAS,CACtD,WAAW,CAAC,OAAO,CAAC,EACpB,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,EAC1C;YACE,QAAQ,EAAE,QAAQ;SACnB,CACF,CAAC;QAEF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;IAChF,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,CAAC,qDAAqD,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n type TracingClient,\n type TracingContext,\n type TracingSpan,\n createTracingClient,\n} from \"@azure/core-tracing\";\nimport { logger } from \"./logger.js\";\nimport { getErrorMessage } from \"@azure/core-util\";\nimport {\n tryProcessResponse,\n onStartTracing,\n tryProcessError,\n getSpanName,\n getRequestBody,\n} from \"./tracingHelper.js\";\nimport type {\n PipelinePolicy,\n PipelineRequest,\n PipelineResponse,\n SendRequest,\n} from \"@azure/core-rest-pipeline\";\nimport { SDK_VERSION } from \"./constants.js\";\n\n/**\n * The programmatic identifier of the tracingPolicy.\n */\nexport const tracingPolicyName = \"inferenceTracingPolicy\";\n\n/**\n * A simple policy to create OpenTelemetry Spans for each request made by the pipeline\n * that has SpanOptions with a parent.\n * Requests made without a parent Span will not be recorded.\n */\nexport function tracingPolicy(): PipelinePolicy {\n const tracingClient = createTracingClient({\n namespace: \"Microsoft.CognitiveServices\",\n packageName: \"@azure/ai-inference-rest\",\n packageVersion: SDK_VERSION,\n });\n\n return {\n name: tracingPolicyName,\n async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {\n const url = new URL(request.url);\n if (\n !tracingClient ||\n !url.href.endsWith(\"/chat/completions\") ||\n getRequestBody(request)?.body?.stream\n ) {\n return next(request);\n }\n\n const { span, tracingContext } = tryCreateSpan(tracingClient, request) ?? {};\n\n if (!span || !tracingContext) {\n return next(request);\n }\n\n try {\n request.tracingOptions ??= {};\n request.tracingOptions.tracingContext = tracingContext;\n\n onStartTracing(span, request, request.url);\n const response = await tracingClient.withContext(tracingContext, next, request);\n tryProcessResponse(span, response);\n return response;\n } catch (err: any) {\n tryProcessError(span, err);\n throw err;\n } finally {\n span.end();\n }\n },\n };\n}\n\nfunction tryCreateSpan(\n tracingClient: TracingClient,\n request: PipelineRequest,\n): { span: TracingSpan; tracingContext: TracingContext } | undefined {\n try {\n // As per spec, we do not need to differentiate between HTTP and HTTPS in span name.\n const { span, updatedOptions } = tracingClient.startSpan(\n getSpanName(request),\n { tracingOptions: request.tracingOptions },\n {\n spanKind: \"client\",\n },\n );\n\n return { span, tracingContext: updatedOptions.tracingOptions.tracingContext };\n } catch (e: any) {\n logger.warning(`Skipping creating a tracing span due to an error: ${getErrorMessage(e)}`);\n return undefined;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-rest/ai-inference",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.5",
4
4
  "description": "Inference API for Azure-supported AI models",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -38,7 +38,8 @@
38
38
  "browser",
39
39
  "react-native"
40
40
  ],
41
- "selfLink": false
41
+ "selfLink": false,
42
+ "project": "./tsconfig.src.json"
42
43
  },
43
44
  "type": "module",
44
45
  "files": [
@@ -94,33 +95,32 @@
94
95
  "@azure/dev-tool": "^1.0.0",
95
96
  "@azure/eslint-plugin-azure-sdk": "^3.0.0",
96
97
  "@azure/identity": "^4.3.0",
97
- "@microsoft/api-extractor": "^7.47.0",
98
+ "@azure/monitor-opentelemetry-exporter": "1.0.0-beta.27",
99
+ "@azure/opentelemetry-instrumentation-azure-sdk": "1.0.0-beta.7",
98
100
  "@opentelemetry/api": "^1.9.0",
101
+ "@opentelemetry/instrumentation": "^0.57.1",
102
+ "@opentelemetry/sdk-trace-node": "^1.30.1",
99
103
  "@types/node": "^18.0.0",
100
104
  "@vitest/browser": "^2.0.5",
101
105
  "@vitest/coverage-istanbul": "^2.0.5",
102
106
  "autorest": "latest",
103
- "cross-env": "7.0.3",
104
107
  "dotenv": "^16.4.5",
105
108
  "eslint": "^9.9.0",
106
- "mkdirp": "^3.0.1",
107
109
  "playwright": "^1.41.2",
108
- "rimraf": "^5.0.5",
109
110
  "source-map-support": "^0.5.9",
110
- "typescript": "~5.6.2",
111
+ "typescript": "~5.7.2",
111
112
  "vitest": "^2.0.5"
112
113
  },
113
114
  "scripts": {
114
- "audit": "node ../../../common/scripts/rush-audit.js && rimraf node_modules package-lock.json && npm i --package-lock-only 2>&1 && npm audit",
115
- "build": "npm run clean && dev-tool run build-package && mkdirp ./review && dev-tool run extract-api",
115
+ "build": "npm run clean && dev-tool run build-package && dev-tool run vendored mkdirp ./review && dev-tool run extract-api",
116
116
  "build:samples": "echo Obsolete",
117
117
  "build:test": "npm run clean && dev-tool run build-package && dev-tool run build-test",
118
118
  "check-format": "echo skipped",
119
- "clean": "rimraf --glob dist dist-* test-dist temp types *.tgz *.log",
119
+ "clean": "dev-tool run vendored rimraf --glob dist dist-* test-dist temp types *.tgz *.log",
120
120
  "execute:samples": "dev-tool samples run samples-dev",
121
- "extract-api": "rimraf review && mkdirp ./review && dev-tool run extract-api",
121
+ "extract-api": "dev-tool run vendored rimraf review && dev-tool run vendored mkdirp ./review && dev-tool run extract-api",
122
122
  "format": "dev-tool run vendored prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"",
123
- "generate": "rimraf ./src/generated && mkdirp ./src/generated && cp tsp-location.yaml ./src/generated && tsp-client update -o ./src/generated && rimraf ./src/generated/tsp-location.yaml",
123
+ "generate": "dev-tool run vendored rimraf ./src/generated && dev-tool run vendored mkdirp ./src/generated && cp tsp-location.yaml ./src/generated && tsp-client update -o ./src/generated && dev-tool run vendored rimraf ./src/generated/tsp-location.yaml",
124
124
  "integration-test": "npm run integration-test:node && npm run integration-test:browser",
125
125
  "integration-test:browser": "npm run unit-test:browser",
126
126
  "integration-test:node": "echo skipped",