@zimtsui/brainswitch 0.0.4 → 0.0.6
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/build/adaptor.d.ts +1 -1
- package/build/adaptor.js +15 -16
- package/build/adaptor.js.map +1 -1
- package/build/agentloop.d.ts +2 -2
- package/build/agentloop.js +3 -3
- package/build/agentloop.js.map +1 -1
- package/build/api-types/aliyun-stream.d.ts +16 -0
- package/build/api-types/aliyun-stream.js +22 -0
- package/build/api-types/aliyun-stream.js.map +1 -0
- package/build/api-types/base.d.ts +7 -2
- package/build/api-types/base.js +15 -2
- package/build/api-types/base.js.map +1 -1
- package/build/api-types/google-base.d.ts +3 -3
- package/build/api-types/google-base.js +3 -3
- package/build/api-types/google-base.js.map +1 -1
- package/build/api-types/google-rest.d.ts +14 -14
- package/build/api-types/google-rest.js +29 -47
- package/build/api-types/google-rest.js.map +1 -1
- package/build/api-types/openai-chatcompletions-base.d.ts +3 -4
- package/build/api-types/openai-chatcompletions-base.js +3 -7
- package/build/api-types/openai-chatcompletions-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions-monolith-base.d.ts +3 -3
- package/build/api-types/openai-chatcompletions-monolith-base.js +10 -11
- package/build/api-types/openai-chatcompletions-monolith-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions-stream-base.d.ts +3 -3
- package/build/api-types/openai-chatcompletions-stream-base.js +8 -9
- package/build/api-types/openai-chatcompletions-stream-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions.d.ts +9 -6
- package/build/api-types/openai-chatcompletions.js +16 -12
- package/build/api-types/openai-chatcompletions.js.map +1 -1
- package/build/api-types/openai-responses.d.ts +6 -6
- package/build/api-types/openai-responses.js +21 -23
- package/build/api-types/openai-responses.js.map +1 -1
- package/build/api-types/openrouter-monolith.d.ts +8 -6
- package/build/api-types/openrouter-monolith.js +14 -11
- package/build/api-types/openrouter-monolith.js.map +1 -1
- package/build/api-types/openrouter-stream.d.ts +8 -6
- package/build/api-types/openrouter-stream.js +14 -11
- package/build/api-types/openrouter-stream.js.map +1 -1
- package/build/config.d.ts +1 -2
- package/build/endpoint-spec.d.ts +1 -2
- package/build/endpoint-spec.js +1 -3
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine.d.ts +7 -6
- package/build/engine.js +0 -12
- package/build/engine.js.map +1 -1
- package/build/throttle.d.ts +3 -7
- package/build/throttle.js +17 -31
- package/build/throttle.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -2
- package/build/api-types/huggingface-cerebras-qwen3-thinking.d.ts +0 -15
- package/build/api-types/huggingface-cerebras-qwen3-thinking.js +0 -57
- package/build/api-types/huggingface-cerebras-qwen3-thinking.js.map +0 -1
- package/build/api-types/qwen.d.ts +0 -13
- package/build/api-types/qwen.js +0 -18
- package/build/api-types/qwen.js.map +0 -1
- package/build/assets.d.ts +0 -7
- package/build/assets.js +0 -8
- package/build/assets.js.map +0 -1
- package/build/safe-engine.d.ts +0 -6
- package/build/safe-engine.js +0 -16
- package/build/safe-engine.js.map +0 -1
- package/build/validate.d.ts +0 -34
- package/build/validate.js +0 -56
- package/build/validate.js.map +0 -1
package/build/adaptor.d.ts
CHANGED
package/build/adaptor.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Config } from '#config';
|
|
2
2
|
import { Function } from "./function.js";
|
|
3
|
-
import {
|
|
3
|
+
import {} from "./engine.js";
|
|
4
4
|
import assert from 'node:assert';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
5
|
+
import { OpenAIChatCompletionsEngine } from "./api-types/openai-chatcompletions.js";
|
|
6
|
+
import { GoogleRestfulEngine } from "./api-types/google-rest.js";
|
|
7
|
+
import { OpenRouterMonolithEngine } from "./api-types/openrouter-monolith.js";
|
|
8
|
+
import { OpenRouterStreamEngine } from "./api-types/openrouter-stream.js";
|
|
9
|
+
import { AliyunStreamEngine } from "./api-types/aliyun-stream.js";
|
|
10
|
+
import { OpenAIResponsesEngine } from "./api-types/openai-responses.js";
|
|
11
11
|
import { Throttle } from "./throttle.js";
|
|
12
12
|
export class Adaptor {
|
|
13
13
|
config;
|
|
@@ -23,11 +23,10 @@ export class Adaptor {
|
|
|
23
23
|
const baseUrl = this.config.brainswitch.endpoints[endpointId].baseUrl;
|
|
24
24
|
const model = this.config.brainswitch.endpoints[endpointId].model;
|
|
25
25
|
const rpm = this.config.brainswitch.endpoints[endpointId].rpm ?? Number.POSITIVE_INFINITY;
|
|
26
|
-
const tpm = this.config.brainswitch.endpoints[endpointId].tpm ?? Number.POSITIVE_INFINITY;
|
|
27
26
|
if (!this.throttles.has(baseUrl))
|
|
28
27
|
this.throttles.set(baseUrl, new Map());
|
|
29
28
|
if (!this.throttles.get(baseUrl).has(model))
|
|
30
|
-
this.throttles.get(baseUrl).set(model, new Throttle(rpm
|
|
29
|
+
this.throttles.get(baseUrl).set(model, new Throttle(rpm));
|
|
31
30
|
return this.throttles.get(baseUrl).get(model);
|
|
32
31
|
}
|
|
33
32
|
makeEngine(endpoint, functionDeclarationMap, functionCallMode) {
|
|
@@ -41,17 +40,17 @@ export class Adaptor {
|
|
|
41
40
|
throttle,
|
|
42
41
|
};
|
|
43
42
|
if (endpointSpec.apiType === 'openai-responses')
|
|
44
|
-
return
|
|
43
|
+
return OpenAIResponsesEngine.create(options);
|
|
45
44
|
else if (endpointSpec.apiType === 'openai-chatcompletions')
|
|
46
|
-
return
|
|
45
|
+
return OpenAIChatCompletionsEngine.create(options);
|
|
47
46
|
else if (endpointSpec.apiType === 'google')
|
|
48
|
-
return
|
|
49
|
-
else if (endpointSpec.apiType === '
|
|
50
|
-
return
|
|
47
|
+
return GoogleRestfulEngine.create(options);
|
|
48
|
+
else if (endpointSpec.apiType === 'aliyun-stream')
|
|
49
|
+
return AliyunStreamEngine.create(options);
|
|
51
50
|
else if (endpointSpec.apiType === 'openrouter-monolith')
|
|
52
|
-
return
|
|
51
|
+
return OpenRouterMonolithEngine.create(options);
|
|
53
52
|
else if (endpointSpec.apiType === 'openrouter-stream')
|
|
54
|
-
return
|
|
53
|
+
return OpenRouterStreamEngine.create(options);
|
|
55
54
|
else
|
|
56
55
|
throw new Error();
|
|
57
56
|
}
|
package/build/adaptor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":"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"}
|
package/build/agentloop.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type InferenceContext } from './inference-context.ts';
|
|
2
2
|
import { type Session } from './session.ts';
|
|
3
3
|
import { Function } from './function.ts';
|
|
4
|
-
import { Engine } from './engine.ts';
|
|
4
|
+
import { type Engine } from './engine.ts';
|
|
5
5
|
/**
|
|
6
6
|
* @param session mutable
|
|
7
7
|
*/
|
|
8
|
-
export declare function agentloop<fdm extends Function.Declaration.Map
|
|
8
|
+
export declare function agentloop<fdm extends Function.Declaration.Map, session extends unknown = Session<Function.Declaration.From<fdm>>>(ctx: InferenceContext, session: session, engine: Engine<Function.Declaration.From<fdm>, session>, functionMap: Function.Map<fdm>, limit?: number): AsyncGenerator<string, string, void>;
|
|
9
9
|
export declare namespace agentloop {
|
|
10
10
|
class FunctionCallLimitExceeded extends Error {
|
|
11
11
|
}
|
package/build/agentloop.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {} from "./inference-context.js";
|
|
2
2
|
import { RoleMessage } from "./session.js";
|
|
3
3
|
import { Function } from "./function.js";
|
|
4
|
-
import {
|
|
4
|
+
import {} from "./engine.js";
|
|
5
5
|
import assert from 'node:assert';
|
|
6
6
|
/**
|
|
7
7
|
* @param session mutable
|
|
8
8
|
*/
|
|
9
9
|
export async function* agentloop(ctx, session, engine, functionMap, limit = Number.POSITIVE_INFINITY) {
|
|
10
10
|
for (let i = 0; i < limit; i++) {
|
|
11
|
-
const response = await
|
|
11
|
+
const response = await engine.stateful(ctx, session);
|
|
12
12
|
const fcs = response.getFunctionCalls();
|
|
13
13
|
if (!fcs.length)
|
|
14
14
|
return response.getOnlyText();
|
|
@@ -33,7 +33,7 @@ export async function* agentloop(ctx, session, engine, functionMap, limit = Numb
|
|
|
33
33
|
throw new Error();
|
|
34
34
|
}
|
|
35
35
|
const frs = await Promise.all(pfrs);
|
|
36
|
-
|
|
36
|
+
engine.appendUserMessage(session, RoleMessage.User.create(frs));
|
|
37
37
|
}
|
|
38
38
|
throw new agentloop.FunctionCallLimitExceeded('Function call limit exceeded.');
|
|
39
39
|
}
|
package/build/agentloop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentloop.js","sourceRoot":"","sources":["../src/agentloop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"agentloop.js","sourceRoot":"","sources":["../src/agentloop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAe,MAAM,aAAa,CAAC;AAC1C,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC;;GAEG;AACH,MAAM,CAAC,KAAK,SAAU,CAAC,CAAA,SAAS,CAC5B,GAAqB,EACrB,OAAgB,EAChB,MAAuD,EACvD,WAA8B,EAC9B,KAAK,GAAG,MAAM,CAAC,iBAAiB;IAGhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAmD,EAAE,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpD,MAAM,IAAI,CAAC,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,EAAE,GAAG,IAAuC,CAAC;gBACnD,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,CAAC,CAAC,CAAC,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE;oBAClB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAM;wBACjC,EAAE,EAAE,EAAE,CAAC,EAAE;wBACT,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;qBACgB,CAAC,CAAC;gBAChD,CAAC,CAAC,EAAE,CAAC,CAAC;YACV,CAAC;;gBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC7B,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAM,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,+BAA+B,CAAC,CAAC;AACnF,CAAC;AAED,WAAiB,SAAS;IACtB,MAAa,yBAA0B,SAAQ,KAAK;KAAG;IAA1C,mCAAyB,4BAAiB,CAAA;AAC3D,CAAC,EAFgB,SAAS,KAAT,SAAS,QAEzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type OpenAI from 'openai';
|
|
2
|
+
import { type Engine } from '../engine.ts';
|
|
3
|
+
import { Function } from '../function.ts';
|
|
4
|
+
import { OpenAIChatCompletionsStreamEngineBase } from './openai-chatcompletions-stream-base.ts';
|
|
5
|
+
import { type InferenceContext } from '../inference-context.ts';
|
|
6
|
+
import { type Session, type RoleMessage } from '../session.ts';
|
|
7
|
+
export declare namespace AliyunStreamEngine {
|
|
8
|
+
interface ChatCompletionChunkChoiceDelta extends OpenAI.ChatCompletionChunk.Choice.Delta {
|
|
9
|
+
reasoning_content?: string;
|
|
10
|
+
}
|
|
11
|
+
function create<fdm extends Function.Declaration.Map = never>(options: Engine.Options<fdm>): Engine<Function.Declaration.From<fdm>>;
|
|
12
|
+
class Constructor<in out fdm extends Function.Declaration.Map = {}> extends OpenAIChatCompletionsStreamEngineBase<fdm> {
|
|
13
|
+
stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.AI<Function.Declaration.From<fdm>>>;
|
|
14
|
+
protected getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {} from "../engine.js";
|
|
2
|
+
import { Function } from "../function.js";
|
|
3
|
+
import { OpenAIChatCompletionsStreamEngineBase } from "./openai-chatcompletions-stream-base.js";
|
|
4
|
+
import {} from "../inference-context.js";
|
|
5
|
+
import {} from "../session.js";
|
|
6
|
+
export var AliyunStreamEngine;
|
|
7
|
+
(function (AliyunStreamEngine) {
|
|
8
|
+
function create(options) {
|
|
9
|
+
return new Constructor(options);
|
|
10
|
+
}
|
|
11
|
+
AliyunStreamEngine.create = create;
|
|
12
|
+
class Constructor extends OpenAIChatCompletionsStreamEngineBase {
|
|
13
|
+
stateless(ctx, session) {
|
|
14
|
+
return this.stream(ctx, session);
|
|
15
|
+
}
|
|
16
|
+
getDeltaThoughts(delta) {
|
|
17
|
+
return delta.reasoning_content ?? '';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
AliyunStreamEngine.Constructor = Constructor;
|
|
21
|
+
})(AliyunStreamEngine || (AliyunStreamEngine = {}));
|
|
22
|
+
//# sourceMappingURL=aliyun-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aliyun-stream.js","sourceRoot":"","sources":["../../src/api-types/aliyun-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAkC,MAAM,eAAe,CAAC;AAI/D,MAAM,KAAW,kBAAkB,CAiBlC;AAjBD,WAAiB,kBAAkB;IAKlC,SAAgB,MAAM,CAA+C,OAA4B;QAChG,OAAO,IAAI,WAAW,CAAM,OAAO,CAAC,CAAC;IACtC,CAAC;IAFe,yBAAM,SAErB,CAAA;IAED,MAAa,WAA8D,SAAQ,qCAA0C;QAC5G,SAAS,CAAC,GAAqB,EAAE,OAAgD;YAChG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QACkB,gBAAgB,CAAC,KAA8C;YACjF,OAAQ,KAA2D,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC7F,CAAC;KACD;IAPY,8BAAW,cAOvB,CAAA;AACF,CAAC,EAjBgB,kBAAkB,KAAlB,kBAAkB,QAiBlC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Function } from '../function.ts';
|
|
2
|
-
import { Engine } from '../engine.ts';
|
|
2
|
+
import { type Engine } from '../engine.ts';
|
|
3
3
|
import { Throttle } from '../throttle.ts';
|
|
4
4
|
import { ProxyAgent } from 'undici';
|
|
5
|
-
|
|
5
|
+
import { type InferenceContext } from '../inference-context.ts';
|
|
6
|
+
import { type Session, type RoleMessage } from '../session.ts';
|
|
7
|
+
export declare abstract class EngineBase<in out fdm extends Function.Declaration.Map = {}> implements Engine<Function.Declaration.From<fdm>> {
|
|
6
8
|
protected baseUrl: string;
|
|
7
9
|
protected apiKey: string;
|
|
8
10
|
protected model: string;
|
|
@@ -16,6 +18,9 @@ export declare abstract class APIBase<in out fdm extends Function.Declaration.Ma
|
|
|
16
18
|
protected timeout?: number;
|
|
17
19
|
protected tokenLimit?: number;
|
|
18
20
|
protected proxyAgent?: ProxyAgent;
|
|
21
|
+
abstract stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.AI<Function.Declaration.From<fdm>>>;
|
|
22
|
+
stateful(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.AI<Function.Declaration.From<fdm>>>;
|
|
23
|
+
appendUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
|
|
19
24
|
constructor(options: Engine.Options<fdm>);
|
|
20
25
|
}
|
|
21
26
|
export declare class TransientError extends Error {
|
package/build/api-types/base.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Function } from "../function.js";
|
|
2
|
-
import {
|
|
2
|
+
import {} from "../engine.js";
|
|
3
3
|
import { Throttle } from "../throttle.js";
|
|
4
4
|
import { ProxyAgent } from 'undici';
|
|
5
|
-
|
|
5
|
+
import {} from "../inference-context.js";
|
|
6
|
+
import {} from "../session.js";
|
|
7
|
+
export class EngineBase {
|
|
6
8
|
baseUrl;
|
|
7
9
|
apiKey;
|
|
8
10
|
model;
|
|
@@ -16,6 +18,17 @@ export class APIBase {
|
|
|
16
18
|
timeout;
|
|
17
19
|
tokenLimit;
|
|
18
20
|
proxyAgent;
|
|
21
|
+
async stateful(ctx, session) {
|
|
22
|
+
const response = await this.stateless(ctx, session);
|
|
23
|
+
session.chatMessages.push(response);
|
|
24
|
+
return response;
|
|
25
|
+
}
|
|
26
|
+
appendUserMessage(session, message) {
|
|
27
|
+
return {
|
|
28
|
+
...session,
|
|
29
|
+
chatMessages: [...session.chatMessages, message],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
19
32
|
constructor(options) {
|
|
20
33
|
this.baseUrl = options.baseUrl;
|
|
21
34
|
this.apiKey = options.apiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api-types/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/api-types/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAkC,MAAM,eAAe,CAAC;AAE/D,MAAM,OAAgB,UAAU;IAGrB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,sBAAsB,CAAM;IAC5B,UAAU,CAA2B;IACrC,aAAa,CAA2B;IACxC,QAAQ,CAAW;IACnB,OAAO,CAAU;IACjB,UAAU,CAAU;IAEpB,UAAU,CAAc;IAG3B,KAAK,CAAC,QAAQ,CAAC,GAAqB,EAAE,OAAgD;QAC5F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IACvB,CAAC;IACM,iBAAiB,CAAC,OAAgD,EAAE,OAAyD;QACnI,OAAO;YACN,GAAG,OAAO;YACV,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;SAChD,CAAC;IACH,CAAC;IAED,YAAmB,OAA4B;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;QAC1D,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM;YAClD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,gBAAgB,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;;YACnE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;CACD;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Engine } from '../engine.ts';
|
|
1
|
+
import { type Engine } from '../engine.ts';
|
|
2
2
|
import { RoleMessage, type ChatMessage } from '../session.ts';
|
|
3
3
|
import { Function } from '../function.ts';
|
|
4
4
|
import * as Google from '@google/genai';
|
|
5
|
-
import {
|
|
6
|
-
export declare abstract class
|
|
5
|
+
import { EngineBase } from './base.ts';
|
|
6
|
+
export declare abstract class GoogleEngineBase<in out fdm extends Function.Declaration.Map = {}> extends EngineBase<fdm> {
|
|
7
7
|
protected constructor(options: Engine.Options<fdm>);
|
|
8
8
|
protected convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): Google.FunctionCall;
|
|
9
9
|
protected convertToFunctionCall(googlefc: Google.FunctionCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from "../engine.js";
|
|
2
2
|
import { RoleMessage } from "../session.js";
|
|
3
3
|
import { Function } from "../function.js";
|
|
4
4
|
import * as Google from '@google/genai';
|
|
5
5
|
import assert from 'node:assert';
|
|
6
|
-
import {
|
|
6
|
+
import { EngineBase, TransientError } from "./base.js";
|
|
7
7
|
import Ajv from 'ajv';
|
|
8
8
|
const ajv = new Ajv();
|
|
9
|
-
export class
|
|
9
|
+
export class GoogleEngineBase extends EngineBase {
|
|
10
10
|
constructor(options) {
|
|
11
11
|
super(options);
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-base.js","sourceRoot":"","sources":["../../src/api-types/google-base.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"google-base.js","sourceRoot":"","sources":["../../src/api-types/google-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Engine } from '../engine.ts';
|
|
1
|
+
import { type Engine } from '../engine.ts';
|
|
2
2
|
import { type Session } from '../session.ts';
|
|
3
3
|
import { Function } from '../function.ts';
|
|
4
4
|
import * as Google from '@google/genai';
|
|
5
|
-
import { GoogleAIMessage,
|
|
5
|
+
import { GoogleAIMessage, GoogleEngineBase } from './google-base.ts';
|
|
6
6
|
import { type InferenceContext } from '../inference-context.ts';
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
class Constructor<in out fdm extends Function.Declaration.Map = {}> extends
|
|
7
|
+
export declare namespace GoogleRestfulEngine {
|
|
8
|
+
interface Request {
|
|
9
|
+
contents: Google.Content[];
|
|
10
|
+
tools?: Google.Tool[];
|
|
11
|
+
toolConfig?: Google.ToolConfig;
|
|
12
|
+
systemInstruction?: Google.Content;
|
|
13
|
+
generationConfig?: Google.GenerationConfig;
|
|
14
|
+
}
|
|
15
|
+
function create<fdm extends Function.Declaration.Map = {}>(options: Engine.Options<fdm>): Engine<Function.Declaration.From<fdm>>;
|
|
16
|
+
class Constructor<in out fdm extends Function.Declaration.Map = {}> extends GoogleEngineBase<fdm> {
|
|
17
17
|
private apiURL;
|
|
18
|
-
private tokenizerURL;
|
|
19
18
|
constructor(options: Engine.Options<fdm>);
|
|
20
|
-
|
|
19
|
+
stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<GoogleAIMessage<Function.Declaration.From<fdm>>>;
|
|
20
|
+
stateful(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<GoogleAIMessage<Function.Declaration.From<fdm>>>;
|
|
21
21
|
monolith(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<GoogleAIMessage<Function.Declaration.From<fdm>>>;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -1,50 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from "../engine.js";
|
|
2
2
|
import {} from "../session.js";
|
|
3
3
|
import { Function } from "../function.js";
|
|
4
4
|
import * as Google from '@google/genai';
|
|
5
5
|
import assert from 'node:assert';
|
|
6
|
-
import { GoogleAIMessage,
|
|
7
|
-
import {
|
|
6
|
+
import { GoogleAIMessage, GoogleEngineBase } from "./google-base.js";
|
|
7
|
+
import { fetch } from 'undici';
|
|
8
8
|
import {} from "../inference-context.js";
|
|
9
9
|
import { TransientError } from "./base.js";
|
|
10
|
-
export var
|
|
11
|
-
(function (
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
return api.monolith.bind(api);
|
|
10
|
+
export var GoogleRestfulEngine;
|
|
11
|
+
(function (GoogleRestfulEngine) {
|
|
12
|
+
function create(options) {
|
|
13
|
+
return new Constructor(options);
|
|
15
14
|
}
|
|
16
|
-
|
|
17
|
-
class Constructor extends
|
|
15
|
+
GoogleRestfulEngine.create = create;
|
|
16
|
+
class Constructor extends GoogleEngineBase {
|
|
18
17
|
apiURL;
|
|
19
|
-
tokenizerURL;
|
|
20
18
|
constructor(options) {
|
|
21
19
|
super(options);
|
|
22
20
|
this.apiURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:generateContent`);
|
|
23
|
-
this.tokenizerURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:countTokens`);
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
'Content-Type': 'application/json',
|
|
31
|
-
'x-goog-api-key': this.apiKey,
|
|
32
|
-
}),
|
|
33
|
-
body: JSON.stringify(reqbody),
|
|
34
|
-
dispatcher: this.proxyAgent,
|
|
35
|
-
signal: ctx.signal,
|
|
36
|
-
}).catch(e => Promise.reject(new TransientError(undefined, { cause: e })));
|
|
37
|
-
assert(res.ok, new Error(undefined, { cause: res }));
|
|
38
|
-
const response = await res.json();
|
|
39
|
-
assert(response.totalTokens, new Error(undefined, { cause: response }));
|
|
40
|
-
return response.totalTokens;
|
|
22
|
+
stateless(ctx, session) {
|
|
23
|
+
return this.monolith(ctx, session);
|
|
24
|
+
}
|
|
25
|
+
stateful(ctx, session) {
|
|
26
|
+
return this.monolith(ctx, session);
|
|
41
27
|
}
|
|
42
28
|
async monolith(ctx, session, retry = 0) {
|
|
29
|
+
const signalTimeout = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
|
|
30
|
+
const signal = ctx.signal && signalTimeout ? AbortSignal.any([
|
|
31
|
+
ctx.signal,
|
|
32
|
+
signalTimeout,
|
|
33
|
+
]) : ctx.signal || signalTimeout;
|
|
43
34
|
try {
|
|
44
35
|
const systemInstruction = session.developerMessage && this.convertFromDeveloperMessage(session.developerMessage);
|
|
45
36
|
const contents = this.convertFromChatMessages(session.chatMessages);
|
|
46
37
|
await this.throttle.requests(ctx);
|
|
47
|
-
await this.throttle.inputTokens(await this.tokenize(contents, ctx), ctx);
|
|
48
38
|
const reqbody = {
|
|
49
39
|
contents,
|
|
50
40
|
tools: Object.keys(this.functionDeclarationMap).length ? [{
|
|
@@ -60,10 +50,6 @@ export var GoogleRESTfulAPI;
|
|
|
60
50
|
} : undefined,
|
|
61
51
|
};
|
|
62
52
|
ctx.logger.message?.trace(reqbody);
|
|
63
|
-
const signal = this.timeout && ctx.signal ? AbortSignal.any([
|
|
64
|
-
ctx.signal,
|
|
65
|
-
AbortSignal.timeout(this.timeout),
|
|
66
|
-
]) : this.timeout ? AbortSignal.timeout(this.timeout) : ctx.signal;
|
|
67
53
|
const res = await fetch(this.apiURL, {
|
|
68
54
|
method: 'POST',
|
|
69
55
|
headers: new Headers({
|
|
@@ -73,22 +59,18 @@ export var GoogleRESTfulAPI;
|
|
|
73
59
|
body: JSON.stringify(reqbody),
|
|
74
60
|
dispatcher: this.proxyAgent,
|
|
75
61
|
signal,
|
|
76
|
-
}).catch(e => {
|
|
77
|
-
if (e instanceof TypeError)
|
|
78
|
-
throw new TransientError('Connection error', { cause: e });
|
|
79
|
-
else
|
|
80
|
-
throw e;
|
|
81
|
-
});
|
|
82
|
-
;
|
|
62
|
+
}).catch(e => Promise.reject(new TransientError(undefined, { cause: e })));
|
|
83
63
|
ctx.logger.message?.trace(res);
|
|
84
64
|
assert(res.ok, new Error(undefined, { cause: res }));
|
|
85
65
|
const response = await res.json();
|
|
86
|
-
assert(response.candidates?.[0]?.content?.parts, new TransientError('No content parts', { cause: response }));
|
|
66
|
+
assert(response.candidates?.[0]?.content?.parts?.length, new TransientError('No content parts', { cause: response }));
|
|
87
67
|
assert(response.candidates[0].finishReason === Google.FinishReason.STOP, new TransientError('Abnormal finish reason', { cause: response }));
|
|
88
68
|
const text = response.candidates[0].content.parts.filter(part => part.text).map(part => part.text).join('');
|
|
89
69
|
if (text)
|
|
90
70
|
ctx.logger.inference?.debug(text + '\n');
|
|
91
|
-
const apiFunctionCalls = response.candidates[0].content.parts
|
|
71
|
+
const apiFunctionCalls = response.candidates[0].content.parts
|
|
72
|
+
.filter(part => part.functionCall)
|
|
73
|
+
.map(part => part.functionCall);
|
|
92
74
|
if (apiFunctionCalls.length)
|
|
93
75
|
ctx.logger.message?.debug(apiFunctionCalls);
|
|
94
76
|
ctx.logger.message?.debug(response.usageMetadata);
|
|
@@ -97,8 +79,6 @@ export var GoogleRESTfulAPI;
|
|
|
97
79
|
const cacheHitTokenCount = response.usageMetadata.cachedContentTokenCount ?? 0;
|
|
98
80
|
const cacheMissTokenCount = response.usageMetadata.promptTokenCount - cacheHitTokenCount;
|
|
99
81
|
const thinkingTokenCount = response.usageMetadata.thoughtsTokenCount ?? 0;
|
|
100
|
-
this.throttle.outputTokens(candidatesTokenCount);
|
|
101
|
-
this.throttle.outputTokens(thinkingTokenCount);
|
|
102
82
|
const cost = this.inputPrice * cacheMissTokenCount / 1e6 +
|
|
103
83
|
this.cachedPrice * cacheHitTokenCount / 1e6 +
|
|
104
84
|
this.outputPrice * candidatesTokenCount / 1e6 +
|
|
@@ -110,8 +90,10 @@ export var GoogleRESTfulAPI;
|
|
|
110
90
|
}
|
|
111
91
|
catch (e) {
|
|
112
92
|
if (ctx.signal?.aborted)
|
|
113
|
-
throw
|
|
93
|
+
throw e;
|
|
94
|
+
else if (signalTimeout?.aborted) { } // 推理超时
|
|
114
95
|
else if (e instanceof TransientError) { } // 模型抽风
|
|
96
|
+
else if (e instanceof TypeError) { } // 网络故障
|
|
115
97
|
else
|
|
116
98
|
throw e;
|
|
117
99
|
ctx.logger.message?.warn(e);
|
|
@@ -122,6 +104,6 @@ export var GoogleRESTfulAPI;
|
|
|
122
104
|
}
|
|
123
105
|
}
|
|
124
106
|
}
|
|
125
|
-
|
|
126
|
-
})(
|
|
107
|
+
GoogleRestfulEngine.Constructor = Constructor;
|
|
108
|
+
})(GoogleRestfulEngine || (GoogleRestfulEngine = {}));
|
|
127
109
|
//# sourceMappingURL=google-rest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-rest.js","sourceRoot":"","sources":["../../src/api-types/google-rest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"google-rest.js","sourceRoot":"","sources":["../../src/api-types/google-rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Engine } from '../engine.ts';
|
|
1
|
+
import { type Engine } from '../engine.ts';
|
|
2
2
|
import { RoleMessage } from '../session.ts';
|
|
3
3
|
import { Function } from '../function.ts';
|
|
4
4
|
import OpenAI from 'openai';
|
|
5
|
-
import {
|
|
6
|
-
export declare abstract class
|
|
5
|
+
import { EngineBase } from './base.ts';
|
|
6
|
+
export declare abstract class OpenAIChatCompletionsEngineBase<in out fdm extends Function.Declaration.Map = {}> extends EngineBase<fdm> {
|
|
7
7
|
constructor(options: Engine.Options<fdm>);
|
|
8
8
|
protected convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionMessageToolCall;
|
|
9
9
|
protected convertToFunctionCall(apifc: OpenAI.ChatCompletionMessageFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
@@ -15,7 +15,6 @@ export declare abstract class OpenAIChatCompletionsAPIBase<in out fdm extends Fu
|
|
|
15
15
|
protected convertFromFunctionDeclarationEntry(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.ChatCompletionTool;
|
|
16
16
|
protected convertFromFunctionCallMode(mode: Function.ToolChoice<fdm>): OpenAI.ChatCompletionToolChoiceOption;
|
|
17
17
|
protected validateFunctionCallByToolChoice(fcs: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
|
|
18
|
-
protected tokenize(params: OpenAI.ChatCompletionCreateParams): number;
|
|
19
18
|
protected calcCost(usage: OpenAI.CompletionUsage): number;
|
|
20
19
|
protected extractContent(completionContent: string): string;
|
|
21
20
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {} from "../engine.js";
|
|
2
2
|
import { RoleMessage } from "../session.js";
|
|
3
3
|
import { Function } from "../function.js";
|
|
4
4
|
import OpenAI from 'openai';
|
|
5
5
|
import assert from 'node:assert';
|
|
6
|
-
import {
|
|
7
|
-
import { ProxyAgent } from 'undici';
|
|
6
|
+
import { EngineBase, TransientError } from "./base.js";
|
|
8
7
|
import { Ajv } from 'ajv';
|
|
9
8
|
const ajv = new Ajv();
|
|
10
|
-
export class
|
|
9
|
+
export class OpenAIChatCompletionsEngineBase extends EngineBase {
|
|
11
10
|
constructor(options) {
|
|
12
11
|
super(options);
|
|
13
12
|
}
|
|
@@ -116,9 +115,6 @@ export class OpenAIChatCompletionsAPIBase extends APIBase {
|
|
|
116
115
|
else if (this.toolChoice === Function.ToolChoice.NONE)
|
|
117
116
|
assert(!fcs.length, new TransientError());
|
|
118
117
|
}
|
|
119
|
-
tokenize(params) {
|
|
120
|
-
return JSON.stringify(params).length;
|
|
121
|
-
}
|
|
122
118
|
calcCost(usage) {
|
|
123
119
|
const cacheHitTokenCount = usage.prompt_tokens_details?.cached_tokens ?? 0;
|
|
124
120
|
const cacheMissTokenCount = usage.prompt_tokens - cacheHitTokenCount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chatcompletions-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-base.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"openai-chatcompletions-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RoleMessage, type Session } from '../session.ts';
|
|
2
2
|
import { Function } from '../function.ts';
|
|
3
3
|
import OpenAI from 'openai';
|
|
4
|
-
import {
|
|
4
|
+
import { OpenAIChatCompletionsEngineBase } from './openai-chatcompletions-base.ts';
|
|
5
5
|
import { type InferenceContext } from '../inference-context.ts';
|
|
6
|
-
import { Engine } from '../engine.ts';
|
|
7
|
-
export declare abstract class
|
|
6
|
+
import { type Engine } from '../engine.ts';
|
|
7
|
+
export declare abstract class OpenAIChatCompletionsMonolithEngineBase<in out fdm extends Function.Declaration.Map = {}> extends OpenAIChatCompletionsEngineBase<fdm> {
|
|
8
8
|
private apiURL;
|
|
9
9
|
constructor(options: Engine.Options<fdm>);
|
|
10
10
|
protected convertToAIMessage(message: OpenAI.ChatCompletionMessage): RoleMessage.AI<Function.Declaration.From<fdm>>;
|