@sap-ai-sdk/foundation-models 1.15.1-20250626013223.0 → 1.15.1-20250628013201.0
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/dist/azure-openai/azure-openai-chat-client.d.ts.map +1 -1
- package/dist/azure-openai/azure-openai-chat-client.js +1 -0
- package/dist/azure-openai/azure-openai-chat-client.js.map +1 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream-chunk-response.d.ts +14 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream-chunk-response.d.ts.map +1 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream-chunk-response.js +21 -2
- package/dist/azure-openai/azure-openai-chat-completion-stream-chunk-response.js.map +1 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream-response.d.ts +13 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream-response.d.ts.map +1 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream-response.js +34 -0
- package/dist/azure-openai/azure-openai-chat-completion-stream-response.js.map +1 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream.d.ts +4 -0
- package/dist/azure-openai/azure-openai-chat-completion-stream.d.ts.map +1 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream.js +33 -1
- package/dist/azure-openai/azure-openai-chat-completion-stream.js.map +1 -1
- package/dist/azure-openai/util/index.d.ts +2 -0
- package/dist/azure-openai/util/index.d.ts.map +1 -0
- package/dist/azure-openai/util/index.js +2 -0
- package/dist/azure-openai/util/index.js.map +1 -0
- package/dist/azure-openai/util/tool-calls.d.ts +24 -0
- package/dist/azure-openai/util/tool-calls.d.ts.map +1 -0
- package/dist/azure-openai/util/tool-calls.js +48 -0
- package/dist/azure-openai/util/tool-calls.js.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-client.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAE5G,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,yDAAyD,CAAC;AAE5H,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEjF;;GAEG;AACH,qBAAa,qBAAqB;IAO9B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,WAAW,CAAC;IAPtB;;;;OAIG;gBAEO,eAAe,EAAE,eAAe,CAAC,oBAAoB,CAAC,EACtD,WAAW,CAAC,EAAE,6BAA6B,YAAA;IAGrD;;;;;OAKG;IACG,GAAG,CACP,IAAI,EAAE,sCAAsC,EAC5C,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAK7C;;;;;;OAMG;IACG,MAAM,CACV,IAAI,EAAE,sCAAsC,EAC5C,UAAU,kBAAwB,EAClC,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CACR,uCAAuC,CAAC,4CAA4C,CAAC,CACtF;
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-client.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAE5G,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,yDAAyD,CAAC;AAE5H,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAEjF;;GAEG;AACH,qBAAa,qBAAqB;IAO9B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,WAAW,CAAC;IAPtB;;;;OAIG;gBAEO,eAAe,EAAE,eAAe,CAAC,oBAAoB,CAAC,EACtD,WAAW,CAAC,EAAE,6BAA6B,YAAA;IAGrD;;;;;OAKG;IACG,GAAG,CACP,IAAI,EAAE,sCAAsC,EAC5C,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CAAC,iCAAiC,CAAC;IAK7C;;;;;;OAMG;IACG,MAAM,CACV,IAAI,EAAE,sCAAsC,EAC5C,UAAU,kBAAwB,EAClC,aAAa,CAAC,EAAE,mBAAmB,GAClC,OAAO,CACR,uCAAuC,CAAC,4CAA4C,CAAC,CACtF;YAWa,cAAc;YAsBd,YAAY;CAqB3B"}
|
|
@@ -40,6 +40,7 @@ export class AzureOpenAiChatClient {
|
|
|
40
40
|
const response = new AzureOpenAiChatCompletionStreamResponse();
|
|
41
41
|
response.stream = (await this.createStream(data, controller, requestConfig))
|
|
42
42
|
._pipe(AzureOpenAiChatCompletionStream._processChunk)
|
|
43
|
+
._pipe(AzureOpenAiChatCompletionStream._processToolCalls, response)
|
|
43
44
|
._pipe(AzureOpenAiChatCompletionStream._processFinishReason, response)
|
|
44
45
|
._pipe(AzureOpenAiChatCompletionStream._processTokenUsage, response);
|
|
45
46
|
return response;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-client.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAA6B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAC5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAM3F;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAOtB;IACA;IAPV;;;;OAIG;IACH,YACU,eAAsD,EACtD,WAA2C;QAD3C,oBAAe,GAAf,eAAe,CAAuC;QACtD,gBAAW,GAAX,WAAW,CAAgC;IAClD,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,IAA4C,EAC5C,aAAmC;QAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,IAAI,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,IAA4C,EAC5C,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,aAAmC;QAInC,MAAM,QAAQ,GACZ,IAAI,uCAAuC,EAAgD,CAAC;QAC9F,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;aACzE,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC;aACpD,KAAK,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,QAAQ,CAAC;aACrE,KAAK,CAAC,+BAA+B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,IAA4C,EAC5C,aAAmC;QAEnC,MAAM,YAAY,GAAG,MAAM,eAAe,CACxC,IAAI,CAAC,eAAe,EACpB,cAAc,EACd,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO,cAAc,CACnB;YACE,GAAG,EAAE,0BAA0B,YAAY,mBAAmB;YAC9D,UAAU;YACV,aAAa;SACd,EACD,IAAI,EACJ,aAAa,EACb,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,IAA4C,EAC5C,UAA2B,EAC3B,aAAmC;QAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CACxC;YACE,GAAG,IAAI;YACP,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE;gBACd,aAAa,EAAE,IAAI;aACpB;SACF,EACD;YACE,GAAG,aAAa;YAChB,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CACF,CAAC;QACF,OAAO,+BAA+B,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-client.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,eAAe,EACf,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAA6B,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAC5G,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAM3F;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAOtB;IACA;IAPV;;;;OAIG;IACH,YACU,eAAsD,EACtD,WAA2C;QAD3C,oBAAe,GAAf,eAAe,CAAuC;QACtD,gBAAW,GAAX,WAAW,CAAgC;IAClD,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,IAA4C,EAC5C,aAAmC;QAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,IAAI,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,IAA4C,EAC5C,UAAU,GAAG,IAAI,eAAe,EAAE,EAClC,aAAmC;QAInC,MAAM,QAAQ,GACZ,IAAI,uCAAuC,EAAgD,CAAC;QAC9F,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;aACzE,KAAK,CAAC,+BAA+B,CAAC,aAAa,CAAC;aACpD,KAAK,CAAC,+BAA+B,CAAC,iBAAiB,EAAE,QAAQ,CAAC;aAClE,KAAK,CAAC,+BAA+B,CAAC,oBAAoB,EAAE,QAAQ,CAAC;aACrE,KAAK,CAAC,+BAA+B,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,IAA4C,EAC5C,aAAmC;QAEnC,MAAM,YAAY,GAAG,MAAM,eAAe,CACxC,IAAI,CAAC,eAAe,EACpB,cAAc,EACd,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO,cAAc,CACnB;YACE,GAAG,EAAE,0BAA0B,YAAY,mBAAmB;YAC9D,UAAU;YACV,aAAa;SACd,EACD,IAAI,EACJ,aAAa,EACb,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,IAA4C,EAC5C,UAA2B,EAC3B,aAAmC;QAEnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CACxC;YACE,GAAG,IAAI;YACP,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE;gBACd,aAAa,EAAE,IAAI;aACpB;SACF,EACD;YACE,GAAG,aAAa;YAChB,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CACF,CAAC;QACF,OAAO,+BAA+B,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AzureOpenAiCompletionUsage, AzureOpenAiCreateChatCompletionStreamResponse } from './client/inference/schema/index.js';
|
|
1
|
+
import type { AzureOpenAiChatCompletionMessageToolCallChunk, AzureOpenAiCompletionUsage, AzureOpenAiCreateChatCompletionStreamResponse } from './client/inference/schema/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Azure OpenAI chat completion stream chunk response.
|
|
4
4
|
*/
|
|
@@ -22,5 +22,18 @@ export declare class AzureOpenAiChatCompletionStreamChunkResponse {
|
|
|
22
22
|
* @returns The message delta content.
|
|
23
23
|
*/
|
|
24
24
|
getDeltaContent(choiceIndex?: number): string | undefined | null;
|
|
25
|
+
/**
|
|
26
|
+
* Gets the delta tool calls for a specific choice index.
|
|
27
|
+
* @param choiceIndex - The index of the choice to parse.
|
|
28
|
+
* @returns The delta tool calls for the specified choice index.
|
|
29
|
+
*/
|
|
30
|
+
getDeltaToolCalls(choiceIndex?: number): AzureOpenAiChatCompletionMessageToolCallChunk[] | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Parses the chunk response and returns the choice by index.
|
|
33
|
+
* @param index - The index of the choice to find.
|
|
34
|
+
* @returns An {@link LLMChoiceStreaming} object associated withe index.
|
|
35
|
+
*/
|
|
36
|
+
findChoiceByIndex(index: number): AzureOpenAiCreateChatCompletionStreamResponse['choices'][0] | undefined;
|
|
37
|
+
private getChoices;
|
|
25
38
|
}
|
|
26
39
|
//# sourceMappingURL=azure-openai-chat-completion-stream-chunk-response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-completion-stream-chunk-response.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-chunk-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,qBAAa,4CAA4C;aAErC,IAAI,EAAE,6CAA6C;gBAAnD,IAAI,EAAE,6CAA6C;IAKrE;;;OAGG;IACH,aAAa,IAAI,0BAA0B,GAAG,IAAI;IAIlD;;;;OAIG;IACH,eAAe,CACb,WAAW,SAAI,GAEb,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAC5E,SAAS;IAIb;;;;OAIG;IACH,eAAe,CAAC,WAAW,SAAI,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-completion-stream-chunk-response.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-chunk-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6CAA6C,EAC7C,0BAA0B,EAC1B,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,qBAAa,4CAA4C;aAErC,IAAI,EAAE,6CAA6C;gBAAnD,IAAI,EAAE,6CAA6C;IAKrE;;;OAGG;IACH,aAAa,IAAI,0BAA0B,GAAG,IAAI;IAIlD;;;;OAIG;IACH,eAAe,CACb,WAAW,SAAI,GAEb,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAC5E,SAAS;IAIb;;;;OAIG;IACH,eAAe,CAAC,WAAW,SAAI,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI;IAI3D;;;;OAIG;IACH,iBAAiB,CACf,WAAW,SAAI,GACd,6CAA6C,EAAE,GAAG,SAAS;IAI9D;;;;OAIG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,GACZ,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;IAI1E,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -20,7 +20,7 @@ export class AzureOpenAiChatCompletionStreamChunkResponse {
|
|
|
20
20
|
* @returns The finish reason.
|
|
21
21
|
*/
|
|
22
22
|
getFinishReason(choiceIndex = 0) {
|
|
23
|
-
return this.
|
|
23
|
+
return this.findChoiceByIndex(choiceIndex)?.finish_reason;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Parses the chunk response and returns the delta content.
|
|
@@ -28,7 +28,26 @@ export class AzureOpenAiChatCompletionStreamChunkResponse {
|
|
|
28
28
|
* @returns The message delta content.
|
|
29
29
|
*/
|
|
30
30
|
getDeltaContent(choiceIndex = 0) {
|
|
31
|
-
return this.
|
|
31
|
+
return this.findChoiceByIndex(choiceIndex)?.delta.content;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Gets the delta tool calls for a specific choice index.
|
|
35
|
+
* @param choiceIndex - The index of the choice to parse.
|
|
36
|
+
* @returns The delta tool calls for the specified choice index.
|
|
37
|
+
*/
|
|
38
|
+
getDeltaToolCalls(choiceIndex = 0) {
|
|
39
|
+
return this.findChoiceByIndex(choiceIndex)?.delta.tool_calls;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Parses the chunk response and returns the choice by index.
|
|
43
|
+
* @param index - The index of the choice to find.
|
|
44
|
+
* @returns An {@link LLMChoiceStreaming} object associated withe index.
|
|
45
|
+
*/
|
|
46
|
+
findChoiceByIndex(index) {
|
|
47
|
+
return this.getChoices()?.find(c => c.index === index);
|
|
48
|
+
}
|
|
49
|
+
getChoices() {
|
|
50
|
+
return this.data.choices;
|
|
32
51
|
}
|
|
33
52
|
}
|
|
34
53
|
//# sourceMappingURL=azure-openai-chat-completion-stream-chunk-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-completion-stream-chunk-response.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-chunk-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-completion-stream-chunk-response.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-chunk-response.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,OAAO,4CAA4C;IAErC;IADlB,YACkB,IAAmD;QAAnD,SAAI,GAAJ,IAAI,CAA+C;QAEnE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,eAAe,CACb,WAAW,GAAG,CAAC;QAIf,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,WAAW,GAAG,CAAC;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,WAAW,GAAG,CAAC;QAEf,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,KAAa;QAEb,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACzD,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type ToolCallAccumulator } from './util/index.js';
|
|
2
|
+
import type { AzureOpenAiChatCompletionMessageToolCalls, AzureOpenAiCompletionUsage, AzureOpenAiCreateChatCompletionStreamResponse } from './client/inference/schema/index.js';
|
|
2
3
|
import type { AzureOpenAiChatCompletionStream } from './azure-openai-chat-completion-stream.js';
|
|
3
4
|
/**
|
|
4
5
|
* Azure OpenAI chat completion stream response.
|
|
@@ -9,6 +10,7 @@ export declare class AzureOpenAiChatCompletionStreamResponse<T> {
|
|
|
9
10
|
* Finish reasons for all choices.
|
|
10
11
|
*/
|
|
11
12
|
private _finishReasons;
|
|
13
|
+
private _toolCallsAccumulators;
|
|
12
14
|
private _stream;
|
|
13
15
|
getTokenUsage(): AzureOpenAiCompletionUsage | undefined;
|
|
14
16
|
/**
|
|
@@ -24,6 +26,16 @@ export declare class AzureOpenAiChatCompletionStreamResponse<T> {
|
|
|
24
26
|
* @internal
|
|
25
27
|
*/
|
|
26
28
|
_setFinishReasons(finishReasons: Map<number, AzureOpenAiCreateChatCompletionStreamResponse['choices'][0]['finish_reason']>): void;
|
|
29
|
+
/**
|
|
30
|
+
* Gets the tool calls for a specific choice index.
|
|
31
|
+
* @param choiceIndex - The index of the choice to get the tool calls for.
|
|
32
|
+
* @returns The tool calls for the specified choice index.
|
|
33
|
+
*/
|
|
34
|
+
getToolCalls(choiceIndex?: number): AzureOpenAiChatCompletionMessageToolCalls | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
_getToolCallsAccumulators(): Map<number, Map<number, ToolCallAccumulator>>;
|
|
27
39
|
get stream(): AzureOpenAiChatCompletionStream<T>;
|
|
28
40
|
/**
|
|
29
41
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-completion-stream-response.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAEhG;;GAEG;AACH,qBAAa,uCAAuC,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAyC;IACvD;;OAEG;IACH,OAAO,CAAC,cAAc,CAGR;IACd,OAAO,CAAC,OAAO,CAAiD;IAEzD,aAAa,IAAI,0BAA0B,GAAG,SAAS;IAI9D;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,0BAA0B,GAAG,IAAI;IAIhD,eAAe,CACpB,WAAW,SAAI,GAEb,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAC5E,SAAS;IAIb;;OAEG;IACH,iBAAiB,IAAI,GAAG,CACtB,MAAM,EACN,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAC7E;IAID;;OAEG;IACH,iBAAiB,CACf,aAAa,EAAE,GAAG,CAChB,MAAM,EACN,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAC7E,GACA,IAAI;IAIP,IAAI,MAAM,IAAI,+BAA+B,CAAC,CAAC,CAAC,CAK/C;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAEpD;CACF"}
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-completion-stream-response.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EACV,yCAAyC,EACzC,0BAA0B,EAC1B,6CAA6C,EAC9C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAEhG;;GAEG;AACH,qBAAa,uCAAuC,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAyC;IACvD;;OAEG;IACH,OAAO,CAAC,cAAc,CAGR;IACd,OAAO,CAAC,sBAAsB,CAGhB;IACd,OAAO,CAAC,OAAO,CAAiD;IAEzD,aAAa,IAAI,0BAA0B,GAAG,SAAS;IAI9D;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,0BAA0B,GAAG,IAAI;IAIhD,eAAe,CACpB,WAAW,SAAI,GAEb,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAC5E,SAAS;IAIb;;OAEG;IACH,iBAAiB,IAAI,GAAG,CACtB,MAAM,EACN,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAC7E;IAID;;OAEG;IACH,iBAAiB,CACf,aAAa,EAAE,GAAG,CAChB,MAAM,EACN,6CAA6C,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAC7E,GACA,IAAI;IAIP;;;;OAIG;IACI,YAAY,CACjB,WAAW,SAAI,GACd,yCAAyC,GAAG,SAAS;IAuBxD;;OAEG;IACH,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAI1E,IAAI,MAAM,IAAI,+BAA+B,CAAC,CAAC,CAAC,CAK/C;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC,EAEpD;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isMessageToolCall } from './util/index.js';
|
|
1
2
|
/**
|
|
2
3
|
* Azure OpenAI chat completion stream response.
|
|
3
4
|
*/
|
|
@@ -7,6 +8,7 @@ export class AzureOpenAiChatCompletionStreamResponse {
|
|
|
7
8
|
* Finish reasons for all choices.
|
|
8
9
|
*/
|
|
9
10
|
_finishReasons = new Map();
|
|
11
|
+
_toolCallsAccumulators = new Map();
|
|
10
12
|
_stream;
|
|
11
13
|
getTokenUsage() {
|
|
12
14
|
return this._usage;
|
|
@@ -32,6 +34,38 @@ export class AzureOpenAiChatCompletionStreamResponse {
|
|
|
32
34
|
_setFinishReasons(finishReasons) {
|
|
33
35
|
this._finishReasons = finishReasons;
|
|
34
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Gets the tool calls for a specific choice index.
|
|
39
|
+
* @param choiceIndex - The index of the choice to get the tool calls for.
|
|
40
|
+
* @returns The tool calls for the specified choice index.
|
|
41
|
+
*/
|
|
42
|
+
getToolCalls(choiceIndex = 0) {
|
|
43
|
+
try {
|
|
44
|
+
const toolCallsAccumulators = this._toolCallsAccumulators.get(choiceIndex);
|
|
45
|
+
if (!toolCallsAccumulators) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
const toolCalls = [];
|
|
49
|
+
for (const [id, acc] of toolCallsAccumulators.entries()) {
|
|
50
|
+
if (isMessageToolCall(acc)) {
|
|
51
|
+
toolCalls.push(acc);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
throw new Error(`Tool call with id ${id} was incomplete.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return toolCalls;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw new Error(`Error while getting tool calls for choice index ${choiceIndex}: ${error}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
_getToolCallsAccumulators() {
|
|
67
|
+
return this._toolCallsAccumulators;
|
|
68
|
+
}
|
|
35
69
|
get stream() {
|
|
36
70
|
if (!this._stream) {
|
|
37
71
|
throw new Error('Response stream is undefined.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-completion-stream-response.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-response.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-completion-stream-response.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream-response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,iBAAiB,CAAC;AAQ9E;;GAEG;AACH,MAAM,OAAO,uCAAuC;IAC1C,MAAM,CAAyC;IACvD;;OAEG;IACK,cAAc,GAGlB,IAAI,GAAG,EAAE,CAAC;IACN,sBAAsB,GAG1B,IAAI,GAAG,EAAE,CAAC;IACN,OAAO,CAAiD;IAEzD,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAiC;QAC9C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,eAAe,CACpB,WAAW,GAAG,CAAC;QAIf,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,iBAAiB;QAIf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,aAGC;QAED,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,YAAY,CACjB,WAAW,GAAG,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,qBAAqB,GACzB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,SAAS,GAA8C,EAAE,CAAC;YAChE,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxD,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,mDAAmD,WAAW,KAAK,KAAK,EAAE,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAI,MAAM;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM,CAAC,MAA0C;QACnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -21,6 +21,10 @@ export declare class AzureOpenAiChatCompletionStream<Item> extends SseStream<Ite
|
|
|
21
21
|
* @internal
|
|
22
22
|
*/
|
|
23
23
|
static _processChunk(stream: AzureOpenAiChatCompletionStream<AzureOpenAiCreateChatCompletionStreamResponse>): AsyncGenerator<AzureOpenAiChatCompletionStreamChunkResponse>;
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
static _processToolCalls(stream: AzureOpenAiChatCompletionStream<AzureOpenAiChatCompletionStreamChunkResponse>, response?: AzureOpenAiChatCompletionStreamResponse<AzureOpenAiChatCompletionStreamChunkResponse>): AsyncGenerator<AzureOpenAiChatCompletionStreamChunkResponse>;
|
|
24
28
|
/**
|
|
25
29
|
* @internal
|
|
26
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-completion-stream.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,4CAA4C,EAAE,MAAM,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-completion-stream.d.ts","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,4CAA4C,EAAE,MAAM,yDAAyD,CAAC;AAGvH,OAAO,KAAK,EAAE,6CAA6C,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,mDAAmD,CAAC;AAOjH;;GAEG;AACH,qBAAa,+BAA+B,CAAC,IAAI,CAAE,SAAQ,SAAS,CAAC,IAAI,CAAC;IAyJ/D,QAAQ,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC;IAxJ5C;;;;;OAKG;WACW,OAAO,CACnB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,eAAe,GAC1B,+BAA+B,CAAC,6CAA6C,CAAC;IASjF;;;;OAIG;WACW,aAAa,CACzB,MAAM,EAAE,+BAA+B,CAAC,6CAA6C,CAAC,GACrF,cAAc,CAAC,4CAA4C,CAAC;IAM/D;;OAEG;WACW,iBAAiB,CAC7B,MAAM,EAAE,+BAA+B,CAAC,4CAA4C,CAAC,EACrF,QAAQ,CAAC,EAAE,uCAAuC,CAAC,4CAA4C,CAAC,GAC/F,cAAc,CAAC,4CAA4C,CAAC;IAgC/D;;OAEG;WACW,oBAAoB,CAChC,MAAM,EAAE,+BAA+B,CAAC,4CAA4C,CAAC,EACrF,QAAQ,CAAC,EAAE,uCAAuC,CAAC,4CAA4C,CAAC,GAC/F,cAAc,CAAC,4CAA4C,CAAC;IAsC/D;;OAEG;WACW,kBAAkB,CAC9B,MAAM,EAAE,+BAA+B,CAAC,4CAA4C,CAAC,EACrF,QAAQ,CAAC,EAAE,uCAAuC,CAAC,4CAA4C,CAAC,GAC/F,cAAc,CAAC,4CAA4C,CAAC;IAa/D;;;;;OAKG;WACW,qBAAqB,CACjC,MAAM,EAAE,+BAA+B,CAAC,4CAA4C,CAAC,EACrF,WAAW,SAAI,GACd,cAAc,CAAC,MAAM,CAAC;gBAWhB,QAAQ,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAC1C,UAAU,EAAE,eAAe;IAK7B;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EACX,SAAS,EAAE,CACT,MAAM,EAAE,+BAA+B,CAAC,IAAI,CAAC,EAC7C,QAAQ,CAAC,EAAE,uCAAuC,CAAC,GAAG,CAAC,KACpD,aAAa,CAAC,OAAO,CAAC,EAC3B,QAAQ,CAAC,EAAE,uCAAuC,CAAC,GAAG,CAAC,GACtD,+BAA+B,CAAC,OAAO,CAAC;IAapC,eAAe,CACpB,IAAI,EAAE,+BAA+B,CAAC,4CAA4C,CAAC,EACnF,WAAW,CAAC,EAAE,MAAM,GACnB,+BAA+B,CAAC,MAAM,CAAC;CAU3C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createLogger } from '@sap-cloud-sdk/util';
|
|
2
2
|
import { SseStream } from '@sap-ai-sdk/core';
|
|
3
3
|
import { AzureOpenAiChatCompletionStreamChunkResponse } from './azure-openai-chat-completion-stream-chunk-response.js';
|
|
4
|
+
import { mergeToolCallChunk } from './util/index.js';
|
|
4
5
|
const logger = createLogger({
|
|
5
6
|
package: 'foundation-models',
|
|
6
7
|
messageContext: 'azure-openai-chat-completion-stream'
|
|
@@ -30,12 +31,43 @@ export class AzureOpenAiChatCompletionStream extends SseStream {
|
|
|
30
31
|
yield new AzureOpenAiChatCompletionStreamChunkResponse(chunk);
|
|
31
32
|
}
|
|
32
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
static async *_processToolCalls(stream, response) {
|
|
38
|
+
if (!response) {
|
|
39
|
+
throw new Error('Response is required to process tool calls.');
|
|
40
|
+
}
|
|
41
|
+
for await (const chunk of stream) {
|
|
42
|
+
chunk.data.choices.forEach(choice => {
|
|
43
|
+
const choiceIndex = choice.index;
|
|
44
|
+
const toolCallsChunks = chunk.getDeltaToolCalls(choiceIndex);
|
|
45
|
+
if (toolCallsChunks) {
|
|
46
|
+
let toolCallAccumulators = response
|
|
47
|
+
._getToolCallsAccumulators()
|
|
48
|
+
.get(choiceIndex);
|
|
49
|
+
if (!toolCallAccumulators) {
|
|
50
|
+
toolCallAccumulators = new Map();
|
|
51
|
+
response
|
|
52
|
+
._getToolCallsAccumulators()
|
|
53
|
+
.set(choiceIndex, toolCallAccumulators);
|
|
54
|
+
}
|
|
55
|
+
toolCallsChunks.map(toolCallChunk => {
|
|
56
|
+
const toolCallId = toolCallChunk.index;
|
|
57
|
+
const toolCallAccumulator = mergeToolCallChunk(toolCallChunk, toolCallAccumulators.get(toolCallId));
|
|
58
|
+
toolCallAccumulators.set(toolCallId, toolCallAccumulator);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
yield chunk;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
33
65
|
/**
|
|
34
66
|
* @internal
|
|
35
67
|
*/
|
|
36
68
|
static async *_processFinishReason(stream, response) {
|
|
37
69
|
for await (const chunk of stream) {
|
|
38
|
-
chunk.data.choices.forEach(
|
|
70
|
+
chunk.data.choices.forEach(choice => {
|
|
39
71
|
const choiceIndex = choice.index;
|
|
40
72
|
if (choiceIndex >= 0) {
|
|
41
73
|
const finishReason = chunk.getFinishReason(choiceIndex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-openai-chat-completion-stream.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,4CAA4C,EAAE,MAAM,yDAAyD,CAAC;
|
|
1
|
+
{"version":3,"file":"azure-openai-chat-completion-stream.js","sourceRoot":"","sources":["../../src/azure-openai/azure-openai-chat-completion-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/azure-openai/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/azure-openai/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AzureOpenAiChatCompletionMessageToolCall, AzureOpenAiChatCompletionMessageToolCallChunk } from '../client/inference/schema/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export type ToolCallAccumulator = {
|
|
6
|
+
id?: string;
|
|
7
|
+
type: 'function';
|
|
8
|
+
function: {
|
|
9
|
+
name?: string;
|
|
10
|
+
arguments?: string;
|
|
11
|
+
} & Record<string, any>;
|
|
12
|
+
} & Record<string, any>;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
* Check if the accumulator is a AzureOpenAiChatCompletionMessageToolCall.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isMessageToolCall(acc: ToolCallAccumulator): acc is AzureOpenAiChatCompletionMessageToolCall;
|
|
18
|
+
/**
|
|
19
|
+
* Merge a stream of AzureOpenAiChatCompletionMessageToolCallChunk into a single AzureOpenAiChatCompletionMessageToolCall.
|
|
20
|
+
* @throws If the final object is missing required fields.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function mergeToolCallChunk(chunk: AzureOpenAiChatCompletionMessageToolCallChunk, acc?: ToolCallAccumulator): ToolCallAccumulator;
|
|
24
|
+
//# sourceMappingURL=tool-calls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-calls.d.ts","sourceRoot":"","sources":["../../../src/azure-openai/util/tool-calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wCAAwC,EACxC,6CAA6C,EAC9C,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExB;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,mBAAmB,GACvB,GAAG,IAAI,wCAAwC,CAMjD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,6CAA6C,EACpD,GAAG,CAAC,EAAE,mBAAmB,GACxB,mBAAmB,CAsCrB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
* Check if the accumulator is a AzureOpenAiChatCompletionMessageToolCall.
|
|
4
|
+
*/
|
|
5
|
+
export function isMessageToolCall(acc) {
|
|
6
|
+
return (typeof acc.id === 'string' &&
|
|
7
|
+
typeof acc.function.name === 'string' &&
|
|
8
|
+
typeof acc.function.arguments === 'string');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Merge a stream of AzureOpenAiChatCompletionMessageToolCallChunk into a single AzureOpenAiChatCompletionMessageToolCall.
|
|
12
|
+
* @throws If the final object is missing required fields.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export function mergeToolCallChunk(chunk, acc) {
|
|
16
|
+
const accumulator = acc
|
|
17
|
+
? { ...acc }
|
|
18
|
+
: {
|
|
19
|
+
type: 'function',
|
|
20
|
+
function: {}
|
|
21
|
+
};
|
|
22
|
+
if (chunk.id) {
|
|
23
|
+
accumulator.id = chunk.id;
|
|
24
|
+
}
|
|
25
|
+
// Merge any extra top‐level props
|
|
26
|
+
for (const key of Object.keys(chunk)) {
|
|
27
|
+
if (!['index', 'id', 'type', 'function'].includes(key)) {
|
|
28
|
+
accumulator[key] = chunk[key];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (chunk.function) {
|
|
32
|
+
if (chunk.function.name) {
|
|
33
|
+
accumulator.function.name = chunk.function.name;
|
|
34
|
+
}
|
|
35
|
+
if (chunk.function.arguments) {
|
|
36
|
+
accumulator.function.arguments =
|
|
37
|
+
(accumulator.function.arguments || '') + chunk.function.arguments;
|
|
38
|
+
}
|
|
39
|
+
// Merge any extra function‐scoped fields
|
|
40
|
+
for (const key of Object.keys(chunk.function)) {
|
|
41
|
+
if (!['name', 'arguments'].includes(key)) {
|
|
42
|
+
accumulator.function[key] = chunk.function[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return accumulator;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=tool-calls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-calls.js","sourceRoot":"","sources":["../../../src/azure-openai/util/tool-calls.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAwB;IAExB,OAAO,CACL,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACrC,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAC3C,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAoD,EACpD,GAAyB;IAEzB,MAAM,WAAW,GAAwB,GAAG;QAC1C,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE;QACZ,CAAC,CAAC;YACE,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,EAAE;SACb,CAAC;IAEN,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACb,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClD,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC7B,WAAW,CAAC,QAAQ,CAAC,SAAS;gBAC5B,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACtE,CAAC;QAED,yCAAyC;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAI,KAAK,CAAC,QAAgB,CAAC,GAAG,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap-ai-sdk/foundation-models",
|
|
3
|
-
"version": "1.15.1-
|
|
3
|
+
"version": "1.15.1-20250628013201.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"@sap-cloud-sdk/http-client": "^4.0.2",
|
|
24
24
|
"@sap-cloud-sdk/util": "^4.0.2",
|
|
25
25
|
"@sap-cloud-sdk/connectivity": "^4.0.2",
|
|
26
|
-
"@sap-ai-sdk/ai-api": "^1.15.1-
|
|
27
|
-
"@sap-ai-sdk/core": "^1.15.1-
|
|
26
|
+
"@sap-ai-sdk/ai-api": "^1.15.1-20250628013201.0",
|
|
27
|
+
"@sap-ai-sdk/core": "^1.15.1-20250628013201.0"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
30
|
"compile": "tsc",
|