@ax-llm/ax 11.0.35 → 11.0.36
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/index.cjs +132 -127
- package/index.cjs.map +1 -1
- package/index.d.cts +13 -35
- package/index.d.ts +13 -35
- package/index.js +131 -127
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -837,12 +837,6 @@ var AxBaseAI = class {
|
|
|
837
837
|
}
|
|
838
838
|
return models;
|
|
839
839
|
}
|
|
840
|
-
getDefaultModels() {
|
|
841
|
-
return {
|
|
842
|
-
model: this.defaults.model,
|
|
843
|
-
embedModel: this.defaults.embedModel
|
|
844
|
-
};
|
|
845
|
-
}
|
|
846
840
|
getName() {
|
|
847
841
|
return this.name;
|
|
848
842
|
}
|
|
@@ -999,13 +993,18 @@ var AxBaseAI = class {
|
|
|
999
993
|
if (!this.aiImpl.createChatStreamResp) {
|
|
1000
994
|
throw new Error("generateChatResp not implemented");
|
|
1001
995
|
}
|
|
1002
|
-
const respFn = this.aiImpl.createChatStreamResp;
|
|
996
|
+
const respFn = this.aiImpl.createChatStreamResp.bind(this);
|
|
1003
997
|
const wrappedRespFn = (state) => (resp) => {
|
|
1004
998
|
const res2 = respFn(resp, state);
|
|
1005
999
|
res2.sessionId = options?.sessionId;
|
|
1006
|
-
if (res2.modelUsage) {
|
|
1007
|
-
|
|
1000
|
+
if (!res2.modelUsage) {
|
|
1001
|
+
res2.modelUsage = {
|
|
1002
|
+
ai: this.name,
|
|
1003
|
+
model,
|
|
1004
|
+
tokens: this.aiImpl.getTokenUsage()
|
|
1005
|
+
};
|
|
1008
1006
|
}
|
|
1007
|
+
this.modelUsage = res2.modelUsage;
|
|
1009
1008
|
if (span?.isRecording()) {
|
|
1010
1009
|
setResponseAttr(res2, span);
|
|
1011
1010
|
}
|
|
@@ -1111,15 +1110,23 @@ var AxBaseAI = class {
|
|
|
1111
1110
|
);
|
|
1112
1111
|
return res2;
|
|
1113
1112
|
};
|
|
1114
|
-
const resValue = this.rt ? await this.rt(fn, {
|
|
1113
|
+
const resValue = this.rt ? await this.rt(fn, { modelUsage: this.embedModelUsage }) : await fn();
|
|
1115
1114
|
const res = this.aiImpl.createEmbedResp(resValue);
|
|
1116
1115
|
res.sessionId = options?.sessionId;
|
|
1116
|
+
if (!res.modelUsage) {
|
|
1117
|
+
res.modelUsage = {
|
|
1118
|
+
ai: this.name,
|
|
1119
|
+
model: embedModel,
|
|
1120
|
+
tokens: this.aiImpl.getTokenUsage()
|
|
1121
|
+
};
|
|
1122
|
+
}
|
|
1123
|
+
this.embedModelUsage = res.modelUsage;
|
|
1117
1124
|
if (span?.isRecording()) {
|
|
1118
1125
|
if (res.modelUsage) {
|
|
1119
1126
|
this.embedModelUsage = res.modelUsage;
|
|
1120
1127
|
span.setAttributes({
|
|
1121
|
-
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.completionTokens ?? 0,
|
|
1122
|
-
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.promptTokens
|
|
1128
|
+
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.tokens?.completionTokens ?? 0,
|
|
1129
|
+
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.tokens?.promptTokens
|
|
1123
1130
|
});
|
|
1124
1131
|
}
|
|
1125
1132
|
}
|
|
@@ -1148,8 +1155,8 @@ var AxBaseAI = class {
|
|
|
1148
1155
|
function setResponseAttr(res, span) {
|
|
1149
1156
|
if (res.modelUsage) {
|
|
1150
1157
|
span.setAttributes({
|
|
1151
|
-
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.completionTokens ?? 0,
|
|
1152
|
-
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.promptTokens
|
|
1158
|
+
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.tokens?.completionTokens ?? 0,
|
|
1159
|
+
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.tokens?.promptTokens
|
|
1153
1160
|
});
|
|
1154
1161
|
}
|
|
1155
1162
|
}
|
|
@@ -1204,14 +1211,14 @@ var AxAIAnthropicModel = /* @__PURE__ */ ((AxAIAnthropicModel2) => {
|
|
|
1204
1211
|
AxAIAnthropicModel2["ClaudeInstant12"] = "claude-instant-1.2";
|
|
1205
1212
|
return AxAIAnthropicModel2;
|
|
1206
1213
|
})(AxAIAnthropicModel || {});
|
|
1207
|
-
var AxAIAnthropicVertexModel = /* @__PURE__ */ ((
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
return
|
|
1214
|
+
var AxAIAnthropicVertexModel = /* @__PURE__ */ ((AxAIAnthropicVertexModel2) => {
|
|
1215
|
+
AxAIAnthropicVertexModel2["Claude37Sonnet"] = "claude-3-7-sonnet";
|
|
1216
|
+
AxAIAnthropicVertexModel2["Claude35Haiku"] = "claude-3-5-haiku";
|
|
1217
|
+
AxAIAnthropicVertexModel2["Claude35Sonnet"] = "claude-3-5-sonnet";
|
|
1218
|
+
AxAIAnthropicVertexModel2["Claude35SonnetV2"] = "claude-3-5-sonnet-v2";
|
|
1219
|
+
AxAIAnthropicVertexModel2["Claude3Haiku"] = "claude-3-haiku";
|
|
1220
|
+
AxAIAnthropicVertexModel2["Claude3Opus"] = "claude-3-opus";
|
|
1221
|
+
return AxAIAnthropicVertexModel2;
|
|
1215
1222
|
})(AxAIAnthropicVertexModel || {});
|
|
1216
1223
|
|
|
1217
1224
|
// ai/anthropic/info.ts
|
|
@@ -1265,7 +1272,11 @@ var axModelInfoAnthropic = [
|
|
|
1265
1272
|
|
|
1266
1273
|
// ai/anthropic/api.ts
|
|
1267
1274
|
var axAIAnthropicDefaultConfig = () => structuredClone({
|
|
1268
|
-
model: "claude-3-
|
|
1275
|
+
model: "claude-3-7-sonnet-latest" /* Claude37Sonnet */,
|
|
1276
|
+
...axBaseAIDefaultConfig()
|
|
1277
|
+
});
|
|
1278
|
+
var axAIAnthropicVertexDefaultConfig = () => structuredClone({
|
|
1279
|
+
model: "claude-3-7-sonnet" /* Claude37Sonnet */,
|
|
1269
1280
|
...axBaseAIDefaultConfig()
|
|
1270
1281
|
});
|
|
1271
1282
|
var AxAIAnthropicImpl = class {
|
|
@@ -1273,6 +1284,10 @@ var AxAIAnthropicImpl = class {
|
|
|
1273
1284
|
this.config = config;
|
|
1274
1285
|
this.isVertex = isVertex;
|
|
1275
1286
|
}
|
|
1287
|
+
tokensUsed;
|
|
1288
|
+
getTokenUsage() {
|
|
1289
|
+
return this.tokensUsed;
|
|
1290
|
+
}
|
|
1276
1291
|
getModelConfig() {
|
|
1277
1292
|
const { config } = this;
|
|
1278
1293
|
return {
|
|
@@ -1382,16 +1397,12 @@ var AxAIAnthropicImpl = class {
|
|
|
1382
1397
|
finishReason
|
|
1383
1398
|
};
|
|
1384
1399
|
});
|
|
1385
|
-
|
|
1400
|
+
this.tokensUsed = {
|
|
1386
1401
|
promptTokens: resp.usage.input_tokens,
|
|
1387
1402
|
completionTokens: resp.usage.output_tokens,
|
|
1388
1403
|
totalTokens: resp.usage.input_tokens + resp.usage.output_tokens
|
|
1389
1404
|
};
|
|
1390
|
-
return {
|
|
1391
|
-
results,
|
|
1392
|
-
modelUsage,
|
|
1393
|
-
remoteId: resp.id
|
|
1394
|
-
};
|
|
1405
|
+
return { results, remoteId: resp.id };
|
|
1395
1406
|
};
|
|
1396
1407
|
createChatStreamResp = (resp, state) => {
|
|
1397
1408
|
if (!("type" in resp)) {
|
|
@@ -1408,15 +1419,12 @@ var AxAIAnthropicImpl = class {
|
|
|
1408
1419
|
if (resp.type === "message_start") {
|
|
1409
1420
|
const { message } = resp;
|
|
1410
1421
|
const results = [{ content: "", id: message.id }];
|
|
1411
|
-
|
|
1422
|
+
this.tokensUsed = {
|
|
1412
1423
|
promptTokens: message.usage?.input_tokens ?? 0,
|
|
1413
1424
|
completionTokens: message.usage?.output_tokens ?? 0,
|
|
1414
1425
|
totalTokens: (message.usage?.input_tokens ?? 0) + (message.usage?.output_tokens ?? 0)
|
|
1415
1426
|
};
|
|
1416
|
-
return {
|
|
1417
|
-
results,
|
|
1418
|
-
modelUsage
|
|
1419
|
-
};
|
|
1427
|
+
return { results };
|
|
1420
1428
|
}
|
|
1421
1429
|
if (resp.type === "content_block_start") {
|
|
1422
1430
|
const { content_block: contentBlock } = resp;
|
|
@@ -1473,19 +1481,15 @@ var AxAIAnthropicImpl = class {
|
|
|
1473
1481
|
}
|
|
1474
1482
|
if (resp.type === "message_delta") {
|
|
1475
1483
|
const { delta, usage } = resp;
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
finishReason: mapFinishReason(delta.stop_reason)
|
|
1481
|
-
}
|
|
1482
|
-
],
|
|
1483
|
-
modelUsage: {
|
|
1484
|
-
promptTokens: 0,
|
|
1485
|
-
completionTokens: usage.output_tokens,
|
|
1486
|
-
totalTokens: usage.output_tokens
|
|
1487
|
-
}
|
|
1484
|
+
this.tokensUsed = {
|
|
1485
|
+
promptTokens: 0,
|
|
1486
|
+
completionTokens: usage.output_tokens,
|
|
1487
|
+
totalTokens: usage.output_tokens
|
|
1488
1488
|
};
|
|
1489
|
+
const results = [
|
|
1490
|
+
{ content: "", finishReason: mapFinishReason(delta.stop_reason) }
|
|
1491
|
+
];
|
|
1492
|
+
return { results };
|
|
1489
1493
|
}
|
|
1490
1494
|
return {
|
|
1491
1495
|
results: [{ content: "" }]
|
|
@@ -1676,6 +1680,7 @@ var AxAIOpenAIModel = /* @__PURE__ */ ((AxAIOpenAIModel2) => {
|
|
|
1676
1680
|
AxAIOpenAIModel2["O4Mini"] = "o4-mini";
|
|
1677
1681
|
AxAIOpenAIModel2["GPT4"] = "gpt-4";
|
|
1678
1682
|
AxAIOpenAIModel2["GPT41"] = "gpt-4.1";
|
|
1683
|
+
AxAIOpenAIModel2["GPT41Mini"] = "gpt-4.1-mini";
|
|
1679
1684
|
AxAIOpenAIModel2["GPT4O"] = "gpt-4o";
|
|
1680
1685
|
AxAIOpenAIModel2["GPT4OMini"] = "gpt-4o-mini";
|
|
1681
1686
|
AxAIOpenAIModel2["GPT4ChatGPT4O"] = "chatgpt-4o-latest";
|
|
@@ -1732,6 +1737,12 @@ var axModelInfoOpenAI = [
|
|
|
1732
1737
|
promptTokenCostPer1M: 2,
|
|
1733
1738
|
completionTokenCostPer1M: 8
|
|
1734
1739
|
},
|
|
1740
|
+
{
|
|
1741
|
+
name: "gpt-4.1-mini" /* GPT41Mini */,
|
|
1742
|
+
currency: "usd",
|
|
1743
|
+
promptTokenCostPer1M: 0.4,
|
|
1744
|
+
completionTokenCostPer1M: 1.6
|
|
1745
|
+
},
|
|
1735
1746
|
{
|
|
1736
1747
|
name: "gpt-4o" /* GPT4O */,
|
|
1737
1748
|
currency: "usd",
|
|
@@ -1784,28 +1795,32 @@ var axModelInfoOpenAI = [
|
|
|
1784
1795
|
|
|
1785
1796
|
// ai/openai/api.ts
|
|
1786
1797
|
var axAIOpenAIDefaultConfig = () => structuredClone({
|
|
1787
|
-
model: "gpt-
|
|
1798
|
+
model: "gpt-4.1" /* GPT41 */,
|
|
1788
1799
|
embedModel: "text-embedding-3-small" /* TextEmbedding3Small */,
|
|
1789
1800
|
...axBaseAIDefaultConfig()
|
|
1790
1801
|
});
|
|
1791
1802
|
var axAIOpenAIBestConfig = () => structuredClone({
|
|
1792
1803
|
...axAIOpenAIDefaultConfig(),
|
|
1793
|
-
model: "gpt-
|
|
1804
|
+
model: "gpt-4.1" /* GPT41 */
|
|
1794
1805
|
});
|
|
1795
1806
|
var axAIOpenAICreativeConfig = () => structuredClone({
|
|
1796
|
-
model: "gpt-
|
|
1807
|
+
model: "gpt-4.1" /* GPT41 */,
|
|
1797
1808
|
embedModel: "text-embedding-3-small" /* TextEmbedding3Small */,
|
|
1798
1809
|
...axBaseAIDefaultCreativeConfig()
|
|
1799
1810
|
});
|
|
1800
1811
|
var axAIOpenAIFastConfig = () => ({
|
|
1801
1812
|
...axAIOpenAIDefaultConfig(),
|
|
1802
|
-
model: "gpt-
|
|
1813
|
+
model: "gpt-4.1-mini" /* GPT41Mini */
|
|
1803
1814
|
});
|
|
1804
1815
|
var AxAIOpenAIImpl = class {
|
|
1805
1816
|
constructor(config, streamingUsage) {
|
|
1806
1817
|
this.config = config;
|
|
1807
1818
|
this.streamingUsage = streamingUsage;
|
|
1808
1819
|
}
|
|
1820
|
+
tokensUsed;
|
|
1821
|
+
getTokenUsage() {
|
|
1822
|
+
return this.tokensUsed;
|
|
1823
|
+
}
|
|
1809
1824
|
getModelConfig() {
|
|
1810
1825
|
const { config } = this;
|
|
1811
1826
|
return {
|
|
@@ -1885,7 +1900,7 @@ var AxAIOpenAIImpl = class {
|
|
|
1885
1900
|
if (error) {
|
|
1886
1901
|
throw error;
|
|
1887
1902
|
}
|
|
1888
|
-
|
|
1903
|
+
this.tokensUsed = usage ? {
|
|
1889
1904
|
promptTokens: usage.prompt_tokens,
|
|
1890
1905
|
completionTokens: usage.completion_tokens,
|
|
1891
1906
|
totalTokens: usage.total_tokens
|
|
@@ -1907,14 +1922,13 @@ var AxAIOpenAIImpl = class {
|
|
|
1907
1922
|
};
|
|
1908
1923
|
});
|
|
1909
1924
|
return {
|
|
1910
|
-
modelUsage,
|
|
1911
1925
|
results,
|
|
1912
1926
|
remoteId: id
|
|
1913
1927
|
};
|
|
1914
1928
|
}
|
|
1915
1929
|
createChatStreamResp(resp, state) {
|
|
1916
1930
|
const { id, usage, choices } = resp;
|
|
1917
|
-
|
|
1931
|
+
this.tokensUsed = usage ? {
|
|
1918
1932
|
promptTokens: usage.prompt_tokens,
|
|
1919
1933
|
completionTokens: usage.completion_tokens,
|
|
1920
1934
|
totalTokens: usage.total_tokens
|
|
@@ -1952,22 +1966,16 @@ var AxAIOpenAIImpl = class {
|
|
|
1952
1966
|
};
|
|
1953
1967
|
}
|
|
1954
1968
|
);
|
|
1955
|
-
return {
|
|
1956
|
-
results,
|
|
1957
|
-
modelUsage
|
|
1958
|
-
};
|
|
1969
|
+
return { results };
|
|
1959
1970
|
}
|
|
1960
1971
|
createEmbedResp(resp) {
|
|
1961
1972
|
const { data, usage } = resp;
|
|
1962
|
-
|
|
1973
|
+
this.tokensUsed = usage ? {
|
|
1963
1974
|
promptTokens: usage.prompt_tokens,
|
|
1964
1975
|
completionTokens: usage.completion_tokens,
|
|
1965
1976
|
totalTokens: usage.total_tokens
|
|
1966
1977
|
} : void 0;
|
|
1967
|
-
return {
|
|
1968
|
-
embeddings: data.map((v) => v.embedding),
|
|
1969
|
-
modelUsage
|
|
1970
|
-
};
|
|
1978
|
+
return { embeddings: data.map((v) => v.embedding) };
|
|
1971
1979
|
}
|
|
1972
1980
|
};
|
|
1973
1981
|
var mapFinishReason2 = (finishReason) => {
|
|
@@ -2232,6 +2240,10 @@ var AxAICohereImpl = class {
|
|
|
2232
2240
|
constructor(config) {
|
|
2233
2241
|
this.config = config;
|
|
2234
2242
|
}
|
|
2243
|
+
tokensUsed;
|
|
2244
|
+
getTokenUsage() {
|
|
2245
|
+
return this.tokensUsed;
|
|
2246
|
+
}
|
|
2235
2247
|
getModelConfig() {
|
|
2236
2248
|
const { config } = this;
|
|
2237
2249
|
return {
|
|
@@ -2323,7 +2335,7 @@ var AxAICohereImpl = class {
|
|
|
2323
2335
|
return [apiConfig, reqValue];
|
|
2324
2336
|
};
|
|
2325
2337
|
createChatResp = (resp) => {
|
|
2326
|
-
|
|
2338
|
+
this.tokensUsed = resp.meta.billed_units ? {
|
|
2327
2339
|
promptTokens: resp.meta.billed_units.input_tokens,
|
|
2328
2340
|
completionTokens: resp.meta.billed_units.output_tokens,
|
|
2329
2341
|
totalTokens: resp.meta.billed_units.input_tokens + resp.meta.billed_units.output_tokens
|
|
@@ -2366,17 +2378,18 @@ var AxAICohereImpl = class {
|
|
|
2366
2378
|
finishReason
|
|
2367
2379
|
}
|
|
2368
2380
|
];
|
|
2369
|
-
return {
|
|
2370
|
-
results,
|
|
2371
|
-
modelUsage,
|
|
2372
|
-
remoteId: resp.response_id
|
|
2373
|
-
};
|
|
2381
|
+
return { results, remoteId: resp.response_id };
|
|
2374
2382
|
};
|
|
2375
2383
|
createChatStreamResp = (resp, state) => {
|
|
2376
2384
|
const ss = state;
|
|
2377
2385
|
if (resp.event_type === "stream-start") {
|
|
2378
2386
|
ss.generation_id = resp.generation_id;
|
|
2379
2387
|
}
|
|
2388
|
+
this.tokensUsed = {
|
|
2389
|
+
promptTokens: 0,
|
|
2390
|
+
completionTokens: resp.meta.billed_units?.output_tokens ?? 0,
|
|
2391
|
+
totalTokens: resp.meta.billed_units?.output_tokens ?? 0
|
|
2392
|
+
};
|
|
2380
2393
|
const { results } = this.createChatResp(resp);
|
|
2381
2394
|
const result = results[0];
|
|
2382
2395
|
if (!result) {
|
|
@@ -2670,13 +2683,13 @@ var safetySettings = [
|
|
|
2670
2683
|
];
|
|
2671
2684
|
var axAIGoogleGeminiDefaultConfig = () => structuredClone({
|
|
2672
2685
|
model: "gemini-2.0-flash" /* Gemini20Flash */,
|
|
2673
|
-
embedModel: "text-embedding-
|
|
2686
|
+
embedModel: "text-embedding-005" /* TextEmbedding005 */,
|
|
2674
2687
|
safetySettings,
|
|
2675
2688
|
...axBaseAIDefaultConfig()
|
|
2676
2689
|
});
|
|
2677
2690
|
var axAIGoogleGeminiDefaultCreativeConfig = () => structuredClone({
|
|
2678
2691
|
model: "gemini-2.0-flash" /* Gemini20Flash */,
|
|
2679
|
-
embedModel: "text-embedding-
|
|
2692
|
+
embedModel: "text-embedding-005" /* TextEmbedding005 */,
|
|
2680
2693
|
safetySettings,
|
|
2681
2694
|
...axBaseAIDefaultCreativeConfig()
|
|
2682
2695
|
});
|
|
@@ -2691,6 +2704,10 @@ var AxAIGoogleGeminiImpl = class {
|
|
|
2691
2704
|
throw new Error("Auto truncate is not supported for GoogleGemini");
|
|
2692
2705
|
}
|
|
2693
2706
|
}
|
|
2707
|
+
tokensUsed;
|
|
2708
|
+
getTokenUsage() {
|
|
2709
|
+
return this.tokensUsed;
|
|
2710
|
+
}
|
|
2694
2711
|
getModelConfig() {
|
|
2695
2712
|
const { config } = this;
|
|
2696
2713
|
return {
|
|
@@ -2953,18 +2970,14 @@ var AxAIGoogleGeminiImpl = class {
|
|
|
2953
2970
|
return result;
|
|
2954
2971
|
}
|
|
2955
2972
|
);
|
|
2956
|
-
let modelUsage;
|
|
2957
2973
|
if (resp.usageMetadata) {
|
|
2958
|
-
|
|
2974
|
+
this.tokensUsed = {
|
|
2959
2975
|
totalTokens: resp.usageMetadata.totalTokenCount,
|
|
2960
2976
|
promptTokens: resp.usageMetadata.promptTokenCount,
|
|
2961
2977
|
completionTokens: resp.usageMetadata.candidatesTokenCount
|
|
2962
2978
|
};
|
|
2963
2979
|
}
|
|
2964
|
-
return {
|
|
2965
|
-
results,
|
|
2966
|
-
modelUsage
|
|
2967
|
-
};
|
|
2980
|
+
return { results };
|
|
2968
2981
|
};
|
|
2969
2982
|
createChatStreamResp = (resp) => {
|
|
2970
2983
|
return this.createChatResp(resp);
|
|
@@ -3182,7 +3195,7 @@ var AxAIGroq = class extends AxAIOpenAIBase {
|
|
|
3182
3195
|
debug: options?.debug
|
|
3183
3196
|
});
|
|
3184
3197
|
const rtFunc = async (func, info) => {
|
|
3185
|
-
const totalTokens = info.modelUsage?.totalTokens || 0;
|
|
3198
|
+
const totalTokens = info.modelUsage?.tokens?.totalTokens || 0;
|
|
3186
3199
|
await rt.acquire(totalTokens);
|
|
3187
3200
|
return await func();
|
|
3188
3201
|
};
|
|
@@ -3212,6 +3225,10 @@ var AxAIHuggingFaceImpl = class {
|
|
|
3212
3225
|
constructor(config) {
|
|
3213
3226
|
this.config = config;
|
|
3214
3227
|
}
|
|
3228
|
+
tokensUsed;
|
|
3229
|
+
getTokenUsage() {
|
|
3230
|
+
return this.tokensUsed;
|
|
3231
|
+
}
|
|
3215
3232
|
getModelConfig() {
|
|
3216
3233
|
const { config } = this;
|
|
3217
3234
|
return {
|
|
@@ -3505,6 +3522,10 @@ var AxAIRekaImpl = class {
|
|
|
3505
3522
|
constructor(config) {
|
|
3506
3523
|
this.config = config;
|
|
3507
3524
|
}
|
|
3525
|
+
tokensUsed;
|
|
3526
|
+
getTokenUsage() {
|
|
3527
|
+
return this.tokensUsed;
|
|
3528
|
+
}
|
|
3508
3529
|
getModelConfig() {
|
|
3509
3530
|
const { config } = this;
|
|
3510
3531
|
return {
|
|
@@ -3545,7 +3566,7 @@ var AxAIRekaImpl = class {
|
|
|
3545
3566
|
};
|
|
3546
3567
|
createChatResp = (resp) => {
|
|
3547
3568
|
const { id, usage, responses } = resp;
|
|
3548
|
-
|
|
3569
|
+
this.tokensUsed = usage ? {
|
|
3549
3570
|
promptTokens: usage.input_tokens,
|
|
3550
3571
|
completionTokens: usage.output_tokens,
|
|
3551
3572
|
totalTokens: usage.input_tokens + usage.output_tokens
|
|
@@ -3564,15 +3585,11 @@ var AxAIRekaImpl = class {
|
|
|
3564
3585
|
finishReason
|
|
3565
3586
|
};
|
|
3566
3587
|
});
|
|
3567
|
-
return {
|
|
3568
|
-
modelUsage,
|
|
3569
|
-
results,
|
|
3570
|
-
remoteId: id
|
|
3571
|
-
};
|
|
3588
|
+
return { results, remoteId: id };
|
|
3572
3589
|
};
|
|
3573
3590
|
createChatStreamResp = (resp) => {
|
|
3574
3591
|
const { id, usage, responses } = resp;
|
|
3575
|
-
|
|
3592
|
+
this.tokensUsed = usage ? {
|
|
3576
3593
|
promptTokens: usage.input_tokens,
|
|
3577
3594
|
completionTokens: usage.output_tokens,
|
|
3578
3595
|
totalTokens: usage.input_tokens + usage.output_tokens
|
|
@@ -3591,10 +3608,7 @@ var AxAIRekaImpl = class {
|
|
|
3591
3608
|
finishReason
|
|
3592
3609
|
};
|
|
3593
3610
|
});
|
|
3594
|
-
return {
|
|
3595
|
-
results,
|
|
3596
|
-
modelUsage
|
|
3597
|
-
};
|
|
3611
|
+
return { results };
|
|
3598
3612
|
};
|
|
3599
3613
|
};
|
|
3600
3614
|
var mapFinishReason3 = (finishReason) => {
|
|
@@ -3780,9 +3794,6 @@ var AxAI = class {
|
|
|
3780
3794
|
getModelList() {
|
|
3781
3795
|
return this.ai.getModelList();
|
|
3782
3796
|
}
|
|
3783
|
-
getDefaultModels() {
|
|
3784
|
-
return this.ai.getDefaultModels();
|
|
3785
|
-
}
|
|
3786
3797
|
getMetrics() {
|
|
3787
3798
|
return this.ai.getMetrics();
|
|
3788
3799
|
}
|
|
@@ -4719,9 +4730,15 @@ function mergeProgramUsage(usages) {
|
|
|
4719
4730
|
}
|
|
4720
4731
|
const currentUsage = usageMap[key];
|
|
4721
4732
|
if (currentUsage) {
|
|
4722
|
-
currentUsage.
|
|
4723
|
-
|
|
4724
|
-
|
|
4733
|
+
const tokens = currentUsage.tokens ?? {
|
|
4734
|
+
promptTokens: 0,
|
|
4735
|
+
completionTokens: 0,
|
|
4736
|
+
totalTokens: 0
|
|
4737
|
+
};
|
|
4738
|
+
tokens.promptTokens += usage?.tokens?.promptTokens ?? 0;
|
|
4739
|
+
tokens.completionTokens += usage?.tokens?.completionTokens ?? 0;
|
|
4740
|
+
tokens.totalTokens += usage?.tokens?.totalTokens ?? 0;
|
|
4741
|
+
currentUsage.tokens = tokens;
|
|
4725
4742
|
}
|
|
4726
4743
|
}
|
|
4727
4744
|
return Object.values(usageMap);
|
|
@@ -6241,13 +6258,9 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6241
6258
|
mem,
|
|
6242
6259
|
options
|
|
6243
6260
|
}) {
|
|
6244
|
-
const { sessionId, traceId,
|
|
6261
|
+
const { sessionId, traceId, functions: _functions } = options ?? {};
|
|
6245
6262
|
const fastFail = options?.fastFail ?? this.options?.fastFail;
|
|
6246
|
-
const
|
|
6247
|
-
const usageInfo = {
|
|
6248
|
-
ai: ai.getName(),
|
|
6249
|
-
model: modelName
|
|
6250
|
-
};
|
|
6263
|
+
const model = options.model;
|
|
6251
6264
|
const functions = _functions?.map((f) => "toFunction" in f ? f.toFunction() : f)?.flat();
|
|
6252
6265
|
const res = await this.forwardSendRequest({
|
|
6253
6266
|
ai,
|
|
@@ -6259,7 +6272,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6259
6272
|
ai,
|
|
6260
6273
|
model,
|
|
6261
6274
|
res,
|
|
6262
|
-
usageInfo,
|
|
6263
6275
|
mem,
|
|
6264
6276
|
traceId,
|
|
6265
6277
|
sessionId,
|
|
@@ -6271,7 +6283,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6271
6283
|
ai,
|
|
6272
6284
|
model,
|
|
6273
6285
|
res,
|
|
6274
|
-
usageInfo,
|
|
6275
6286
|
mem,
|
|
6276
6287
|
traceId,
|
|
6277
6288
|
sessionId,
|
|
@@ -6283,14 +6294,13 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6283
6294
|
ai,
|
|
6284
6295
|
model,
|
|
6285
6296
|
res,
|
|
6286
|
-
usageInfo,
|
|
6287
6297
|
mem,
|
|
6288
6298
|
sessionId,
|
|
6289
6299
|
traceId,
|
|
6290
6300
|
functions,
|
|
6291
6301
|
fastFail
|
|
6292
6302
|
}) {
|
|
6293
|
-
const streamingValidation = fastFail ?? ai.getFeatures().functionCot !== true;
|
|
6303
|
+
const streamingValidation = fastFail ?? ai.getFeatures(model).functionCot !== true;
|
|
6294
6304
|
const functionCalls = [];
|
|
6295
6305
|
const values = {};
|
|
6296
6306
|
const xstate = {
|
|
@@ -6305,7 +6315,7 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6305
6315
|
continue;
|
|
6306
6316
|
}
|
|
6307
6317
|
if (v.modelUsage) {
|
|
6308
|
-
this.usage.push(
|
|
6318
|
+
this.usage.push(v.modelUsage);
|
|
6309
6319
|
}
|
|
6310
6320
|
if (result.functionCalls) {
|
|
6311
6321
|
mergeFunctionCalls(functionCalls, result.functionCalls);
|
|
@@ -6406,7 +6416,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6406
6416
|
async processResponse({
|
|
6407
6417
|
ai,
|
|
6408
6418
|
res,
|
|
6409
|
-
usageInfo,
|
|
6410
6419
|
mem,
|
|
6411
6420
|
sessionId,
|
|
6412
6421
|
traceId,
|
|
@@ -6419,7 +6428,7 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6419
6428
|
}
|
|
6420
6429
|
for (const result of results) {
|
|
6421
6430
|
if (res.modelUsage) {
|
|
6422
|
-
this.usage.push(
|
|
6431
|
+
this.usage.push(res.modelUsage);
|
|
6423
6432
|
}
|
|
6424
6433
|
mem.addResult(result, sessionId);
|
|
6425
6434
|
if (result.functionCalls?.length) {
|
|
@@ -7011,9 +7020,6 @@ var AxBalancer = class _AxBalancer {
|
|
|
7011
7020
|
getModelList() {
|
|
7012
7021
|
return this.currentService.getModelList();
|
|
7013
7022
|
}
|
|
7014
|
-
getDefaultModels() {
|
|
7015
|
-
return this.currentService.getDefaultModels();
|
|
7016
|
-
}
|
|
7017
7023
|
getNextService() {
|
|
7018
7024
|
const cs = this.services[++this.currentServiceIndex];
|
|
7019
7025
|
if (cs === void 0) {
|
|
@@ -9165,12 +9171,6 @@ var AxMockAIService = class {
|
|
|
9165
9171
|
getModelList() {
|
|
9166
9172
|
return this.config.models;
|
|
9167
9173
|
}
|
|
9168
|
-
getDefaultModels() {
|
|
9169
|
-
return {
|
|
9170
|
-
model: this.config.modelInfo?.name ?? "mock-model",
|
|
9171
|
-
embedModel: this.config.embedModelInfo?.name
|
|
9172
|
-
};
|
|
9173
|
-
}
|
|
9174
9174
|
getMetrics() {
|
|
9175
9175
|
return this.metrics;
|
|
9176
9176
|
}
|
|
@@ -9193,9 +9193,13 @@ var AxMockAIService = class {
|
|
|
9193
9193
|
}
|
|
9194
9194
|
],
|
|
9195
9195
|
modelUsage: {
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9196
|
+
ai: this.getName(),
|
|
9197
|
+
model: "mock-model",
|
|
9198
|
+
tokens: {
|
|
9199
|
+
promptTokens: 10,
|
|
9200
|
+
completionTokens: 5,
|
|
9201
|
+
totalTokens: 15
|
|
9202
|
+
}
|
|
9199
9203
|
}
|
|
9200
9204
|
};
|
|
9201
9205
|
}
|
|
@@ -9213,9 +9217,13 @@ var AxMockAIService = class {
|
|
|
9213
9217
|
return this.config.embedResponse ?? {
|
|
9214
9218
|
embeddings: [[0.1, 0.2, 0.3]],
|
|
9215
9219
|
modelUsage: {
|
|
9216
|
-
|
|
9217
|
-
|
|
9218
|
-
|
|
9220
|
+
ai: this.getName(),
|
|
9221
|
+
model: "mock-model",
|
|
9222
|
+
tokens: {
|
|
9223
|
+
promptTokens: 5,
|
|
9224
|
+
completionTokens: 0,
|
|
9225
|
+
totalTokens: 5
|
|
9226
|
+
}
|
|
9219
9227
|
}
|
|
9220
9228
|
};
|
|
9221
9229
|
}
|
|
@@ -11179,11 +11187,6 @@ var AxMultiServiceRouter = class {
|
|
|
11179
11187
|
}
|
|
11180
11188
|
});
|
|
11181
11189
|
}
|
|
11182
|
-
getDefaultModels() {
|
|
11183
|
-
throw new Error(
|
|
11184
|
-
"getDefaultModels is not supported for multi-service router."
|
|
11185
|
-
);
|
|
11186
|
-
}
|
|
11187
11190
|
/**
|
|
11188
11191
|
* If a model key is provided, delegate to the corresponding service's features.
|
|
11189
11192
|
* Otherwise, returns a default feature set.
|
|
@@ -11345,6 +11348,7 @@ export {
|
|
|
11345
11348
|
AxStringUtil,
|
|
11346
11349
|
AxTestPrompt,
|
|
11347
11350
|
axAIAnthropicDefaultConfig,
|
|
11351
|
+
axAIAnthropicVertexDefaultConfig,
|
|
11348
11352
|
axAIAzureOpenAIBestConfig,
|
|
11349
11353
|
axAIAzureOpenAICreativeConfig,
|
|
11350
11354
|
axAIAzureOpenAIDefaultConfig,
|