@ax-llm/ax 11.0.35 → 11.0.37
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 -133
- package/index.cjs.map +1 -1
- package/index.d.cts +13 -35
- package/index.d.ts +13 -35
- package/index.js +131 -133
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -735,7 +735,7 @@ var AxBaseAI = class {
|
|
|
735
735
|
this.models = models;
|
|
736
736
|
this.id = crypto.randomUUID();
|
|
737
737
|
const model = this.getModel(defaults.model) ?? defaults.model;
|
|
738
|
-
const embedModel = this.getEmbedModel(defaults.embedModel);
|
|
738
|
+
const embedModel = this.getEmbedModel(defaults.embedModel) ?? defaults.embedModel;
|
|
739
739
|
this.defaults = { model, embedModel };
|
|
740
740
|
if (!defaults.model || typeof defaults.model !== "string" || defaults.model === "") {
|
|
741
741
|
throw new Error("No model defined");
|
|
@@ -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,17 +1110,19 @@ 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
|
-
|
|
1119
|
-
this.embedModelUsage = res.modelUsage;
|
|
1120
|
-
span.setAttributes({
|
|
1121
|
-
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.completionTokens ?? 0,
|
|
1122
|
-
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.promptTokens
|
|
1123
|
-
});
|
|
1124
|
-
}
|
|
1125
|
+
setResponseAttr(res, span);
|
|
1125
1126
|
}
|
|
1126
1127
|
span?.end();
|
|
1127
1128
|
return res;
|
|
@@ -1148,8 +1149,8 @@ var AxBaseAI = class {
|
|
|
1148
1149
|
function setResponseAttr(res, span) {
|
|
1149
1150
|
if (res.modelUsage) {
|
|
1150
1151
|
span.setAttributes({
|
|
1151
|
-
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.completionTokens ?? 0,
|
|
1152
|
-
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.promptTokens
|
|
1152
|
+
[axSpanAttributes.LLM_USAGE_COMPLETION_TOKENS]: res.modelUsage.tokens?.completionTokens ?? 0,
|
|
1153
|
+
[axSpanAttributes.LLM_USAGE_PROMPT_TOKENS]: res.modelUsage.tokens?.promptTokens
|
|
1153
1154
|
});
|
|
1154
1155
|
}
|
|
1155
1156
|
}
|
|
@@ -1204,14 +1205,14 @@ var AxAIAnthropicModel = /* @__PURE__ */ ((AxAIAnthropicModel2) => {
|
|
|
1204
1205
|
AxAIAnthropicModel2["ClaudeInstant12"] = "claude-instant-1.2";
|
|
1205
1206
|
return AxAIAnthropicModel2;
|
|
1206
1207
|
})(AxAIAnthropicModel || {});
|
|
1207
|
-
var AxAIAnthropicVertexModel = /* @__PURE__ */ ((
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
return
|
|
1208
|
+
var AxAIAnthropicVertexModel = /* @__PURE__ */ ((AxAIAnthropicVertexModel2) => {
|
|
1209
|
+
AxAIAnthropicVertexModel2["Claude37Sonnet"] = "claude-3-7-sonnet";
|
|
1210
|
+
AxAIAnthropicVertexModel2["Claude35Haiku"] = "claude-3-5-haiku";
|
|
1211
|
+
AxAIAnthropicVertexModel2["Claude35Sonnet"] = "claude-3-5-sonnet";
|
|
1212
|
+
AxAIAnthropicVertexModel2["Claude35SonnetV2"] = "claude-3-5-sonnet-v2";
|
|
1213
|
+
AxAIAnthropicVertexModel2["Claude3Haiku"] = "claude-3-haiku";
|
|
1214
|
+
AxAIAnthropicVertexModel2["Claude3Opus"] = "claude-3-opus";
|
|
1215
|
+
return AxAIAnthropicVertexModel2;
|
|
1215
1216
|
})(AxAIAnthropicVertexModel || {});
|
|
1216
1217
|
|
|
1217
1218
|
// ai/anthropic/info.ts
|
|
@@ -1265,7 +1266,11 @@ var axModelInfoAnthropic = [
|
|
|
1265
1266
|
|
|
1266
1267
|
// ai/anthropic/api.ts
|
|
1267
1268
|
var axAIAnthropicDefaultConfig = () => structuredClone({
|
|
1268
|
-
model: "claude-3-
|
|
1269
|
+
model: "claude-3-7-sonnet-latest" /* Claude37Sonnet */,
|
|
1270
|
+
...axBaseAIDefaultConfig()
|
|
1271
|
+
});
|
|
1272
|
+
var axAIAnthropicVertexDefaultConfig = () => structuredClone({
|
|
1273
|
+
model: "claude-3-7-sonnet" /* Claude37Sonnet */,
|
|
1269
1274
|
...axBaseAIDefaultConfig()
|
|
1270
1275
|
});
|
|
1271
1276
|
var AxAIAnthropicImpl = class {
|
|
@@ -1273,6 +1278,10 @@ var AxAIAnthropicImpl = class {
|
|
|
1273
1278
|
this.config = config;
|
|
1274
1279
|
this.isVertex = isVertex;
|
|
1275
1280
|
}
|
|
1281
|
+
tokensUsed;
|
|
1282
|
+
getTokenUsage() {
|
|
1283
|
+
return this.tokensUsed;
|
|
1284
|
+
}
|
|
1276
1285
|
getModelConfig() {
|
|
1277
1286
|
const { config } = this;
|
|
1278
1287
|
return {
|
|
@@ -1382,16 +1391,12 @@ var AxAIAnthropicImpl = class {
|
|
|
1382
1391
|
finishReason
|
|
1383
1392
|
};
|
|
1384
1393
|
});
|
|
1385
|
-
|
|
1394
|
+
this.tokensUsed = {
|
|
1386
1395
|
promptTokens: resp.usage.input_tokens,
|
|
1387
1396
|
completionTokens: resp.usage.output_tokens,
|
|
1388
1397
|
totalTokens: resp.usage.input_tokens + resp.usage.output_tokens
|
|
1389
1398
|
};
|
|
1390
|
-
return {
|
|
1391
|
-
results,
|
|
1392
|
-
modelUsage,
|
|
1393
|
-
remoteId: resp.id
|
|
1394
|
-
};
|
|
1399
|
+
return { results, remoteId: resp.id };
|
|
1395
1400
|
};
|
|
1396
1401
|
createChatStreamResp = (resp, state) => {
|
|
1397
1402
|
if (!("type" in resp)) {
|
|
@@ -1408,15 +1413,12 @@ var AxAIAnthropicImpl = class {
|
|
|
1408
1413
|
if (resp.type === "message_start") {
|
|
1409
1414
|
const { message } = resp;
|
|
1410
1415
|
const results = [{ content: "", id: message.id }];
|
|
1411
|
-
|
|
1416
|
+
this.tokensUsed = {
|
|
1412
1417
|
promptTokens: message.usage?.input_tokens ?? 0,
|
|
1413
1418
|
completionTokens: message.usage?.output_tokens ?? 0,
|
|
1414
1419
|
totalTokens: (message.usage?.input_tokens ?? 0) + (message.usage?.output_tokens ?? 0)
|
|
1415
1420
|
};
|
|
1416
|
-
return {
|
|
1417
|
-
results,
|
|
1418
|
-
modelUsage
|
|
1419
|
-
};
|
|
1421
|
+
return { results };
|
|
1420
1422
|
}
|
|
1421
1423
|
if (resp.type === "content_block_start") {
|
|
1422
1424
|
const { content_block: contentBlock } = resp;
|
|
@@ -1473,19 +1475,15 @@ var AxAIAnthropicImpl = class {
|
|
|
1473
1475
|
}
|
|
1474
1476
|
if (resp.type === "message_delta") {
|
|
1475
1477
|
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
|
-
}
|
|
1478
|
+
this.tokensUsed = {
|
|
1479
|
+
promptTokens: 0,
|
|
1480
|
+
completionTokens: usage.output_tokens,
|
|
1481
|
+
totalTokens: usage.output_tokens
|
|
1488
1482
|
};
|
|
1483
|
+
const results = [
|
|
1484
|
+
{ content: "", finishReason: mapFinishReason(delta.stop_reason) }
|
|
1485
|
+
];
|
|
1486
|
+
return { results };
|
|
1489
1487
|
}
|
|
1490
1488
|
return {
|
|
1491
1489
|
results: [{ content: "" }]
|
|
@@ -1676,6 +1674,7 @@ var AxAIOpenAIModel = /* @__PURE__ */ ((AxAIOpenAIModel2) => {
|
|
|
1676
1674
|
AxAIOpenAIModel2["O4Mini"] = "o4-mini";
|
|
1677
1675
|
AxAIOpenAIModel2["GPT4"] = "gpt-4";
|
|
1678
1676
|
AxAIOpenAIModel2["GPT41"] = "gpt-4.1";
|
|
1677
|
+
AxAIOpenAIModel2["GPT41Mini"] = "gpt-4.1-mini";
|
|
1679
1678
|
AxAIOpenAIModel2["GPT4O"] = "gpt-4o";
|
|
1680
1679
|
AxAIOpenAIModel2["GPT4OMini"] = "gpt-4o-mini";
|
|
1681
1680
|
AxAIOpenAIModel2["GPT4ChatGPT4O"] = "chatgpt-4o-latest";
|
|
@@ -1732,6 +1731,12 @@ var axModelInfoOpenAI = [
|
|
|
1732
1731
|
promptTokenCostPer1M: 2,
|
|
1733
1732
|
completionTokenCostPer1M: 8
|
|
1734
1733
|
},
|
|
1734
|
+
{
|
|
1735
|
+
name: "gpt-4.1-mini" /* GPT41Mini */,
|
|
1736
|
+
currency: "usd",
|
|
1737
|
+
promptTokenCostPer1M: 0.4,
|
|
1738
|
+
completionTokenCostPer1M: 1.6
|
|
1739
|
+
},
|
|
1735
1740
|
{
|
|
1736
1741
|
name: "gpt-4o" /* GPT4O */,
|
|
1737
1742
|
currency: "usd",
|
|
@@ -1784,28 +1789,32 @@ var axModelInfoOpenAI = [
|
|
|
1784
1789
|
|
|
1785
1790
|
// ai/openai/api.ts
|
|
1786
1791
|
var axAIOpenAIDefaultConfig = () => structuredClone({
|
|
1787
|
-
model: "gpt-
|
|
1792
|
+
model: "gpt-4.1" /* GPT41 */,
|
|
1788
1793
|
embedModel: "text-embedding-3-small" /* TextEmbedding3Small */,
|
|
1789
1794
|
...axBaseAIDefaultConfig()
|
|
1790
1795
|
});
|
|
1791
1796
|
var axAIOpenAIBestConfig = () => structuredClone({
|
|
1792
1797
|
...axAIOpenAIDefaultConfig(),
|
|
1793
|
-
model: "gpt-
|
|
1798
|
+
model: "gpt-4.1" /* GPT41 */
|
|
1794
1799
|
});
|
|
1795
1800
|
var axAIOpenAICreativeConfig = () => structuredClone({
|
|
1796
|
-
model: "gpt-
|
|
1801
|
+
model: "gpt-4.1" /* GPT41 */,
|
|
1797
1802
|
embedModel: "text-embedding-3-small" /* TextEmbedding3Small */,
|
|
1798
1803
|
...axBaseAIDefaultCreativeConfig()
|
|
1799
1804
|
});
|
|
1800
1805
|
var axAIOpenAIFastConfig = () => ({
|
|
1801
1806
|
...axAIOpenAIDefaultConfig(),
|
|
1802
|
-
model: "gpt-
|
|
1807
|
+
model: "gpt-4.1-mini" /* GPT41Mini */
|
|
1803
1808
|
});
|
|
1804
1809
|
var AxAIOpenAIImpl = class {
|
|
1805
1810
|
constructor(config, streamingUsage) {
|
|
1806
1811
|
this.config = config;
|
|
1807
1812
|
this.streamingUsage = streamingUsage;
|
|
1808
1813
|
}
|
|
1814
|
+
tokensUsed;
|
|
1815
|
+
getTokenUsage() {
|
|
1816
|
+
return this.tokensUsed;
|
|
1817
|
+
}
|
|
1809
1818
|
getModelConfig() {
|
|
1810
1819
|
const { config } = this;
|
|
1811
1820
|
return {
|
|
@@ -1885,7 +1894,7 @@ var AxAIOpenAIImpl = class {
|
|
|
1885
1894
|
if (error) {
|
|
1886
1895
|
throw error;
|
|
1887
1896
|
}
|
|
1888
|
-
|
|
1897
|
+
this.tokensUsed = usage ? {
|
|
1889
1898
|
promptTokens: usage.prompt_tokens,
|
|
1890
1899
|
completionTokens: usage.completion_tokens,
|
|
1891
1900
|
totalTokens: usage.total_tokens
|
|
@@ -1907,14 +1916,13 @@ var AxAIOpenAIImpl = class {
|
|
|
1907
1916
|
};
|
|
1908
1917
|
});
|
|
1909
1918
|
return {
|
|
1910
|
-
modelUsage,
|
|
1911
1919
|
results,
|
|
1912
1920
|
remoteId: id
|
|
1913
1921
|
};
|
|
1914
1922
|
}
|
|
1915
1923
|
createChatStreamResp(resp, state) {
|
|
1916
1924
|
const { id, usage, choices } = resp;
|
|
1917
|
-
|
|
1925
|
+
this.tokensUsed = usage ? {
|
|
1918
1926
|
promptTokens: usage.prompt_tokens,
|
|
1919
1927
|
completionTokens: usage.completion_tokens,
|
|
1920
1928
|
totalTokens: usage.total_tokens
|
|
@@ -1952,22 +1960,16 @@ var AxAIOpenAIImpl = class {
|
|
|
1952
1960
|
};
|
|
1953
1961
|
}
|
|
1954
1962
|
);
|
|
1955
|
-
return {
|
|
1956
|
-
results,
|
|
1957
|
-
modelUsage
|
|
1958
|
-
};
|
|
1963
|
+
return { results };
|
|
1959
1964
|
}
|
|
1960
1965
|
createEmbedResp(resp) {
|
|
1961
1966
|
const { data, usage } = resp;
|
|
1962
|
-
|
|
1967
|
+
this.tokensUsed = usage ? {
|
|
1963
1968
|
promptTokens: usage.prompt_tokens,
|
|
1964
1969
|
completionTokens: usage.completion_tokens,
|
|
1965
1970
|
totalTokens: usage.total_tokens
|
|
1966
1971
|
} : void 0;
|
|
1967
|
-
return {
|
|
1968
|
-
embeddings: data.map((v) => v.embedding),
|
|
1969
|
-
modelUsage
|
|
1970
|
-
};
|
|
1972
|
+
return { embeddings: data.map((v) => v.embedding) };
|
|
1971
1973
|
}
|
|
1972
1974
|
};
|
|
1973
1975
|
var mapFinishReason2 = (finishReason) => {
|
|
@@ -2232,6 +2234,10 @@ var AxAICohereImpl = class {
|
|
|
2232
2234
|
constructor(config) {
|
|
2233
2235
|
this.config = config;
|
|
2234
2236
|
}
|
|
2237
|
+
tokensUsed;
|
|
2238
|
+
getTokenUsage() {
|
|
2239
|
+
return this.tokensUsed;
|
|
2240
|
+
}
|
|
2235
2241
|
getModelConfig() {
|
|
2236
2242
|
const { config } = this;
|
|
2237
2243
|
return {
|
|
@@ -2323,7 +2329,7 @@ var AxAICohereImpl = class {
|
|
|
2323
2329
|
return [apiConfig, reqValue];
|
|
2324
2330
|
};
|
|
2325
2331
|
createChatResp = (resp) => {
|
|
2326
|
-
|
|
2332
|
+
this.tokensUsed = resp.meta.billed_units ? {
|
|
2327
2333
|
promptTokens: resp.meta.billed_units.input_tokens,
|
|
2328
2334
|
completionTokens: resp.meta.billed_units.output_tokens,
|
|
2329
2335
|
totalTokens: resp.meta.billed_units.input_tokens + resp.meta.billed_units.output_tokens
|
|
@@ -2366,17 +2372,18 @@ var AxAICohereImpl = class {
|
|
|
2366
2372
|
finishReason
|
|
2367
2373
|
}
|
|
2368
2374
|
];
|
|
2369
|
-
return {
|
|
2370
|
-
results,
|
|
2371
|
-
modelUsage,
|
|
2372
|
-
remoteId: resp.response_id
|
|
2373
|
-
};
|
|
2375
|
+
return { results, remoteId: resp.response_id };
|
|
2374
2376
|
};
|
|
2375
2377
|
createChatStreamResp = (resp, state) => {
|
|
2376
2378
|
const ss = state;
|
|
2377
2379
|
if (resp.event_type === "stream-start") {
|
|
2378
2380
|
ss.generation_id = resp.generation_id;
|
|
2379
2381
|
}
|
|
2382
|
+
this.tokensUsed = {
|
|
2383
|
+
promptTokens: 0,
|
|
2384
|
+
completionTokens: resp.meta.billed_units?.output_tokens ?? 0,
|
|
2385
|
+
totalTokens: resp.meta.billed_units?.output_tokens ?? 0
|
|
2386
|
+
};
|
|
2380
2387
|
const { results } = this.createChatResp(resp);
|
|
2381
2388
|
const result = results[0];
|
|
2382
2389
|
if (!result) {
|
|
@@ -2670,13 +2677,13 @@ var safetySettings = [
|
|
|
2670
2677
|
];
|
|
2671
2678
|
var axAIGoogleGeminiDefaultConfig = () => structuredClone({
|
|
2672
2679
|
model: "gemini-2.0-flash" /* Gemini20Flash */,
|
|
2673
|
-
embedModel: "text-embedding-
|
|
2680
|
+
embedModel: "text-embedding-005" /* TextEmbedding005 */,
|
|
2674
2681
|
safetySettings,
|
|
2675
2682
|
...axBaseAIDefaultConfig()
|
|
2676
2683
|
});
|
|
2677
2684
|
var axAIGoogleGeminiDefaultCreativeConfig = () => structuredClone({
|
|
2678
2685
|
model: "gemini-2.0-flash" /* Gemini20Flash */,
|
|
2679
|
-
embedModel: "text-embedding-
|
|
2686
|
+
embedModel: "text-embedding-005" /* TextEmbedding005 */,
|
|
2680
2687
|
safetySettings,
|
|
2681
2688
|
...axBaseAIDefaultCreativeConfig()
|
|
2682
2689
|
});
|
|
@@ -2691,6 +2698,10 @@ var AxAIGoogleGeminiImpl = class {
|
|
|
2691
2698
|
throw new Error("Auto truncate is not supported for GoogleGemini");
|
|
2692
2699
|
}
|
|
2693
2700
|
}
|
|
2701
|
+
tokensUsed;
|
|
2702
|
+
getTokenUsage() {
|
|
2703
|
+
return this.tokensUsed;
|
|
2704
|
+
}
|
|
2694
2705
|
getModelConfig() {
|
|
2695
2706
|
const { config } = this;
|
|
2696
2707
|
return {
|
|
@@ -2953,18 +2964,14 @@ var AxAIGoogleGeminiImpl = class {
|
|
|
2953
2964
|
return result;
|
|
2954
2965
|
}
|
|
2955
2966
|
);
|
|
2956
|
-
let modelUsage;
|
|
2957
2967
|
if (resp.usageMetadata) {
|
|
2958
|
-
|
|
2968
|
+
this.tokensUsed = {
|
|
2959
2969
|
totalTokens: resp.usageMetadata.totalTokenCount,
|
|
2960
2970
|
promptTokens: resp.usageMetadata.promptTokenCount,
|
|
2961
2971
|
completionTokens: resp.usageMetadata.candidatesTokenCount
|
|
2962
2972
|
};
|
|
2963
2973
|
}
|
|
2964
|
-
return {
|
|
2965
|
-
results,
|
|
2966
|
-
modelUsage
|
|
2967
|
-
};
|
|
2974
|
+
return { results };
|
|
2968
2975
|
};
|
|
2969
2976
|
createChatStreamResp = (resp) => {
|
|
2970
2977
|
return this.createChatResp(resp);
|
|
@@ -3182,7 +3189,7 @@ var AxAIGroq = class extends AxAIOpenAIBase {
|
|
|
3182
3189
|
debug: options?.debug
|
|
3183
3190
|
});
|
|
3184
3191
|
const rtFunc = async (func, info) => {
|
|
3185
|
-
const totalTokens = info.modelUsage?.totalTokens || 0;
|
|
3192
|
+
const totalTokens = info.modelUsage?.tokens?.totalTokens || 0;
|
|
3186
3193
|
await rt.acquire(totalTokens);
|
|
3187
3194
|
return await func();
|
|
3188
3195
|
};
|
|
@@ -3212,6 +3219,10 @@ var AxAIHuggingFaceImpl = class {
|
|
|
3212
3219
|
constructor(config) {
|
|
3213
3220
|
this.config = config;
|
|
3214
3221
|
}
|
|
3222
|
+
tokensUsed;
|
|
3223
|
+
getTokenUsage() {
|
|
3224
|
+
return this.tokensUsed;
|
|
3225
|
+
}
|
|
3215
3226
|
getModelConfig() {
|
|
3216
3227
|
const { config } = this;
|
|
3217
3228
|
return {
|
|
@@ -3505,6 +3516,10 @@ var AxAIRekaImpl = class {
|
|
|
3505
3516
|
constructor(config) {
|
|
3506
3517
|
this.config = config;
|
|
3507
3518
|
}
|
|
3519
|
+
tokensUsed;
|
|
3520
|
+
getTokenUsage() {
|
|
3521
|
+
return this.tokensUsed;
|
|
3522
|
+
}
|
|
3508
3523
|
getModelConfig() {
|
|
3509
3524
|
const { config } = this;
|
|
3510
3525
|
return {
|
|
@@ -3545,7 +3560,7 @@ var AxAIRekaImpl = class {
|
|
|
3545
3560
|
};
|
|
3546
3561
|
createChatResp = (resp) => {
|
|
3547
3562
|
const { id, usage, responses } = resp;
|
|
3548
|
-
|
|
3563
|
+
this.tokensUsed = usage ? {
|
|
3549
3564
|
promptTokens: usage.input_tokens,
|
|
3550
3565
|
completionTokens: usage.output_tokens,
|
|
3551
3566
|
totalTokens: usage.input_tokens + usage.output_tokens
|
|
@@ -3564,15 +3579,11 @@ var AxAIRekaImpl = class {
|
|
|
3564
3579
|
finishReason
|
|
3565
3580
|
};
|
|
3566
3581
|
});
|
|
3567
|
-
return {
|
|
3568
|
-
modelUsage,
|
|
3569
|
-
results,
|
|
3570
|
-
remoteId: id
|
|
3571
|
-
};
|
|
3582
|
+
return { results, remoteId: id };
|
|
3572
3583
|
};
|
|
3573
3584
|
createChatStreamResp = (resp) => {
|
|
3574
3585
|
const { id, usage, responses } = resp;
|
|
3575
|
-
|
|
3586
|
+
this.tokensUsed = usage ? {
|
|
3576
3587
|
promptTokens: usage.input_tokens,
|
|
3577
3588
|
completionTokens: usage.output_tokens,
|
|
3578
3589
|
totalTokens: usage.input_tokens + usage.output_tokens
|
|
@@ -3591,10 +3602,7 @@ var AxAIRekaImpl = class {
|
|
|
3591
3602
|
finishReason
|
|
3592
3603
|
};
|
|
3593
3604
|
});
|
|
3594
|
-
return {
|
|
3595
|
-
results,
|
|
3596
|
-
modelUsage
|
|
3597
|
-
};
|
|
3605
|
+
return { results };
|
|
3598
3606
|
};
|
|
3599
3607
|
};
|
|
3600
3608
|
var mapFinishReason3 = (finishReason) => {
|
|
@@ -3780,9 +3788,6 @@ var AxAI = class {
|
|
|
3780
3788
|
getModelList() {
|
|
3781
3789
|
return this.ai.getModelList();
|
|
3782
3790
|
}
|
|
3783
|
-
getDefaultModels() {
|
|
3784
|
-
return this.ai.getDefaultModels();
|
|
3785
|
-
}
|
|
3786
3791
|
getMetrics() {
|
|
3787
3792
|
return this.ai.getMetrics();
|
|
3788
3793
|
}
|
|
@@ -4719,9 +4724,15 @@ function mergeProgramUsage(usages) {
|
|
|
4719
4724
|
}
|
|
4720
4725
|
const currentUsage = usageMap[key];
|
|
4721
4726
|
if (currentUsage) {
|
|
4722
|
-
currentUsage.
|
|
4723
|
-
|
|
4724
|
-
|
|
4727
|
+
const tokens = currentUsage.tokens ?? {
|
|
4728
|
+
promptTokens: 0,
|
|
4729
|
+
completionTokens: 0,
|
|
4730
|
+
totalTokens: 0
|
|
4731
|
+
};
|
|
4732
|
+
tokens.promptTokens += usage?.tokens?.promptTokens ?? 0;
|
|
4733
|
+
tokens.completionTokens += usage?.tokens?.completionTokens ?? 0;
|
|
4734
|
+
tokens.totalTokens += usage?.tokens?.totalTokens ?? 0;
|
|
4735
|
+
currentUsage.tokens = tokens;
|
|
4725
4736
|
}
|
|
4726
4737
|
}
|
|
4727
4738
|
return Object.values(usageMap);
|
|
@@ -6241,13 +6252,9 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6241
6252
|
mem,
|
|
6242
6253
|
options
|
|
6243
6254
|
}) {
|
|
6244
|
-
const { sessionId, traceId,
|
|
6255
|
+
const { sessionId, traceId, functions: _functions } = options ?? {};
|
|
6245
6256
|
const fastFail = options?.fastFail ?? this.options?.fastFail;
|
|
6246
|
-
const
|
|
6247
|
-
const usageInfo = {
|
|
6248
|
-
ai: ai.getName(),
|
|
6249
|
-
model: modelName
|
|
6250
|
-
};
|
|
6257
|
+
const model = options.model;
|
|
6251
6258
|
const functions = _functions?.map((f) => "toFunction" in f ? f.toFunction() : f)?.flat();
|
|
6252
6259
|
const res = await this.forwardSendRequest({
|
|
6253
6260
|
ai,
|
|
@@ -6259,7 +6266,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6259
6266
|
ai,
|
|
6260
6267
|
model,
|
|
6261
6268
|
res,
|
|
6262
|
-
usageInfo,
|
|
6263
6269
|
mem,
|
|
6264
6270
|
traceId,
|
|
6265
6271
|
sessionId,
|
|
@@ -6271,7 +6277,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6271
6277
|
ai,
|
|
6272
6278
|
model,
|
|
6273
6279
|
res,
|
|
6274
|
-
usageInfo,
|
|
6275
6280
|
mem,
|
|
6276
6281
|
traceId,
|
|
6277
6282
|
sessionId,
|
|
@@ -6283,14 +6288,13 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6283
6288
|
ai,
|
|
6284
6289
|
model,
|
|
6285
6290
|
res,
|
|
6286
|
-
usageInfo,
|
|
6287
6291
|
mem,
|
|
6288
6292
|
sessionId,
|
|
6289
6293
|
traceId,
|
|
6290
6294
|
functions,
|
|
6291
6295
|
fastFail
|
|
6292
6296
|
}) {
|
|
6293
|
-
const streamingValidation = fastFail ?? ai.getFeatures().functionCot !== true;
|
|
6297
|
+
const streamingValidation = fastFail ?? ai.getFeatures(model).functionCot !== true;
|
|
6294
6298
|
const functionCalls = [];
|
|
6295
6299
|
const values = {};
|
|
6296
6300
|
const xstate = {
|
|
@@ -6305,7 +6309,7 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6305
6309
|
continue;
|
|
6306
6310
|
}
|
|
6307
6311
|
if (v.modelUsage) {
|
|
6308
|
-
this.usage.push(
|
|
6312
|
+
this.usage.push(v.modelUsage);
|
|
6309
6313
|
}
|
|
6310
6314
|
if (result.functionCalls) {
|
|
6311
6315
|
mergeFunctionCalls(functionCalls, result.functionCalls);
|
|
@@ -6406,7 +6410,6 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6406
6410
|
async processResponse({
|
|
6407
6411
|
ai,
|
|
6408
6412
|
res,
|
|
6409
|
-
usageInfo,
|
|
6410
6413
|
mem,
|
|
6411
6414
|
sessionId,
|
|
6412
6415
|
traceId,
|
|
@@ -6419,7 +6422,7 @@ var AxGen = class extends AxProgramWithSignature {
|
|
|
6419
6422
|
}
|
|
6420
6423
|
for (const result of results) {
|
|
6421
6424
|
if (res.modelUsage) {
|
|
6422
|
-
this.usage.push(
|
|
6425
|
+
this.usage.push(res.modelUsage);
|
|
6423
6426
|
}
|
|
6424
6427
|
mem.addResult(result, sessionId);
|
|
6425
6428
|
if (result.functionCalls?.length) {
|
|
@@ -7011,9 +7014,6 @@ var AxBalancer = class _AxBalancer {
|
|
|
7011
7014
|
getModelList() {
|
|
7012
7015
|
return this.currentService.getModelList();
|
|
7013
7016
|
}
|
|
7014
|
-
getDefaultModels() {
|
|
7015
|
-
return this.currentService.getDefaultModels();
|
|
7016
|
-
}
|
|
7017
7017
|
getNextService() {
|
|
7018
7018
|
const cs = this.services[++this.currentServiceIndex];
|
|
7019
7019
|
if (cs === void 0) {
|
|
@@ -9165,12 +9165,6 @@ var AxMockAIService = class {
|
|
|
9165
9165
|
getModelList() {
|
|
9166
9166
|
return this.config.models;
|
|
9167
9167
|
}
|
|
9168
|
-
getDefaultModels() {
|
|
9169
|
-
return {
|
|
9170
|
-
model: this.config.modelInfo?.name ?? "mock-model",
|
|
9171
|
-
embedModel: this.config.embedModelInfo?.name
|
|
9172
|
-
};
|
|
9173
|
-
}
|
|
9174
9168
|
getMetrics() {
|
|
9175
9169
|
return this.metrics;
|
|
9176
9170
|
}
|
|
@@ -9193,9 +9187,13 @@ var AxMockAIService = class {
|
|
|
9193
9187
|
}
|
|
9194
9188
|
],
|
|
9195
9189
|
modelUsage: {
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9190
|
+
ai: this.getName(),
|
|
9191
|
+
model: "mock-model",
|
|
9192
|
+
tokens: {
|
|
9193
|
+
promptTokens: 10,
|
|
9194
|
+
completionTokens: 5,
|
|
9195
|
+
totalTokens: 15
|
|
9196
|
+
}
|
|
9199
9197
|
}
|
|
9200
9198
|
};
|
|
9201
9199
|
}
|
|
@@ -9213,9 +9211,13 @@ var AxMockAIService = class {
|
|
|
9213
9211
|
return this.config.embedResponse ?? {
|
|
9214
9212
|
embeddings: [[0.1, 0.2, 0.3]],
|
|
9215
9213
|
modelUsage: {
|
|
9216
|
-
|
|
9217
|
-
|
|
9218
|
-
|
|
9214
|
+
ai: this.getName(),
|
|
9215
|
+
model: "mock-model",
|
|
9216
|
+
tokens: {
|
|
9217
|
+
promptTokens: 5,
|
|
9218
|
+
completionTokens: 0,
|
|
9219
|
+
totalTokens: 5
|
|
9220
|
+
}
|
|
9219
9221
|
}
|
|
9220
9222
|
};
|
|
9221
9223
|
}
|
|
@@ -11179,11 +11181,6 @@ var AxMultiServiceRouter = class {
|
|
|
11179
11181
|
}
|
|
11180
11182
|
});
|
|
11181
11183
|
}
|
|
11182
|
-
getDefaultModels() {
|
|
11183
|
-
throw new Error(
|
|
11184
|
-
"getDefaultModels is not supported for multi-service router."
|
|
11185
|
-
);
|
|
11186
|
-
}
|
|
11187
11184
|
/**
|
|
11188
11185
|
* If a model key is provided, delegate to the corresponding service's features.
|
|
11189
11186
|
* Otherwise, returns a default feature set.
|
|
@@ -11345,6 +11342,7 @@ export {
|
|
|
11345
11342
|
AxStringUtil,
|
|
11346
11343
|
AxTestPrompt,
|
|
11347
11344
|
axAIAnthropicDefaultConfig,
|
|
11345
|
+
axAIAnthropicVertexDefaultConfig,
|
|
11348
11346
|
axAIAzureOpenAIBestConfig,
|
|
11349
11347
|
axAIAzureOpenAICreativeConfig,
|
|
11350
11348
|
axAIAzureOpenAIDefaultConfig,
|