@jerome-benoit/sap-ai-provider-v2 4.1.3 → 4.2.1

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.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
5
5
  [![Vercel AI SDK](https://img.shields.io/badge/Vercel%20AI%20SDK-5.0+-black.svg)](https://sdk.vercel.ai/docs)
6
6
  [![Language Model](https://img.shields.io/badge/Language%20Model-V2-orange.svg)](https://sdk.vercel.ai/docs/ai-sdk-core/provider-management)
7
- [![Embedding Model](https://img.shields.io/badge/Embedding%20Model-V3-green.svg)](https://sdk.vercel.ai/docs/ai-sdk-core/embeddings)
7
+ [![Embedding Model](https://img.shields.io/badge/Embedding%20Model-V2-orange.svg)](https://sdk.vercel.ai/docs/ai-sdk-core/embeddings)
8
8
 
9
9
  > **Note:** This is a **V2-compatible fork** for use with **AI SDK 5.x**.
10
10
 
@@ -549,6 +549,7 @@ authentication, model parameters, data masking, content filtering, and more.
549
549
 
550
550
  **Common Configuration:**
551
551
 
552
+ - `name`: Provider name (default: `'sap-ai'`). Used as key in `providerOptions`/`providerMetadata`.
552
553
  - `resourceGroup`: SAP AI Core resource group (default: 'default')
553
554
  - `deploymentId`: Specific deployment ID (auto-resolved if not set)
554
555
  - `modelParams`: Temperature, maxTokens, topP, and other generation parameters
package/dist/index.cjs CHANGED
@@ -29750,6 +29750,7 @@ __export(index_exports, {
29750
29750
  buildLlamaGuard38BFilter: () => import_orchestration3.buildLlamaGuard38BFilter,
29751
29751
  buildTranslationConfig: () => import_orchestration3.buildTranslationConfig,
29752
29752
  createSAPAIProvider: () => createSAPAIProvider,
29753
+ getProviderName: () => getProviderName,
29753
29754
  isConfigReference: () => import_orchestration3.isConfigReference,
29754
29755
  sapAIEmbeddingProviderOptions: () => sapAIEmbeddingProviderOptions,
29755
29756
  sapAILanguageModelProviderOptions: () => sapAILanguageModelProviderOptions,
@@ -30225,6 +30226,10 @@ function tryExtractSAPErrorFromMessage(message) {
30225
30226
  var import_provider_utils = require("@ai-sdk/provider-utils");
30226
30227
  var import_zod = require("zod");
30227
30228
  var SAP_AI_PROVIDER_NAME = "sap-ai";
30229
+ function getProviderName(providerIdentifier) {
30230
+ const dotIndex = providerIdentifier.indexOf(".");
30231
+ return dotIndex === -1 ? providerIdentifier : providerIdentifier.slice(0, dotIndex);
30232
+ }
30228
30233
  var modelParamsSchema = import_zod.z.object({
30229
30234
  /**
30230
30235
  * Frequency penalty between -2.0 and 2.0.
@@ -30412,8 +30417,9 @@ var SAPAIEmbeddingModel = class {
30412
30417
  */
30413
30418
  async doEmbed(options) {
30414
30419
  const { abortSignal, providerOptions, values } = options;
30420
+ const providerName = getProviderName(this.config.provider);
30415
30421
  const sapOptions = await (0, import_provider_utils2.parseProviderOptions)({
30416
- provider: SAP_AI_PROVIDER_NAME,
30422
+ provider: providerName,
30417
30423
  providerOptions,
30418
30424
  schema: sapAIEmbeddingProviderOptions
30419
30425
  });
@@ -30443,7 +30449,7 @@ var SAPAIEmbeddingModel = class {
30443
30449
  (data) => this.normalizeEmbedding(data.embedding)
30444
30450
  );
30445
30451
  const providerMetadata = {
30446
- "sap-ai": {
30452
+ [providerName]: {
30447
30453
  model: this.modelId
30448
30454
  }
30449
30455
  };
@@ -30965,11 +30971,12 @@ var SAPAILanguageModel = class {
30965
30971
  tokenUsage,
30966
30972
  toolCalls
30967
30973
  };
30974
+ const providerName = getProviderName(this.config.provider);
30968
30975
  return {
30969
30976
  content,
30970
30977
  finishReason,
30971
30978
  providerMetadata: {
30972
- "sap-ai": {
30979
+ [providerName]: {
30973
30980
  finishReason: finishReasonRaw ?? "unknown",
30974
30981
  finishReasonMapped: finishReason,
30975
30982
  ...typeof responseHeaders?.["x-request-id"] === "string" ? { requestId: responseHeaders["x-request-id"] } : {}
@@ -31100,6 +31107,7 @@ var SAPAILanguageModel = class {
31100
31107
  const toolCallsInProgress = /* @__PURE__ */ new Map();
31101
31108
  const sdkStream = streamResponse.stream;
31102
31109
  const modelId = this.modelId;
31110
+ const providerName = getProviderName(this.config.provider);
31103
31111
  const warningsSnapshot = [...warnings];
31104
31112
  const warningsOut = [...warningsSnapshot];
31105
31113
  const transformedStream = new ReadableStream({
@@ -31288,7 +31296,7 @@ var SAPAILanguageModel = class {
31288
31296
  controller.enqueue({
31289
31297
  finishReason: streamState.finishReason,
31290
31298
  providerMetadata: {
31291
- "sap-ai": {
31299
+ [providerName]: {
31292
31300
  finishReason: streamState.finishReason.raw,
31293
31301
  responseId
31294
31302
  }
@@ -31344,8 +31352,9 @@ var SAPAILanguageModel = class {
31344
31352
  * @internal
31345
31353
  */
31346
31354
  async buildOrchestrationConfig(options) {
31355
+ const providerName = getProviderName(this.config.provider);
31347
31356
  const sapOptions = await (0, import_provider_utils3.parseProviderOptions)({
31348
- provider: SAP_AI_PROVIDER_NAME,
31357
+ provider: providerName,
31349
31358
  providerOptions: options.providerOptions,
31350
31359
  schema: sapAILanguageModelProviderOptions
31351
31360
  });
@@ -31768,6 +31777,7 @@ function createSAPAIProvider(options = {}) {
31768
31777
  if (options.defaultSettings?.modelParams) {
31769
31778
  validateModelParamsSettings(options.defaultSettings.modelParams);
31770
31779
  }
31780
+ const providerName = options.name ?? SAP_AI_PROVIDER_NAME;
31771
31781
  const resourceGroup = options.resourceGroup ?? "default";
31772
31782
  const warnOnAmbiguousConfig = options.warnOnAmbiguousConfig ?? true;
31773
31783
  if (warnOnAmbiguousConfig && options.deploymentId && options.resourceGroup) {
@@ -31792,14 +31802,14 @@ function createSAPAIProvider(options = {}) {
31792
31802
  return new SAPAILanguageModelV2(modelId, mergedSettings, {
31793
31803
  deploymentConfig,
31794
31804
  destination: options.destination,
31795
- provider: "sap-ai"
31805
+ provider: `${providerName}.chat`
31796
31806
  });
31797
31807
  };
31798
31808
  const createEmbeddingModel = (modelId, settings = {}) => {
31799
31809
  return new SAPAIEmbeddingModelV2(modelId, settings, {
31800
31810
  deploymentConfig,
31801
31811
  destination: options.destination,
31802
- provider: "sap-ai"
31812
+ provider: `${providerName}.embedding`
31803
31813
  });
31804
31814
  };
31805
31815
  const provider = function(modelId, settings) {
@@ -31808,8 +31818,8 @@ function createSAPAIProvider(options = {}) {
31808
31818
  }
31809
31819
  return createModel(modelId, settings);
31810
31820
  };
31811
- provider.languageModel = createModel;
31812
31821
  provider.chat = createModel;
31822
+ provider.languageModel = createModel;
31813
31823
  provider.embedding = createEmbeddingModel;
31814
31824
  provider.textEmbeddingModel = createEmbeddingModel;
31815
31825
  provider.imageModel = (modelId) => {
@@ -31844,6 +31854,7 @@ var import_orchestration5 = require("@sap-ai-sdk/orchestration");
31844
31854
  buildLlamaGuard38BFilter,
31845
31855
  buildTranslationConfig,
31846
31856
  createSAPAIProvider,
31857
+ getProviderName,
31847
31858
  isConfigReference,
31848
31859
  sapAIEmbeddingProviderOptions,
31849
31860
  sapAILanguageModelProviderOptions,