@zimtsui/brainswitch 0.0.5 → 0.0.7
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 +13 -14
- package/build/api-types/google-rest.js +21 -38
- 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 -6
- 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 +8 -9
- 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 +18 -20
- 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,22 @@
|
|
|
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>>>;
|
|
21
20
|
monolith(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<GoogleAIMessage<Function.Declaration.From<fdm>>>;
|
|
22
21
|
}
|
|
23
22
|
}
|
|
@@ -1,50 +1,37 @@
|
|
|
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
|
-
const res = await fetch(this.tokenizerURL, {
|
|
28
|
-
method: 'POST',
|
|
29
|
-
headers: new Headers({
|
|
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);
|
|
41
24
|
}
|
|
42
25
|
async monolith(ctx, session, retry = 0) {
|
|
26
|
+
const signalTimeout = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
|
|
27
|
+
const signal = ctx.signal && signalTimeout ? AbortSignal.any([
|
|
28
|
+
ctx.signal,
|
|
29
|
+
signalTimeout,
|
|
30
|
+
]) : ctx.signal || signalTimeout;
|
|
43
31
|
try {
|
|
44
32
|
const systemInstruction = session.developerMessage && this.convertFromDeveloperMessage(session.developerMessage);
|
|
45
33
|
const contents = this.convertFromChatMessages(session.chatMessages);
|
|
46
34
|
await this.throttle.requests(ctx);
|
|
47
|
-
await this.throttle.inputTokens(await this.tokenize(contents, ctx), ctx);
|
|
48
35
|
const reqbody = {
|
|
49
36
|
contents,
|
|
50
37
|
tools: Object.keys(this.functionDeclarationMap).length ? [{
|
|
@@ -60,10 +47,6 @@ export var GoogleRESTfulAPI;
|
|
|
60
47
|
} : undefined,
|
|
61
48
|
};
|
|
62
49
|
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
50
|
const res = await fetch(this.apiURL, {
|
|
68
51
|
method: 'POST',
|
|
69
52
|
headers: new Headers({
|
|
@@ -93,8 +76,6 @@ export var GoogleRESTfulAPI;
|
|
|
93
76
|
const cacheHitTokenCount = response.usageMetadata.cachedContentTokenCount ?? 0;
|
|
94
77
|
const cacheMissTokenCount = response.usageMetadata.promptTokenCount - cacheHitTokenCount;
|
|
95
78
|
const thinkingTokenCount = response.usageMetadata.thoughtsTokenCount ?? 0;
|
|
96
|
-
this.throttle.outputTokens(candidatesTokenCount);
|
|
97
|
-
this.throttle.outputTokens(thinkingTokenCount);
|
|
98
79
|
const cost = this.inputPrice * cacheMissTokenCount / 1e6 +
|
|
99
80
|
this.cachedPrice * cacheHitTokenCount / 1e6 +
|
|
100
81
|
this.outputPrice * candidatesTokenCount / 1e6 +
|
|
@@ -106,8 +87,10 @@ export var GoogleRESTfulAPI;
|
|
|
106
87
|
}
|
|
107
88
|
catch (e) {
|
|
108
89
|
if (ctx.signal?.aborted)
|
|
109
|
-
throw
|
|
90
|
+
throw e;
|
|
91
|
+
else if (signalTimeout?.aborted) { } // 推理超时
|
|
110
92
|
else if (e instanceof TransientError) { } // 模型抽风
|
|
93
|
+
else if (e instanceof TypeError) { } // 网络故障
|
|
111
94
|
else
|
|
112
95
|
throw e;
|
|
113
96
|
ctx.logger.message?.warn(e);
|
|
@@ -118,6 +101,6 @@ export var GoogleRESTfulAPI;
|
|
|
118
101
|
}
|
|
119
102
|
}
|
|
120
103
|
}
|
|
121
|
-
|
|
122
|
-
})(
|
|
104
|
+
GoogleRestfulEngine.Constructor = Constructor;
|
|
105
|
+
})(GoogleRestfulEngine || (GoogleRestfulEngine = {}));
|
|
123
106
|
//# 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":"AAAA,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAgB,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,KAAW,mBAAmB,CAqHnC;AArHD,WAAiB,mBAAmB;IASnC,SAAgB,MAAM,CAA4C,OAA4B;QAC7F,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAFe,0BAAM,SAErB,CAAA;IAED,MAAa,WAA8D,SAAQ,gBAAqB;QAC/F,MAAM,CAAM;QAEpB,YAAmB,OAA4B;YAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;YAEf,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,kBAAkB,IAAI,CAAC,KAAK,kBAAkB,CAAC,CAAC;QACtF,CAAC;QAEe,SAAS,CAAC,GAAqB,EAAE,OAAgD;YAChG,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAEM,KAAK,CAAC,QAAQ,CACpB,GAAqB,EAAE,OAAgD,EAAE,KAAK,GAAG,CAAC;YAElF,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;gBAC5D,GAAG,CAAC,MAAM;gBACV,aAAa;aACb,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC;YAEjC,IAAI,CAAC;gBACJ,MAAM,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBACjH,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEpE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAElC,MAAM,OAAO,GAAgC;oBAC5C,QAAQ;oBACR,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BACzD,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,CACpE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,OAA+C,CAAC,CACpG;yBACD,CAAC,CAAC,CAAC,CAAC,SAAS;oBACd,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;wBAChF,qBAAqB,EAAE,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC;qBACxE,CAAC,CAAC,CAAC,SAAS;oBACb,iBAAiB;oBACjB,gBAAgB,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;wBACzD,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAC,CAAC,CAAC,CAAC,CAAC,SAAS;wBAChE,GAAG,IAAI,CAAC,aAAa;qBACrB,CAAC,CAAC,CAAC,SAAS;iBACb,CAAC;gBAEF,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAEnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;oBACpC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,IAAI,OAAO,CAAC;wBACpB,cAAc,EAAE,kBAAkB;wBAClC,gBAAgB,EAAE,IAAI,CAAC,MAAM;qBAC7B,CAAC;oBACF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,MAAM;iBACN,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAAoC,CAAC;gBAEpE,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,cAAc,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACtH,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,cAAc,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAG5I,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5G,IAAI,IAAI;oBAAE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,GAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;qBAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;qBACjC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,IAAI,gBAAgB,CAAC,MAAM;oBAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACzE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAGlD,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,EAAE,IAAI,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAC9G,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,IAAI,CAAC,CAAC;gBAC9E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,uBAAuB,IAAI,CAAC,CAAC;gBAC/E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;gBACzF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,IAAI,CAAC,CAAC;gBAC1E,MAAM,IAAI,GACT,IAAI,CAAC,UAAU,GAAG,mBAAmB,GAAG,GAAG;oBAC3C,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,GAAG;oBAC3C,IAAI,CAAC,WAAW,GAAG,oBAAoB,GAAG,GAAG;oBAC7C,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,GAAG,CAAC;gBAC7C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;gBAGxB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1E,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;gBAEjD,OAAO,SAAS,CAAC;YAElB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM,CAAC,CAAC;qBAC5B,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC,CAAA,CAAC,CAAG,OAAO;qBACxC,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC,CAAA,CAAC,CAAC,OAAO;qBAC3C,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC,CAAA,CAAC,CAAG,OAAO;;oBACxC,MAAM,CAAC,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC;;oBACtD,MAAM,CAAC,CAAC;YACd,CAAC;QACF,CAAC;KACD;IAvGY,+BAAW,cAuGvB,CAAA;AACF,CAAC,EArHgB,mBAAmB,KAAnB,mBAAmB,QAqHnC"}
|
|
@@ -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,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 OpenAI from 'openai';
|
|
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 OpenAIChatCompletionsEngineBase extends EngineBase {
|
|
10
10
|
constructor(options) {
|
|
11
11
|
super(options);
|
|
12
12
|
}
|
|
@@ -115,9 +115,6 @@ export class OpenAIChatCompletionsAPIBase extends APIBase {
|
|
|
115
115
|
else if (this.toolChoice === Function.ToolChoice.NONE)
|
|
116
116
|
assert(!fcs.length, new TransientError());
|
|
117
117
|
}
|
|
118
|
-
tokenize(params) {
|
|
119
|
-
return JSON.stringify(params).length;
|
|
120
|
-
}
|
|
121
118
|
calcCost(usage) {
|
|
122
119
|
const cacheHitTokenCount = usage.prompt_tokens_details?.cached_tokens ?? 0;
|
|
123
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>>;
|