@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.cjs
CHANGED
|
@@ -114,6 +114,7 @@ __export(index_exports, {
|
|
|
114
114
|
AxStringUtil: () => AxStringUtil,
|
|
115
115
|
AxTestPrompt: () => AxTestPrompt,
|
|
116
116
|
axAIAnthropicDefaultConfig: () => axAIAnthropicDefaultConfig,
|
|
117
|
+
axAIAnthropicVertexDefaultConfig: () => axAIAnthropicVertexDefaultConfig,
|
|
117
118
|
axAIAzureOpenAIBestConfig: () => axAIAzureOpenAIBestConfig,
|
|
118
119
|
axAIAzureOpenAICreativeConfig: () => axAIAzureOpenAICreativeConfig,
|
|
119
120
|
axAIAzureOpenAIDefaultConfig: () => axAIAzureOpenAIDefaultConfig,
|
|
@@ -987,12 +988,6 @@ var AxBaseAI = class {
|
|
|
987
988
|
}
|
|
988
989
|
return models;
|
|
989
990
|
}
|
|
990
|
-
getDefaultModels() {
|
|
991
|
-
return {
|
|
992
|
-
model: this.defaults.model,
|
|
993
|
-
embedModel: this.defaults.embedModel
|
|
994
|
-
};
|
|
995
|
-
}
|
|
996
991
|
getName() {
|
|
997
992
|
return this.name;
|
|
998
993
|
}
|
|
@@ -1149,13 +1144,18 @@ var AxBaseAI = class {
|
|
|
1149
1144
|
if (!this.aiImpl.createChatStreamResp) {
|
|
1150
1145
|
throw new Error("generateChatResp not implemented");
|
|
1151
1146
|
}
|
|
1152
|
-
const respFn = this.aiImpl.createChatStreamResp;
|
|
1147
|
+
const respFn = this.aiImpl.createChatStreamResp.bind(this);
|
|
1153
1148
|
const wrappedRespFn = (state) => (resp) => {
|
|
1154
1149
|
const res2 = respFn(resp, state);
|
|
1155
1150
|
res2.sessionId = options?.sessionId;
|
|
1156
|
-
if (res2.modelUsage) {
|
|
1157
|
-
|
|
1151
|
+
if (!res2.modelUsage) {
|
|
1152
|
+
res2.modelUsage = {
|
|
1153
|
+
ai: this.name,
|
|
1154
|
+
model,
|
|
1155
|
+
tokens: this.aiImpl.getTokenUsage()
|
|
1156
|
+
};
|
|
1158
1157
|
}
|
|
1158
|
+
this.modelUsage = res2.modelUsage;
|
|
1159
1159
|
if (span?.isRecording()) {
|
|
1160
1160
|
setResponseAttr(res2, span);
|
|
1161
1161
|
}
|
|
@@ -1261,15 +1261,23 @@ var AxBaseAI = class {
|
|
|
1261
1261
|
);
|
|
1262
1262
|
return res2;
|
|
1263
1263
|
};
|
|
1264
|
-
const resValue = this.rt ? await this.rt(fn, {
|
|
1264
|
+
const resValue = this.rt ? await this.rt(fn, { modelUsage: this.embedModelUsage }) : await fn();
|
|
1265
1265
|
const res = this.aiImpl.createEmbedResp(resValue);
|
|
1266
1266
|
res.sessionId = options?.sessionId;
|
|
1267
|
+
if (!res.modelUsage) {
|
|
1268
|
+
res.modelUsage = {
|
|
1269
|
+
ai: this.name,
|
|
1270
|
+
model: embedModel,
|
|
1271
|
+
tokens: this.aiImpl.getTokenUsage()
|
|
1272
|
+
};
|
|
1273
|
+
}
|
|
1274
|
+
this.embedModelUsage = res.modelUsage;
|
|
1267
1275
|
if (span?.isRecording()) {
|
|
1268
1276
|
if (res.modelUsage) {
|
|
1269
1277
|
this.embedModelUsage = res.modelUsage;
|
|
1270
1278
|
span.setAttributes({
|
|
1271
|
-
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.completionTokens ?? 0,
|
|
1272
|
-
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.promptTokens
|
|
1279
|
+
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.tokens?.completionTokens ?? 0,
|
|
1280
|
+
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.tokens?.promptTokens
|
|
1273
1281
|
});
|
|
1274
1282
|
}
|
|
1275
1283
|
}
|
|
@@ -1298,8 +1306,8 @@ var AxBaseAI = class {
|
|
|
1298
1306
|
function setResponseAttr(res, span) {
|
|
1299
1307
|
if (res.modelUsage) {
|
|
1300
1308
|
span.setAttributes({
|
|
1301
|
-
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.completionTokens ?? 0,
|
|
1302
|
-
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.promptTokens
|
|
1309
|
+
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.tokens?.completionTokens ?? 0,
|
|
1310
|
+
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.tokens?.promptTokens
|
|
1303
1311
|
});
|
|
1304
1312
|
}
|
|
1305
1313
|
}
|
|
@@ -1354,14 +1362,14 @@ var AxAIAnthropicModel = /* @__PURE__ */ ((AxAIAnthropicModel2) => {
|
|
|
1354
1362
|
AxAIAnthropicModel2["ClaudeInstant12"] = "claude-instant-1.2";
|
|
1355
1363
|
return AxAIAnthropicModel2;
|
|
1356
1364
|
})(AxAIAnthropicModel || {});
|
|
1357
|
-
var AxAIAnthropicVertexModel = /* @__PURE__ */ ((
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
return
|
|
1365
|
+
var AxAIAnthropicVertexModel = /* @__PURE__ */ ((AxAIAnthropicVertexModel2) => {
|
|
1366
|
+
AxAIAnthropicVertexModel2["Claude37Sonnet"] = "claude-3-7-sonnet";
|
|
1367
|
+
AxAIAnthropicVertexModel2["Claude35Haiku"] = "claude-3-5-haiku";
|
|
1368
|
+
AxAIAnthropicVertexModel2["Claude35Sonnet"] = "claude-3-5-sonnet";
|
|
1369
|
+
AxAIAnthropicVertexModel2["Claude35SonnetV2"] = "claude-3-5-sonnet-v2";
|
|
1370
|
+
AxAIAnthropicVertexModel2["Claude3Haiku"] = "claude-3-haiku";
|
|
1371
|
+
AxAIAnthropicVertexModel2["Claude3Opus"] = "claude-3-opus";
|
|
1372
|
+
return AxAIAnthropicVertexModel2;
|
|
1365
1373
|
})(AxAIAnthropicVertexModel || {});
|
|
1366
1374
|
|
|
1367
1375
|
// ai/anthropic/info.ts
|
|
@@ -1415,7 +1423,11 @@ var axModelInfoAnthropic = [
|
|
|
1415
1423
|
|
|
1416
1424
|
// ai/anthropic/api.ts
|
|
1417
1425
|
var axAIAnthropicDefaultConfig = () => structuredClone({
|
|
1418
|
-
model: "claude-3-
|
|
1426
|
+
model: "claude-3-7-sonnet-latest" /* Claude37Sonnet */,
|
|
1427
|
+
...axBaseAIDefaultConfig()
|
|
1428
|
+
});
|
|
1429
|
+
var axAIAnthropicVertexDefaultConfig = () => structuredClone({
|
|
1430
|
+
model: "claude-3-7-sonnet" /* Claude37Sonnet */,
|
|
1419
1431
|
...axBaseAIDefaultConfig()
|
|
1420
1432
|
});
|
|
1421
1433
|
var AxAIAnthropicImpl = class {
|
|
@@ -1423,6 +1435,10 @@ var AxAIAnthropicImpl = class {
|
|
|
1423
1435
|
this.config = config;
|
|
1424
1436
|
this.isVertex = isVertex;
|
|
1425
1437
|
}
|
|
1438
|
+
tokensUsed;
|
|
1439
|
+
getTokenUsage() {
|
|
1440
|
+
return this.tokensUsed;
|
|
1441
|
+
}
|
|
1426
1442
|
getModelConfig() {
|
|
1427
1443
|
const { config } = this;
|
|
1428
1444
|
return {
|
|
@@ -1532,16 +1548,12 @@ var AxAIAnthropicImpl = class {
|
|
|
1532
1548
|
finishReason
|
|
1533
1549
|
};
|
|
1534
1550
|
});
|
|
1535
|
-
|
|
1551
|
+
this.tokensUsed = {
|
|
1536
1552
|
promptTokens: resp.usage.input_tokens,
|
|
1537
1553
|
completionTokens: resp.usage.output_tokens,
|
|
1538
1554
|
totalTokens: resp.usage.input_tokens + resp.usage.output_tokens
|
|
1539
1555
|
};
|
|
1540
|
-
return {
|
|
1541
|
-
results,
|
|
1542
|
-
modelUsage,
|
|
1543
|
-
remoteId: resp.id
|
|
1544
|
-
};
|
|
1556
|
+
return { results, remoteId: resp.id };
|
|
1545
1557
|
};
|
|
1546
1558
|
createChatStreamResp = (resp, state) => {
|
|
1547
1559
|
if (!("type" in resp)) {
|
|
@@ -1558,15 +1570,12 @@ var AxAIAnthropicImpl = class {
|
|
|
1558
1570
|
if (resp.type === "message_start") {
|
|
1559
1571
|
const { message } = resp;
|
|
1560
1572
|
const results = [{ content: "", id: message.id }];
|
|
1561
|
-
|
|
1573
|
+
this.tokensUsed = {
|
|
1562
1574
|
promptTokens: message.usage?.input_tokens ?? 0,
|
|
1563
1575
|
completionTokens: message.usage?.output_tokens ?? 0,
|
|
1564
1576
|
totalTokens: (message.usage?.input_tokens ?? 0) + (message.usage?.output_tokens ?? 0)
|
|
1565
1577
|
};
|
|
1566
|
-
return {
|
|
1567
|
-
results,
|
|
1568
|
-
modelUsage
|
|
1569
|
-
};
|
|
1578
|
+
return { results };
|
|
1570
1579
|
}
|
|
1571
1580
|
if (resp.type === "content_block_start") {
|
|
1572
1581
|
const { content_block: contentBlock } = resp;
|
|
@@ -1623,19 +1632,15 @@ var AxAIAnthropicImpl = class {
|
|
|
1623
1632
|
}
|
|
1624
1633
|
if (resp.type === "message_delta") {
|
|
1625
1634
|
const { delta, usage } = resp;
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
finishReason: mapFinishReason(delta.stop_reason)
|
|
1631
|
-
}
|
|
1632
|
-
],
|
|
1633
|
-
modelUsage: {
|
|
1634
|
-
promptTokens: 0,
|
|
1635
|
-
completionTokens: usage.output_tokens,
|
|
1636
|
-
totalTokens: usage.output_tokens
|
|
1637
|
-
}
|
|
1635
|
+
this.tokensUsed = {
|
|
1636
|
+
promptTokens: 0,
|
|
1637
|
+
completionTokens: usage.output_tokens,
|
|
1638
|
+
totalTokens: usage.output_tokens
|
|
1638
1639
|
};
|
|
1640
|
+
const results = [
|
|
1641
|
+
{ content: "", finishReason: mapFinishReason(delta.stop_reason) }
|
|
1642
|
+
];
|
|
1643
|
+
return { results };
|
|
1639
1644
|
}
|
|
1640
1645
|
return {
|
|
1641
1646
|
results: [{ content: "" }]
|
|
@@ -1826,6 +1831,7 @@ var AxAIOpenAIModel = /* @__PURE__ */ ((AxAIOpenAIModel2) => {
|
|
|
1826
1831
|
AxAIOpenAIModel2["O4Mini"] = "o4-mini";
|
|
1827
1832
|
AxAIOpenAIModel2["GPT4"] = "gpt-4";
|
|
1828
1833
|
AxAIOpenAIModel2["GPT41"] = "gpt-4.1";
|
|
1834
|
+
AxAIOpenAIModel2["GPT41Mini"] = "gpt-4.1-mini";
|
|
1829
1835
|
AxAIOpenAIModel2["GPT4O"] = "gpt-4o";
|
|
1830
1836
|
AxAIOpenAIModel2["GPT4OMini"] = "gpt-4o-mini";
|
|
1831
1837
|
AxAIOpenAIModel2["GPT4ChatGPT4O"] = "chatgpt-4o-latest";
|
|
@@ -1882,6 +1888,12 @@ var axModelInfoOpenAI = [
|
|
|
1882
1888
|
promptTokenCostPer1M: 2,
|
|
1883
1889
|
completionTokenCostPer1M: 8
|
|
1884
1890
|
},
|
|
1891
|
+
{
|
|
1892
|
+
name: "gpt-4.1-mini" /* GPT41Mini */,
|
|
1893
|
+
currency: "usd",
|
|
1894
|
+
promptTokenCostPer1M: 0.4,
|
|
1895
|
+
completionTokenCostPer1M: 1.6
|
|
1896
|
+
},
|
|
1885
1897
|
{
|
|
1886
1898
|
name: "gpt-4o" /* GPT4O */,
|
|
1887
1899
|
currency: "usd",
|
|
@@ -1934,28 +1946,32 @@ var axModelInfoOpenAI = [
|
|
|
1934
1946
|
|
|
1935
1947
|
// ai/openai/api.ts
|
|
1936
1948
|
var axAIOpenAIDefaultConfig = () => structuredClone({
|
|
1937
|
-
model: "gpt-
|
|
1949
|
+
model: "gpt-4.1" /* GPT41 */,
|
|
1938
1950
|
embedModel: "text-embedding-3-small" /* TextEmbedding3Small */,
|
|
1939
1951
|
...axBaseAIDefaultConfig()
|
|
1940
1952
|
});
|
|
1941
1953
|
var axAIOpenAIBestConfig = () => structuredClone({
|
|
1942
1954
|
...axAIOpenAIDefaultConfig(),
|
|
1943
|
-
model: "gpt-
|
|
1955
|
+
model: "gpt-4.1" /* GPT41 */
|
|
1944
1956
|
});
|
|
1945
1957
|
var axAIOpenAICreativeConfig = () => structuredClone({
|
|
1946
|
-
model: "gpt-
|
|
1958
|
+
model: "gpt-4.1" /* GPT41 */,
|
|
1947
1959
|
embedModel: "text-embedding-3-small" /* TextEmbedding3Small */,
|
|
1948
1960
|
...axBaseAIDefaultCreativeConfig()
|
|
1949
1961
|
});
|
|
1950
1962
|
var axAIOpenAIFastConfig = () => ({
|
|
1951
1963
|
...axAIOpenAIDefaultConfig(),
|
|
1952
|
-
model: "gpt-
|
|
1964
|
+
model: "gpt-4.1-mini" /* GPT41Mini */
|
|
1953
1965
|
});
|
|
1954
1966
|
var AxAIOpenAIImpl = class {
|
|
1955
1967
|
constructor(config, streamingUsage) {
|
|
1956
1968
|
this.config = config;
|
|
1957
1969
|
this.streamingUsage = streamingUsage;
|
|
1958
1970
|
}
|
|
1971
|
+
tokensUsed;
|
|
1972
|
+
getTokenUsage() {
|
|
1973
|
+
return this.tokensUsed;
|
|
1974
|
+
}
|
|
1959
1975
|
getModelConfig() {
|
|
1960
1976
|
const { config } = this;
|
|
1961
1977
|
return {
|
|
@@ -2035,7 +2051,7 @@ var AxAIOpenAIImpl = class {
|
|
|
2035
2051
|
if (error) {
|
|
2036
2052
|
throw error;
|
|
2037
2053
|
}
|
|
2038
|
-
|
|
2054
|
+
this.tokensUsed = usage ? {
|
|
2039
2055
|
promptTokens: usage.prompt_tokens,
|
|
2040
2056
|
completionTokens: usage.completion_tokens,
|
|
2041
2057
|
totalTokens: usage.total_tokens
|
|
@@ -2057,14 +2073,13 @@ var AxAIOpenAIImpl = class {
|
|
|
2057
2073
|
};
|
|
2058
2074
|
});
|
|
2059
2075
|
return {
|
|
2060
|
-
modelUsage,
|
|
2061
2076
|
results,
|
|
2062
2077
|
remoteId: id
|
|
2063
2078
|
};
|
|
2064
2079
|
}
|
|
2065
2080
|
createChatStreamResp(resp, state) {
|
|
2066
2081
|
const { id, usage, choices } = resp;
|
|
2067
|
-
|
|
2082
|
+
this.tokensUsed = usage ? {
|
|
2068
2083
|
promptTokens: usage.prompt_tokens,
|
|
2069
2084
|
completionTokens: usage.completion_tokens,
|
|
2070
2085
|
totalTokens: usage.total_tokens
|
|
@@ -2102,22 +2117,16 @@ var AxAIOpenAIImpl = class {
|
|
|
2102
2117
|
};
|
|
2103
2118
|
}
|
|
2104
2119
|
);
|
|
2105
|
-
return {
|
|
2106
|
-
results,
|
|
2107
|
-
modelUsage
|
|
2108
|
-
};
|
|
2120
|
+
return { results };
|
|
2109
2121
|
}
|
|
2110
2122
|
createEmbedResp(resp) {
|
|
2111
2123
|
const { data, usage } = resp;
|
|
2112
|
-
|
|
2124
|
+
this.tokensUsed = usage ? {
|
|
2113
2125
|
promptTokens: usage.prompt_tokens,
|
|
2114
2126
|
completionTokens: usage.completion_tokens,
|
|
2115
2127
|
totalTokens: usage.total_tokens
|
|
2116
2128
|
} : void 0;
|
|
2117
|
-
return {
|
|
2118
|
-
embeddings: data.map((v) => v.embedding),
|
|
2119
|
-
modelUsage
|
|
2120
|
-
};
|
|
2129
|
+
return { embeddings: data.map((v) => v.embedding) };
|
|
2121
2130
|
}
|
|
2122
2131
|
};
|
|
2123
2132
|
var mapFinishReason2 = (finishReason) => {
|
|
@@ -2382,6 +2391,10 @@ var AxAICohereImpl = class {
|
|
|
2382
2391
|
constructor(config) {
|
|
2383
2392
|
this.config = config;
|
|
2384
2393
|
}
|
|
2394
|
+
tokensUsed;
|
|
2395
|
+
getTokenUsage() {
|
|
2396
|
+
return this.tokensUsed;
|
|
2397
|
+
}
|
|
2385
2398
|
getModelConfig() {
|
|
2386
2399
|
const { config } = this;
|
|
2387
2400
|
return {
|
|
@@ -2473,7 +2486,7 @@ var AxAICohereImpl = class {
|
|
|
2473
2486
|
return [apiConfig, reqValue];
|
|
2474
2487
|
};
|
|
2475
2488
|
createChatResp = (resp) => {
|
|
2476
|
-
|
|
2489
|
+
this.tokensUsed = resp.meta.billed_units ? {
|
|
2477
2490
|
promptTokens: resp.meta.billed_units.input_tokens,
|
|
2478
2491
|
completionTokens: resp.meta.billed_units.output_tokens,
|
|
2479
2492
|
totalTokens: resp.meta.billed_units.input_tokens + resp.meta.billed_units.output_tokens
|
|
@@ -2516,17 +2529,18 @@ var AxAICohereImpl = class {
|
|
|
2516
2529
|
finishReason
|
|
2517
2530
|
}
|
|
2518
2531
|
];
|
|
2519
|
-
return {
|
|
2520
|
-
results,
|
|
2521
|
-
modelUsage,
|
|
2522
|
-
remoteId: resp.response_id
|
|
2523
|
-
};
|
|
2532
|
+
return { results, remoteId: resp.response_id };
|
|
2524
2533
|
};
|
|
2525
2534
|
createChatStreamResp = (resp, state) => {
|
|
2526
2535
|
const ss = state;
|
|
2527
2536
|
if (resp.event_type === "stream-start") {
|
|
2528
2537
|
ss.generation_id = resp.generation_id;
|
|
2529
2538
|
}
|
|
2539
|
+
this.tokensUsed = {
|
|
2540
|
+
promptTokens: 0,
|
|
2541
|
+
completionTokens: resp.meta.billed_units?.output_tokens ?? 0,
|
|
2542
|
+
totalTokens: resp.meta.billed_units?.output_tokens ?? 0
|
|
2543
|
+
};
|
|
2530
2544
|
const { results } = this.createChatResp(resp);
|
|
2531
2545
|
const result = results[0];
|
|
2532
2546
|
if (!result) {
|
|
@@ -2820,13 +2834,13 @@ var safetySettings = [
|
|
|
2820
2834
|
];
|
|
2821
2835
|
var axAIGoogleGeminiDefaultConfig = () => structuredClone({
|
|
2822
2836
|
model: "gemini-2.0-flash" /* Gemini20Flash */,
|
|
2823
|
-
embedModel: "text-embedding-
|
|
2837
|
+
embedModel: "text-embedding-005" /* TextEmbedding005 */,
|
|
2824
2838
|
safetySettings,
|
|
2825
2839
|
...axBaseAIDefaultConfig()
|
|
2826
2840
|
});
|
|
2827
2841
|
var axAIGoogleGeminiDefaultCreativeConfig = () => structuredClone({
|
|
2828
2842
|
model: "gemini-2.0-flash" /* Gemini20Flash */,
|
|
2829
|
-
embedModel: "text-embedding-
|
|
2843
|
+
embedModel: "text-embedding-005" /* TextEmbedding005 */,
|
|
2830
2844
|
safetySettings,
|
|
2831
2845
|
...axBaseAIDefaultCreativeConfig()
|
|
2832
2846
|
});
|
|
@@ -2841,6 +2855,10 @@ var AxAIGoogleGeminiImpl = class {
|
|
|
2841
2855
|
throw new Error("Auto truncate is not supported for GoogleGemini");
|
|
2842
2856
|
}
|
|
2843
2857
|
}
|
|
2858
|
+
tokensUsed;
|
|
2859
|
+
getTokenUsage() {
|
|
2860
|
+
return this.tokensUsed;
|
|
2861
|
+
}
|
|
2844
2862
|
getModelConfig() {
|
|
2845
2863
|
const { config } = this;
|
|
2846
2864
|
return {
|
|
@@ -3103,18 +3121,14 @@ var AxAIGoogleGeminiImpl = class {
|
|
|
3103
3121
|
return result;
|
|
3104
3122
|
}
|
|
3105
3123
|
);
|
|
3106
|
-
let modelUsage;
|
|
3107
3124
|
if (resp.usageMetadata) {
|
|
3108
|
-
|
|
3125
|
+
this.tokensUsed = {
|
|
3109
3126
|
totalTokens: resp.usageMetadata.totalTokenCount,
|
|
3110
3127
|
promptTokens: resp.usageMetadata.promptTokenCount,
|
|
3111
3128
|
completionTokens: resp.usageMetadata.candidatesTokenCount
|
|
3112
3129
|
};
|
|
3113
3130
|
}
|
|
3114
|
-
return {
|
|
3115
|
-
results,
|
|
3116
|
-
modelUsage
|
|
3117
|
-
};
|
|
3131
|
+
return { results };
|
|
3118
3132
|
};
|
|
3119
3133
|
createChatStreamResp = (resp) => {
|
|
3120
3134
|
return this.createChatResp(resp);
|
|
@@ -3332,7 +3346,7 @@ var AxAIGroq = class extends AxAIOpenAIBase {
|
|
|
3332
3346
|
debug: options?.debug
|
|
3333
3347
|
});
|
|
3334
3348
|
const rtFunc = async (func, info) => {
|
|
3335
|
-
const totalTokens = info.modelUsage?.totalTokens || 0;
|
|
3349
|
+
const totalTokens = info.modelUsage?.tokens?.totalTokens || 0;
|
|
3336
3350
|
await rt.acquire(totalTokens);
|
|
3337
3351
|
return await func();
|
|
3338
3352
|
};
|
|
@@ -3362,6 +3376,10 @@ var AxAIHuggingFaceImpl = class {
|
|
|
3362
3376
|
constructor(config) {
|
|
3363
3377
|
this.config = config;
|
|
3364
3378
|
}
|
|
3379
|
+
tokensUsed;
|
|
3380
|
+
getTokenUsage() {
|
|
3381
|
+
return this.tokensUsed;
|
|
3382
|
+
}
|
|
3365
3383
|
getModelConfig() {
|
|
3366
3384
|
const { config } = this;
|
|
3367
3385
|
return {
|
|
@@ -3655,6 +3673,10 @@ var AxAIRekaImpl = class {
|
|
|
3655
3673
|
constructor(config) {
|
|
3656
3674
|
this.config = config;
|
|
3657
3675
|
}
|
|
3676
|
+
tokensUsed;
|
|
3677
|
+
getTokenUsage() {
|
|
3678
|
+
return this.tokensUsed;
|
|
3679
|
+
}
|
|
3658
3680
|
getModelConfig() {
|
|
3659
3681
|
const { config } = this;
|
|
3660
3682
|
return {
|
|
@@ -3695,7 +3717,7 @@ var AxAIRekaImpl = class {
|
|
|
3695
3717
|
};
|
|
3696
3718
|
createChatResp = (resp) => {
|
|
3697
3719
|
const { id, usage, responses } = resp;
|
|
3698
|
-
|
|
3720
|
+
this.tokensUsed = usage ? {
|
|
3699
3721
|
promptTokens: usage.input_tokens,
|
|
3700
3722
|
completionTokens: usage.output_tokens,
|
|
3701
3723
|
totalTokens: usage.input_tokens + usage.output_tokens
|
|
@@ -3714,15 +3736,11 @@ var AxAIRekaImpl = class {
|
|
|
3714
3736
|
finishReason
|
|
3715
3737
|
};
|
|
3716
3738
|
});
|
|
3717
|
-
return {
|
|
3718
|
-
modelUsage,
|
|
3719
|
-
results,
|
|
3720
|
-
remoteId: id
|
|
3721
|
-
};
|
|
3739
|
+
return { results, remoteId: id };
|
|
3722
3740
|
};
|
|
3723
3741
|
createChatStreamResp = (resp) => {
|
|
3724
3742
|
const { id, usage, responses } = resp;
|
|
3725
|
-
|
|
3743
|
+
this.tokensUsed = usage ? {
|
|
3726
3744
|
promptTokens: usage.input_tokens,
|
|
3727
3745
|
completionTokens: usage.output_tokens,
|
|
3728
3746
|
totalTokens: usage.input_tokens + usage.output_tokens
|
|
@@ -3741,10 +3759,7 @@ var AxAIRekaImpl = class {
|
|
|
3741
3759
|
finishReason
|
|
3742
3760
|
};
|
|
3743
3761
|
});
|
|
3744
|
-
return {
|
|
3745
|
-
results,
|
|
3746
|
-
modelUsage
|
|
3747
|
-
};
|
|
3762
|
+
return { results };
|
|
3748
3763
|
};
|
|
3749
3764
|
};
|
|
3750
3765
|
var mapFinishReason3 = (finishReason) => {
|
|
@@ -3930,9 +3945,6 @@ var AxAI = class {
|
|
|
3930
3945
|
getModelList() {
|
|
3931
3946
|
return this.ai.getModelList();
|
|
3932
3947
|
}
|
|
3933
|
-
getDefaultModels() {
|
|
3934
|
-
return this.ai.getDefaultModels();
|
|
3935
|
-
}
|
|
3936
3948
|
getMetrics() {
|
|
3937
3949
|
return this.ai.getMetrics();
|
|
3938
3950
|
}
|
|
@@ -4869,9 +4881,15 @@ function mergeProgramUsage(usages) {
|
|
|
4869
4881
|
}
|
|
4870
4882
|
const currentUsage = usageMap[key];
|
|
4871
4883
|
if (currentUsage) {
|
|
4872
|
-
currentUsage.
|
|
4873
|
-
|
|
4874
|
-
|
|
4884
|
+
const tokens = currentUsage.tokens ?? {
|
|
4885
|
+
promptTokens: 0,
|
|
4886
|
+
completionTokens: 0,
|
|
4887
|
+
totalTokens: 0
|
|
4888
|
+
};
|
|
4889
|
+
tokens.promptTokens += usage?.tokens?.promptTokens ?? 0;
|
|
4890
|
+
tokens.completionTokens += usage?.tokens?.completionTokens ?? 0;
|
|
4891
|
+
tokens.totalTokens += usage?.tokens?.totalTokens ?? 0;
|
|
4892
|
+
currentUsage.tokens = tokens;
|
|
4875
4893
|
}
|
|
4876
4894
|
}
|
|
4877
4895
|
return Object.values(usageMap);
|
|
@@ -6391,13 +6409,9 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6391
6409
|
mem,
|
|
6392
6410
|
options
|
|
6393
6411
|
}) {
|
|
6394
|
-
const { sessionId, traceId,
|
|
6412
|
+
const { sessionId, traceId, functions: _functions } = options ?? {};
|
|
6395
6413
|
const fastFail = options?.fastFail ?? this.options?.fastFail;
|
|
6396
|
-
const
|
|
6397
|
-
const usageInfo = {
|
|
6398
|
-
ai: ai.getName(),
|
|
6399
|
-
model: modelName
|
|
6400
|
-
};
|
|
6414
|
+
const model = options.model;
|
|
6401
6415
|
const functions = _functions?.map((f) => "toFunction" in f ? f.toFunction() : f)?.flat();
|
|
6402
6416
|
const res = await this.forwardSendRequest({
|
|
6403
6417
|
ai,
|
|
@@ -6409,7 +6423,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6409
6423
|
ai,
|
|
6410
6424
|
model,
|
|
6411
6425
|
res,
|
|
6412
|
-
usageInfo,
|
|
6413
6426
|
mem,
|
|
6414
6427
|
traceId,
|
|
6415
6428
|
sessionId,
|
|
@@ -6421,7 +6434,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6421
6434
|
ai,
|
|
6422
6435
|
model,
|
|
6423
6436
|
res,
|
|
6424
|
-
usageInfo,
|
|
6425
6437
|
mem,
|
|
6426
6438
|
traceId,
|
|
6427
6439
|
sessionId,
|
|
@@ -6433,14 +6445,13 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6433
6445
|
ai,
|
|
6434
6446
|
model,
|
|
6435
6447
|
res,
|
|
6436
|
-
usageInfo,
|
|
6437
6448
|
mem,
|
|
6438
6449
|
sessionId,
|
|
6439
6450
|
traceId,
|
|
6440
6451
|
functions,
|
|
6441
6452
|
fastFail
|
|
6442
6453
|
}) {
|
|
6443
|
-
const streamingValidation = fastFail ?? ai.getFeatures().functionCot !== true;
|
|
6454
|
+
const streamingValidation = fastFail ?? ai.getFeatures(model).functionCot !== true;
|
|
6444
6455
|
const functionCalls = [];
|
|
6445
6456
|
const values = {};
|
|
6446
6457
|
const xstate = {
|
|
@@ -6455,7 +6466,7 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6455
6466
|
continue;
|
|
6456
6467
|
}
|
|
6457
6468
|
if (v.modelUsage) {
|
|
6458
|
-
this.usage.push(
|
|
6469
|
+
this.usage.push(v.modelUsage);
|
|
6459
6470
|
}
|
|
6460
6471
|
if (result.functionCalls) {
|
|
6461
6472
|
mergeFunctionCalls(functionCalls, result.functionCalls);
|
|
@@ -6556,7 +6567,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6556
6567
|
async processResponse({
|
|
6557
6568
|
ai,
|
|
6558
6569
|
res,
|
|
6559
|
-
usageInfo,
|
|
6560
6570
|
mem,
|
|
6561
6571
|
sessionId,
|
|
6562
6572
|
traceId,
|
|
@@ -6569,7 +6579,7 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6569
6579
|
}
|
|
6570
6580
|
for (const result of results) {
|
|
6571
6581
|
if (res.modelUsage) {
|
|
6572
|
-
this.usage.push(
|
|
6582
|
+
this.usage.push(res.modelUsage);
|
|
6573
6583
|
}
|
|
6574
6584
|
mem.addResult(result, sessionId);
|
|
6575
6585
|
if (result.functionCalls?.length) {
|
|
@@ -7161,9 +7171,6 @@ var AxBalancer = class _AxBalancer {
|
|
|
7161
7171
|
getModelList() {
|
|
7162
7172
|
return this.currentService.getModelList();
|
|
7163
7173
|
}
|
|
7164
|
-
getDefaultModels() {
|
|
7165
|
-
return this.currentService.getDefaultModels();
|
|
7166
|
-
}
|
|
7167
7174
|
getNextService() {
|
|
7168
7175
|
const cs = this.services[++this.currentServiceIndex];
|
|
7169
7176
|
if (cs === void 0) {
|
|
@@ -9315,12 +9322,6 @@ var AxMockAIService = class {
|
|
|
9315
9322
|
getModelList() {
|
|
9316
9323
|
return this.config.models;
|
|
9317
9324
|
}
|
|
9318
|
-
getDefaultModels() {
|
|
9319
|
-
return {
|
|
9320
|
-
model: this.config.modelInfo?.name ?? "mock-model",
|
|
9321
|
-
embedModel: this.config.embedModelInfo?.name
|
|
9322
|
-
};
|
|
9323
|
-
}
|
|
9324
9325
|
getMetrics() {
|
|
9325
9326
|
return this.metrics;
|
|
9326
9327
|
}
|
|
@@ -9343,9 +9344,13 @@ var AxMockAIService = class {
|
|
|
9343
9344
|
}
|
|
9344
9345
|
],
|
|
9345
9346
|
modelUsage: {
|
|
9346
|
-
|
|
9347
|
-
|
|
9348
|
-
|
|
9347
|
+
ai: this.getName(),
|
|
9348
|
+
model: "mock-model",
|
|
9349
|
+
tokens: {
|
|
9350
|
+
promptTokens: 10,
|
|
9351
|
+
completionTokens: 5,
|
|
9352
|
+
totalTokens: 15
|
|
9353
|
+
}
|
|
9349
9354
|
}
|
|
9350
9355
|
};
|
|
9351
9356
|
}
|
|
@@ -9363,9 +9368,13 @@ var AxMockAIService = class {
|
|
|
9363
9368
|
return this.config.embedResponse ?? {
|
|
9364
9369
|
embeddings: [[0.1, 0.2, 0.3]],
|
|
9365
9370
|
modelUsage: {
|
|
9366
|
-
|
|
9367
|
-
|
|
9368
|
-
|
|
9371
|
+
ai: this.getName(),
|
|
9372
|
+
model: "mock-model",
|
|
9373
|
+
tokens: {
|
|
9374
|
+
promptTokens: 5,
|
|
9375
|
+
completionTokens: 0,
|
|
9376
|
+
totalTokens: 5
|
|
9377
|
+
}
|
|
9369
9378
|
}
|
|
9370
9379
|
};
|
|
9371
9380
|
}
|
|
@@ -11329,11 +11338,6 @@ var AxMultiServiceRouter = class {
|
|
|
11329
11338
|
}
|
|
11330
11339
|
});
|
|
11331
11340
|
}
|
|
11332
|
-
getDefaultModels() {
|
|
11333
|
-
throw new Error(
|
|
11334
|
-
"getDefaultModels is not supported for multi-service router."
|
|
11335
|
-
);
|
|
11336
|
-
}
|
|
11337
11341
|
/**
|
|
11338
11342
|
* If a model key is provided, delegate to the corresponding service's features.
|
|
11339
11343
|
* Otherwise, returns a default feature set.
|
|
@@ -11496,6 +11500,7 @@ var AxRAG = class extends AxChainOfThought {
|
|
|
11496
11500
|
AxStringUtil,
|
|
11497
11501
|
AxTestPrompt,
|
|
11498
11502
|
axAIAnthropicDefaultConfig,
|
|
11503
|
+
axAIAnthropicVertexDefaultConfig,
|
|
11499
11504
|
axAIAzureOpenAIBestConfig,
|
|
11500
11505
|
axAIAzureOpenAICreativeConfig,
|
|
11501
11506
|
axAIAzureOpenAIDefaultConfig,
|