@zimtsui/brainswitch 0.0.16 → 0.0.17
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/README.md +32 -23
- package/build/adaptor.d.ts +1 -1
- package/build/adaptor.js +10 -6
- package/build/adaptor.js.map +1 -1
- package/build/api-types/{aliyun-stream.d.ts → aliyun.d.ts} +1 -4
- package/build/api-types/{aliyun-stream.js → aliyun.js} +6 -9
- package/build/api-types/aliyun.js.map +1 -0
- package/build/api-types/anthropic.d.ts +43 -0
- package/build/api-types/anthropic.js +288 -0
- package/build/api-types/anthropic.js.map +1 -0
- package/build/api-types/base.d.ts +3 -2
- package/build/api-types/base.js +8 -8
- package/build/api-types/base.js.map +1 -1
- package/build/api-types/google-base.d.ts +1 -0
- package/build/api-types/google-base.js +4 -1
- package/build/api-types/google-base.js.map +1 -1
- package/build/api-types/google-rest.d.ts +2 -3
- package/build/api-types/google-rest.js +10 -11
- package/build/api-types/google-rest.js.map +1 -1
- package/build/api-types/minimax.d.ts +34 -0
- package/build/api-types/minimax.js +49 -0
- package/build/api-types/minimax.js.map +1 -0
- package/build/api-types/openai-chatcompletions-base.d.ts +4 -1
- package/build/api-types/openai-chatcompletions-base.js +21 -2
- package/build/api-types/openai-chatcompletions-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions-monolith-base.d.ts +2 -3
- package/build/api-types/openai-chatcompletions-monolith-base.js +19 -28
- package/build/api-types/openai-chatcompletions-monolith-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions-stream-base.d.ts +4 -3
- package/build/api-types/openai-chatcompletions-stream-base.js +128 -52
- package/build/api-types/openai-chatcompletions-stream-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions.d.ts +0 -3
- package/build/api-types/openai-chatcompletions.js +0 -5
- package/build/api-types/openai-chatcompletions.js.map +1 -1
- package/build/api-types/openai-responses.d.ts +4 -3
- package/build/api-types/openai-responses.js +27 -11
- package/build/api-types/openai-responses.js.map +1 -1
- package/build/api-types/openrouter-monolith.d.ts +8 -5
- package/build/api-types/openrouter-monolith.js +12 -19
- package/build/api-types/openrouter-monolith.js.map +1 -1
- package/build/api-types/openrouter-stream.d.ts +5 -6
- package/build/api-types/openrouter-stream.js +8 -15
- package/build/api-types/openrouter-stream.js.map +1 -1
- package/build/config.d.ts +4 -4
- package/build/endpoint-spec.d.ts +4 -4
- package/build/endpoint-spec.js +5 -4
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine.d.ts +2 -1
- package/build/session.d.ts +2 -0
- package/build/session.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/build/api-types/aliyun-stream.js.map +0 -1
package/build/api-types/base.js
CHANGED
|
@@ -12,9 +12,9 @@ export class EngineBase {
|
|
|
12
12
|
inputPrice;
|
|
13
13
|
outputPrice;
|
|
14
14
|
cachedPrice;
|
|
15
|
-
|
|
15
|
+
fdm;
|
|
16
16
|
toolChoice;
|
|
17
|
-
|
|
17
|
+
additionalOptions;
|
|
18
18
|
throttle;
|
|
19
19
|
timeout;
|
|
20
20
|
tokenLimit;
|
|
@@ -41,16 +41,16 @@ export class EngineBase {
|
|
|
41
41
|
this.name = options.name;
|
|
42
42
|
this.inputPrice = options.inputPrice ?? 0;
|
|
43
43
|
this.outputPrice = options.outputPrice ?? 0;
|
|
44
|
-
this.cachedPrice = options.
|
|
45
|
-
this.
|
|
46
|
-
if (Object.keys(this.
|
|
47
|
-
this.toolChoice = options.
|
|
44
|
+
this.cachedPrice = options.cachePrice ?? this.inputPrice;
|
|
45
|
+
this.fdm = options.functionDeclarationMap;
|
|
46
|
+
if (Object.keys(this.fdm).length)
|
|
47
|
+
this.toolChoice = options.toolChoice ?? Function.ToolChoice.AUTO;
|
|
48
48
|
else
|
|
49
49
|
this.toolChoice = Function.ToolChoice.NONE;
|
|
50
|
-
this.
|
|
50
|
+
this.additionalOptions = options.additionalOptions;
|
|
51
51
|
this.throttle = options.throttle;
|
|
52
52
|
this.timeout = options.timeout;
|
|
53
|
-
this.tokenLimit = options.
|
|
53
|
+
this.tokenLimit = options.maxTokens;
|
|
54
54
|
this.proxyAgent = options.proxy ? new ProxyAgent(options.proxy) : undefined;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -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,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;IACjB,IAAI,CAAS;IACV,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,
|
|
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;IACjB,IAAI,CAAS;IACV,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,GAAG,CAAM;IACT,UAAU,CAA2B;IAErC,iBAAiB,CAA2B;IAC5C,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;IACM,eAAe,CAAC,OAAgD,EAAE,OAAyD;QACjI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IAChB,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,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,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,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QACzD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;YAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;;YAC7D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QAChD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,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,SAAS,CAAC;QACpC,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"}
|
|
@@ -4,6 +4,7 @@ import { Function } from '../function.ts';
|
|
|
4
4
|
import * as Google from '@google/genai';
|
|
5
5
|
import { EngineBase } from './base.ts';
|
|
6
6
|
export declare abstract class GoogleEngineBase<in out fdm extends Function.Declaration.Map = {}> extends EngineBase<fdm> {
|
|
7
|
+
protected parallel: boolean;
|
|
7
8
|
protected constructor(options: Engine.Options<fdm>);
|
|
8
9
|
protected convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): Google.FunctionCall;
|
|
9
10
|
protected convertToFunctionCall(googlefc: Google.FunctionCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
@@ -7,8 +7,11 @@ import { EngineBase, TransientError } from "./base.js";
|
|
|
7
7
|
import Ajv from 'ajv';
|
|
8
8
|
const ajv = new Ajv();
|
|
9
9
|
export class GoogleEngineBase extends EngineBase {
|
|
10
|
+
parallel;
|
|
10
11
|
constructor(options) {
|
|
11
12
|
super(options);
|
|
13
|
+
this.parallel = options.parallelFunctionCall ?? true;
|
|
14
|
+
assert(this.parallel, new Error('Google Engine supports only parallel function calls.'));
|
|
12
15
|
}
|
|
13
16
|
convertFromFunctionCall(fc) {
|
|
14
17
|
return {
|
|
@@ -19,7 +22,7 @@ export class GoogleEngineBase extends EngineBase {
|
|
|
19
22
|
}
|
|
20
23
|
convertToFunctionCall(googlefc) {
|
|
21
24
|
assert(googlefc.name);
|
|
22
|
-
const fditem = this.
|
|
25
|
+
const fditem = this.fdm[googlefc.name];
|
|
23
26
|
assert(fditem);
|
|
24
27
|
assert(ajv.validate(fditem.paraschema, googlefc.args), new TransientError('Invalid function call', { cause: googlefc }));
|
|
25
28
|
return Function.Call.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-base.js","sourceRoot":"","sources":["../../src/api-types/google-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAEtB,MAAM,OAAgB,gBAAmE,SAAQ,UAAe;
|
|
1
|
+
{"version":3,"file":"google-base.js","sourceRoot":"","sources":["../../src/api-types/google-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,8 @@ export declare namespace GoogleRestfulEngine {
|
|
|
14
14
|
}
|
|
15
15
|
function create<fdm extends Function.Declaration.Map = {}>(options: Engine.Options<fdm>): Engine<Function.Declaration.From<fdm>>;
|
|
16
16
|
class Constructor<in out fdm extends Function.Declaration.Map = {}> extends GoogleEngineBase<fdm> {
|
|
17
|
-
|
|
17
|
+
protected apiURL: URL;
|
|
18
18
|
constructor(options: Engine.Options<fdm>);
|
|
19
|
-
stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm
|
|
20
|
-
monolith(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<GoogleAiMessage<Function.Declaration.From<fdm>>>;
|
|
19
|
+
stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<GoogleAiMessage<Function.Declaration.From<fdm>>>;
|
|
21
20
|
}
|
|
22
21
|
}
|
|
@@ -19,10 +19,7 @@ export var GoogleRestfulEngine;
|
|
|
19
19
|
super(options);
|
|
20
20
|
this.apiURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:generateContent`);
|
|
21
21
|
}
|
|
22
|
-
stateless(ctx, session) {
|
|
23
|
-
return this.monolith(ctx, session);
|
|
24
|
-
}
|
|
25
|
-
async monolith(ctx, session, retry = 0) {
|
|
22
|
+
async stateless(ctx, session, retry = 0) {
|
|
26
23
|
const signalTimeout = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
|
|
27
24
|
const signal = ctx.signal && signalTimeout ? AbortSignal.any([
|
|
28
25
|
ctx.signal,
|
|
@@ -34,16 +31,16 @@ export var GoogleRestfulEngine;
|
|
|
34
31
|
await this.throttle.requests(ctx);
|
|
35
32
|
const reqbody = {
|
|
36
33
|
contents,
|
|
37
|
-
tools: Object.keys(this.
|
|
38
|
-
functionDeclarations: Object.entries(this.
|
|
34
|
+
tools: Object.keys(this.fdm).length ? [{
|
|
35
|
+
functionDeclarations: Object.entries(this.fdm).map(fdentry => this.convertFromFunctionDeclarationEntry(fdentry)),
|
|
39
36
|
}] : undefined,
|
|
40
|
-
toolConfig: Object.keys(this.
|
|
37
|
+
toolConfig: Object.keys(this.fdm).length && this.toolChoice ? {
|
|
41
38
|
functionCallingConfig: this.convertFromFunctionCallMode(this.toolChoice),
|
|
42
39
|
} : undefined,
|
|
43
40
|
systemInstruction,
|
|
44
|
-
generationConfig: this.tokenLimit || this.
|
|
45
|
-
maxOutputTokens: this.tokenLimit
|
|
46
|
-
...this.
|
|
41
|
+
generationConfig: this.tokenLimit || this.additionalOptions ? {
|
|
42
|
+
maxOutputTokens: this.tokenLimit ?? undefined,
|
|
43
|
+
...this.additionalOptions,
|
|
47
44
|
} : undefined,
|
|
48
45
|
};
|
|
49
46
|
ctx.logger.message?.trace(reqbody);
|
|
@@ -61,6 +58,8 @@ export var GoogleRestfulEngine;
|
|
|
61
58
|
assert(res.ok, new Error(undefined, { cause: res }));
|
|
62
59
|
const response = await res.json();
|
|
63
60
|
assert(response.candidates?.[0]?.content?.parts?.length, new TransientError('No content parts', { cause: response }));
|
|
61
|
+
if (response.candidates[0].finishReason === Google.FinishReason.MAX_TOKENS)
|
|
62
|
+
throw new TransientError('Token limit exceeded.', { cause: response });
|
|
64
63
|
assert(response.candidates[0].finishReason === Google.FinishReason.STOP, new TransientError('Abnormal finish reason', { cause: response }));
|
|
65
64
|
for (const part of response.candidates[0].content.parts) {
|
|
66
65
|
if (part.text)
|
|
@@ -93,7 +92,7 @@ export var GoogleRestfulEngine;
|
|
|
93
92
|
throw e;
|
|
94
93
|
ctx.logger.message?.warn(e);
|
|
95
94
|
if (retry < 3)
|
|
96
|
-
return this.
|
|
95
|
+
return this.stateless(ctx, session, retry + 1);
|
|
97
96
|
else
|
|
98
97
|
throw e;
|
|
99
98
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"google-rest.js","sourceRoot":"","sources":["../../src/api-types/google-rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type OpenAI from 'openai';
|
|
2
|
+
import { type Engine } from '../engine.ts';
|
|
3
|
+
import { Function } from '../function.ts';
|
|
4
|
+
import { OpenAIChatCompletionsMonolithEngineBase } from './openai-chatcompletions-monolith-base.ts';
|
|
5
|
+
import { RoleMessage } from '../session.ts';
|
|
6
|
+
export declare namespace MinimaxEngine {
|
|
7
|
+
interface ChatCompletionMessage extends OpenAI.ChatCompletionMessage {
|
|
8
|
+
reasoning_details?: unknown;
|
|
9
|
+
}
|
|
10
|
+
interface ChatCompletionAssistantMessageParam extends OpenAI.ChatCompletionAssistantMessageParam {
|
|
11
|
+
reasoning_details?: unknown;
|
|
12
|
+
}
|
|
13
|
+
function create<fdm extends Function.Declaration.Map = never>(options: Engine.Options<fdm>): Engine<Function.Declaration.From<fdm>>;
|
|
14
|
+
class Constructor<in out fdm extends Function.Declaration.Map = {}> extends OpenAIChatCompletionsMonolithEngineBase<fdm> {
|
|
15
|
+
protected convertToAiMessage(message: MinimaxEngine.ChatCompletionMessage): RoleMessage.Ai<Function.Declaration.From<fdm>>;
|
|
16
|
+
protected convertFromAiMessage(aiMessage: RoleMessage.Ai<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionAssistantMessageParam;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export type MinimaxAiMessage<fdu extends Function.Declaration> = MinimaxAiMessage.Constructor<fdu>;
|
|
20
|
+
export declare namespace MinimaxAiMessage {
|
|
21
|
+
function create<fdu extends Function.Declaration>(parts: RoleMessage.Ai.Part<fdu>[], raw: MinimaxEngine.ChatCompletionMessage): MinimaxAiMessage<fdu>;
|
|
22
|
+
const NOMINAL: unique symbol;
|
|
23
|
+
class Constructor<out fdu extends Function.Declaration> extends RoleMessage.Ai.Constructor<fdu> {
|
|
24
|
+
raw: MinimaxEngine.ChatCompletionMessage;
|
|
25
|
+
readonly [NOMINAL]: void;
|
|
26
|
+
constructor(parts: RoleMessage.Ai.Part<fdu>[], raw: MinimaxEngine.ChatCompletionMessage);
|
|
27
|
+
}
|
|
28
|
+
interface Snapshot<in out fdu extends Function.Declaration = never> {
|
|
29
|
+
parts: RoleMessage.Ai.Part.Snapshot<fdu>[];
|
|
30
|
+
raw: MinimaxEngine.ChatCompletionMessage;
|
|
31
|
+
}
|
|
32
|
+
function restore<fdu extends Function.Declaration>(snapshot: Snapshot<fdu>): MinimaxAiMessage<fdu>;
|
|
33
|
+
function capture<fdu extends Function.Declaration>(message: MinimaxAiMessage<fdu>): Snapshot<fdu>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {} from "../engine.js";
|
|
2
|
+
import { Function } from "../function.js";
|
|
3
|
+
import { OpenAIChatCompletionsMonolithEngineBase } from "./openai-chatcompletions-monolith-base.js";
|
|
4
|
+
import {} from "../inference-context.js";
|
|
5
|
+
import { RoleMessage } from "../session.js";
|
|
6
|
+
export var MinimaxEngine;
|
|
7
|
+
(function (MinimaxEngine) {
|
|
8
|
+
function create(options) {
|
|
9
|
+
return new Constructor(options);
|
|
10
|
+
}
|
|
11
|
+
MinimaxEngine.create = create;
|
|
12
|
+
class Constructor extends OpenAIChatCompletionsMonolithEngineBase {
|
|
13
|
+
convertToAiMessage(message) {
|
|
14
|
+
return MinimaxAiMessage.create(super.convertToAiMessage(message).parts, message);
|
|
15
|
+
}
|
|
16
|
+
convertFromAiMessage(aiMessage) {
|
|
17
|
+
return aiMessage instanceof MinimaxAiMessage.Constructor ? aiMessage.raw : super.convertFromAiMessage(aiMessage);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
MinimaxEngine.Constructor = Constructor;
|
|
21
|
+
})(MinimaxEngine || (MinimaxEngine = {}));
|
|
22
|
+
export var MinimaxAiMessage;
|
|
23
|
+
(function (MinimaxAiMessage) {
|
|
24
|
+
function create(parts, raw) {
|
|
25
|
+
return new Constructor(parts, raw);
|
|
26
|
+
}
|
|
27
|
+
MinimaxAiMessage.create = create;
|
|
28
|
+
MinimaxAiMessage.NOMINAL = Symbol();
|
|
29
|
+
class Constructor extends RoleMessage.Ai.Constructor {
|
|
30
|
+
raw;
|
|
31
|
+
constructor(parts, raw) {
|
|
32
|
+
super(parts);
|
|
33
|
+
this.raw = raw;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
MinimaxAiMessage.Constructor = Constructor;
|
|
37
|
+
function restore(snapshot) {
|
|
38
|
+
return new Constructor(RoleMessage.Ai.restore(snapshot.parts).parts, snapshot.raw);
|
|
39
|
+
}
|
|
40
|
+
MinimaxAiMessage.restore = restore;
|
|
41
|
+
function capture(message) {
|
|
42
|
+
return {
|
|
43
|
+
parts: RoleMessage.Ai.capture(message),
|
|
44
|
+
raw: message.raw,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
MinimaxAiMessage.capture = capture;
|
|
48
|
+
})(MinimaxAiMessage || (MinimaxAiMessage = {}));
|
|
49
|
+
//# sourceMappingURL=minimax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minimax.js","sourceRoot":"","sources":["../../src/api-types/minimax.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,uCAAuC,EAAE,MAAM,2CAA2C,CAAC;AACpG,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAgB,WAAW,EAAE,MAAM,eAAe,CAAC;AAI1D,MAAM,KAAW,aAAa,CAqB7B;AArBD,WAAiB,aAAa;IAQ7B,SAAgB,MAAM,CAA+C,OAA4B;QAChG,OAAO,IAAI,WAAW,CAAM,OAAO,CAAC,CAAC;IACtC,CAAC;IAFe,oBAAM,SAErB,CAAA;IAED,MAAa,WAA8D,SAAQ,uCAA4C;QAC3G,kBAAkB,CAAC,OAA4C;YACjF,OAAO,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;QAEkB,oBAAoB,CAAC,SAAyD;YAChG,OAAO,SAAS,YAAY,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClH,CAAC;KACD;IARY,yBAAW,cAQvB,CAAA;AACF,CAAC,EArBgB,aAAa,KAAb,aAAa,QAqB7B;AAGD,MAAM,KAAW,gBAAgB,CA2BhC;AA3BD,WAAiB,gBAAgB;IAChC,SAAgB,MAAM,CAAmC,KAAiC,EAAE,GAAwC;QACnI,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAFe,uBAAM,SAErB,CAAA;IACY,wBAAO,GAAG,MAAM,EAAE,CAAC;IAChC,MAAa,WAAkD,SAAQ,WAAW,CAAC,EAAE,CAAC,WAAgB;QAI7F;QAFR,YACC,KAAiC,EAC1B,GAAwC;YAE/C,KAAK,CAAC,KAAK,CAAC,CAAC;YAFN,QAAG,GAAH,GAAG,CAAqC;QAGhD,CAAC;KACD;IARY,4BAAW,cAQvB,CAAA;IAKD,SAAgB,OAAO,CAAmC,QAAuB;QAChF,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAFe,wBAAO,UAEtB,CAAA;IACD,SAAgB,OAAO,CAAmC,OAA8B;QACvF,OAAO;YACN,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YACtC,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC;IACH,CAAC;IALe,wBAAO,UAKtB,CAAA;AACF,CAAC,EA3BgB,gBAAgB,KAAhB,gBAAgB,QA2BhC"}
|
|
@@ -4,7 +4,9 @@ import { Function } from '../function.ts';
|
|
|
4
4
|
import OpenAI from 'openai';
|
|
5
5
|
import { EngineBase } from './base.ts';
|
|
6
6
|
export declare abstract class OpenAIChatCompletionsEngineBase<in out fdm extends Function.Declaration.Map = {}> extends EngineBase<fdm> {
|
|
7
|
+
protected parallel: boolean;
|
|
7
8
|
constructor(options: Engine.Options<fdm>);
|
|
9
|
+
protected convertToAiMessage(message: OpenAI.ChatCompletionMessage): RoleMessage.Ai<Function.Declaration.From<fdm>>;
|
|
8
10
|
protected convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionMessageToolCall;
|
|
9
11
|
protected convertToFunctionCall(apifc: OpenAI.ChatCompletionMessageFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
10
12
|
protected convertFromFunctionResponse(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionToolMessageParam;
|
|
@@ -13,8 +15,9 @@ export declare abstract class OpenAIChatCompletionsEngineBase<in out fdm extends
|
|
|
13
15
|
protected convertFromAiMessage(aiMessage: RoleMessage.Ai<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionAssistantMessageParam;
|
|
14
16
|
protected convertFromRoleMessage(roleMessage: RoleMessage): OpenAI.ChatCompletionMessageParam[];
|
|
15
17
|
protected convertFromFunctionDeclarationEntry(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.ChatCompletionTool;
|
|
16
|
-
protected
|
|
18
|
+
protected convertFromToolChoice(mode: Function.ToolChoice<fdm>): OpenAI.ChatCompletionToolChoiceOption;
|
|
17
19
|
protected validateFunctionCallByToolChoice(fcs: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
|
|
18
20
|
protected calcCost(usage: OpenAI.CompletionUsage): number;
|
|
19
21
|
protected extractContent(completionContent: string): string;
|
|
22
|
+
protected handleFinishReason(completion: OpenAI.ChatCompletion, finishReason: OpenAI.ChatCompletion.Choice['finish_reason']): void;
|
|
20
23
|
}
|
|
@@ -4,11 +4,25 @@ import { Function } from "../function.js";
|
|
|
4
4
|
import OpenAI from 'openai';
|
|
5
5
|
import assert from 'node:assert';
|
|
6
6
|
import { EngineBase, TransientError } from "./base.js";
|
|
7
|
+
import {} from "../inference-context.js";
|
|
7
8
|
import { Ajv } from 'ajv';
|
|
8
9
|
const ajv = new Ajv();
|
|
9
10
|
export class OpenAIChatCompletionsEngineBase extends EngineBase {
|
|
11
|
+
parallel;
|
|
10
12
|
constructor(options) {
|
|
11
13
|
super(options);
|
|
14
|
+
this.parallel = options.parallelFunctionCall ?? false;
|
|
15
|
+
}
|
|
16
|
+
convertToAiMessage(message) {
|
|
17
|
+
const parts = [];
|
|
18
|
+
if (message.content)
|
|
19
|
+
parts.push(RoleMessage.Part.Text.create(this.extractContent(message.content)));
|
|
20
|
+
if (message.tool_calls)
|
|
21
|
+
parts.push(...message.tool_calls.map(apifc => {
|
|
22
|
+
assert(apifc.type === 'function');
|
|
23
|
+
return this.convertToFunctionCall(apifc);
|
|
24
|
+
}));
|
|
25
|
+
return RoleMessage.Ai.create(parts);
|
|
12
26
|
}
|
|
13
27
|
convertFromFunctionCall(fc) {
|
|
14
28
|
assert(fc.id);
|
|
@@ -22,7 +36,7 @@ export class OpenAIChatCompletionsEngineBase extends EngineBase {
|
|
|
22
36
|
};
|
|
23
37
|
}
|
|
24
38
|
convertToFunctionCall(apifc) {
|
|
25
|
-
const fditem = this.
|
|
39
|
+
const fditem = this.fdm[apifc.function.name];
|
|
26
40
|
assert(fditem, new TransientError('Invalid function call', { cause: apifc }));
|
|
27
41
|
const args = (() => {
|
|
28
42
|
try {
|
|
@@ -93,7 +107,7 @@ export class OpenAIChatCompletionsEngineBase extends EngineBase {
|
|
|
93
107
|
},
|
|
94
108
|
};
|
|
95
109
|
}
|
|
96
|
-
|
|
110
|
+
convertFromToolChoice(mode) {
|
|
97
111
|
if (mode === Function.ToolChoice.NONE)
|
|
98
112
|
return 'none';
|
|
99
113
|
else if (mode === Function.ToolChoice.REQUIRED)
|
|
@@ -125,5 +139,10 @@ export class OpenAIChatCompletionsEngineBase extends EngineBase {
|
|
|
125
139
|
extractContent(completionContent) {
|
|
126
140
|
return completionContent;
|
|
127
141
|
}
|
|
142
|
+
handleFinishReason(completion, finishReason) {
|
|
143
|
+
if (finishReason === 'length')
|
|
144
|
+
throw new TransientError('Token limit exceeded.', { cause: completion });
|
|
145
|
+
assert(['stop', 'tool_calls'].includes(finishReason), new TransientError('Invalid finish reason', { cause: finishReason }));
|
|
146
|
+
}
|
|
128
147
|
}
|
|
129
148
|
//# sourceMappingURL=openai-chatcompletions-base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chatcompletions-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAGtB,MAAM,OAAgB,+BAAkF,SAAQ,UAAe;
|
|
1
|
+
{"version":3,"file":"openai-chatcompletions-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAGtB,MAAM,OAAgB,+BAAkF,SAAQ,UAAe;IACpH,QAAQ,CAAU;IAE5B,YAAmB,OAA4B;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC;IACvD,CAAC;IAES,kBAAkB,CAAC,OAAqC;QACjE,MAAM,KAAK,GAA0D,EAAE,CAAC;QACxE,IAAI,OAAO,CAAC,OAAO;YAClB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,OAAO,CAAC,UAAU;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC;QACL,OAAO,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAES,uBAAuB,CAAC,EAA8D;QAC/F,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACd,OAAO;YACN,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;aAClC;SACD,CAAC;IACH,CAAC;IACS,qBAAqB,CAAC,KAAmD;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAwC,CAAC;QACpF,MAAM,CAAC,MAAM,EAAE,IAAI,cAAc,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,IAAI,cAAc,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;QACF,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,CACL,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,EACrC,IAAI,cAAc,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAC7D,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;YACzB,IAAI;SAC4D,CAAC,CAAC;IACpE,CAAC;IAGS,2BAA2B,CAAC,EAAkE;QACvG,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACd,OAAO;YACN,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,EAAE,CAAC,EAAE;YACnB,OAAO,EAAE,EAAE,CAAC,IAAI;SAChB,CAAC;IACH,CAAC;IACS,2BAA2B,CAAC,gBAAuC;QAC5E,OAAO;YACN,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,gBAAgB,CAAC,WAAW,EAAE;SACvC,CAAC;IACH,CAAC;IACS,sBAAsB,CAC/B,WAA6D;QAE7D,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtG,MAAM,GAAG,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;QAC/C,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM;YAClC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC3F,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM;YACvC,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC;;YACvD,MAAM,IAAI,KAAK,EAAE,CAAC;IACxB,CAAC;IACS,oBAAoB,CAAC,SAAyD;QACvF,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO;YACN,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACjF,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5F,CAAC;IACH,CAAC;IACS,sBAAsB,CAAC,WAAwB;QACxD,IAAI,WAAW,YAAY,WAAW,CAAC,SAAS,CAAC,WAAW;YAC3D,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC;aACnD,IAAI,WAAW,YAAY,WAAW,CAAC,IAAI,CAAC,WAAW;YAC3D,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;aAC5C,IAAI,WAAW,YAAY,WAAW,CAAC,EAAE,CAAC,WAAW;YACzD,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;;YAC5C,MAAM,IAAI,KAAK,EAAE,CAAC;IACxB,CAAC;IAES,mCAAmC,CAAC,OAA6C;QAC1F,OAAO;YACN,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACT,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;gBAChB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;gBACnC,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU;aACjC;SACD,CAAC;IACH,CAAC;IAES,qBAAqB,CAAC,IAA8B;QAC7D,IAAI,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;aAChD,IAAI,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,QAAQ;YAAE,OAAO,UAAU,CAAC;aAC7D,IAAI,IAAI,KAAK,QAAQ,CAAC,UAAU,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;aACrD,CAAC;YACL,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC;QAC3D,CAAC;IACF,CAAC;IAES,gCAAgC,CAAC,GAAiE;QAC3G,mFAAmF;QACnF,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,QAAQ;YACnD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;aACrC,IAAI,IAAI,CAAC,UAAU,YAAY,KAAK;YACxC,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;aAClF,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,IAAI;YACpD,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;IAC5C,CAAC;IAES,QAAQ,CAAC,KAA6B;QAC/C,MAAM,kBAAkB,GAAG,KAAK,CAAC,qBAAqB,EAAE,aAAa,IAAI,CAAC,CAAC;QAC3E,MAAM,mBAAmB,GAAG,KAAK,CAAC,aAAa,GAAG,kBAAkB,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,GAAG,mBAAmB,GAAG,GAAG;YAChD,IAAI,CAAC,WAAW,GAAG,kBAAkB,GAAG,GAAG;YAC3C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC;IACpD,CAAC;IAES,cAAc,CAAC,iBAAyB;QACjD,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IAES,kBAAkB,CAAC,UAAiC,EAAE,YAA2D;QAC1H,IAAI,YAAY,KAAK,QAAQ;YAC5B,MAAM,IAAI,cAAc,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1E,MAAM,CACL,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC7C,IAAI,cAAc,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CACpE,CAAC;IACH,CAAC;CACD"}
|
|
@@ -7,7 +7,6 @@ import { type Engine } from '../engine.ts';
|
|
|
7
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
|
-
protected
|
|
11
|
-
|
|
12
|
-
monolith(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
|
|
10
|
+
protected makeParams(session: Session<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionCreateParamsNonStreaming;
|
|
11
|
+
stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
|
|
13
12
|
}
|
|
@@ -13,41 +13,31 @@ export class OpenAIChatCompletionsMonolithEngineBase extends OpenAIChatCompletio
|
|
|
13
13
|
super(options);
|
|
14
14
|
this.apiURL = new URL(`${this.baseUrl}/chat/completions`);
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
parts.push(RoleMessage.Part.Text.create(this.extractContent(message.content)));
|
|
20
|
-
if (message.tool_calls)
|
|
21
|
-
parts.push(...message.tool_calls.map(apifc => {
|
|
22
|
-
assert(apifc.type === 'function');
|
|
23
|
-
return this.convertToFunctionCall(apifc);
|
|
24
|
-
}));
|
|
25
|
-
return RoleMessage.Ai.create(parts);
|
|
26
|
-
}
|
|
27
|
-
makeMonolithParams(session) {
|
|
16
|
+
makeParams(session) {
|
|
17
|
+
const fdentries = Object.entries(this.fdm);
|
|
18
|
+
const tools = fdentries.map(fdentry => this.convertFromFunctionDeclarationEntry(fdentry));
|
|
28
19
|
return {
|
|
29
20
|
model: this.model,
|
|
21
|
+
stream: false,
|
|
30
22
|
messages: [
|
|
31
23
|
...(session.developerMessage ? this.convertFromRoleMessage(session.developerMessage) : []),
|
|
32
24
|
...session.chatMessages.flatMap(chatMessage => this.convertFromRoleMessage(chatMessage)),
|
|
33
25
|
],
|
|
34
|
-
tools:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
max_completion_tokens: this.tokenLimit ? this.tokenLimit + 1 : undefined,
|
|
40
|
-
...this.customOptions,
|
|
26
|
+
tools: tools.length ? tools : undefined,
|
|
27
|
+
tool_choice: fdentries.length ? this.convertFromToolChoice(this.toolChoice) : undefined,
|
|
28
|
+
parallel_tool_calls: tools.length ? this.parallel : undefined,
|
|
29
|
+
max_completion_tokens: this.tokenLimit ?? undefined,
|
|
30
|
+
...this.additionalOptions,
|
|
41
31
|
};
|
|
42
32
|
}
|
|
43
|
-
async
|
|
33
|
+
async stateless(ctx, session, retry = 0) {
|
|
44
34
|
const signalTimeout = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
|
|
45
35
|
const signal = ctx.signal && signalTimeout ? AbortSignal.any([
|
|
46
36
|
ctx.signal,
|
|
47
37
|
signalTimeout,
|
|
48
38
|
]) : ctx.signal || signalTimeout;
|
|
49
39
|
try {
|
|
50
|
-
const params = this.
|
|
40
|
+
const params = this.makeParams(session);
|
|
51
41
|
ctx.logger.message?.trace(params);
|
|
52
42
|
await this.throttle.requests(ctx);
|
|
53
43
|
const res = await fetch(this.apiURL, {
|
|
@@ -63,18 +53,19 @@ export class OpenAIChatCompletionsMonolithEngineBase extends OpenAIChatCompletio
|
|
|
63
53
|
assert(res.ok, new Error(undefined, { cause: res }));
|
|
64
54
|
const completion = await res.json();
|
|
65
55
|
ctx.logger.message?.trace(completion);
|
|
66
|
-
|
|
67
|
-
assert(
|
|
56
|
+
const choice = completion.choices[0];
|
|
57
|
+
assert(choice, new TransientError('No choices', { cause: completion }));
|
|
58
|
+
this.handleFinishReason(completion, choice.finish_reason);
|
|
68
59
|
assert(completion.usage);
|
|
69
|
-
assert(completion.usage.completion_tokens <= (this.tokenLimit || Number.POSITIVE_INFINITY), new TransientError('Token limit exceeded.', { cause: completion }));
|
|
70
60
|
const cost = this.calcCost(completion.usage);
|
|
71
61
|
ctx.logger.cost?.(cost);
|
|
72
|
-
const aiMessage = this.convertToAiMessage(
|
|
62
|
+
const aiMessage = this.convertToAiMessage(choice.message);
|
|
63
|
+
// logging
|
|
73
64
|
const text = aiMessage.getText();
|
|
74
65
|
if (text)
|
|
75
66
|
ctx.logger.inference?.debug(text + '\n');
|
|
76
|
-
const apifcs =
|
|
77
|
-
if (apifcs
|
|
67
|
+
const apifcs = choice.message.tool_calls;
|
|
68
|
+
if (apifcs?.length)
|
|
78
69
|
ctx.logger.message?.debug(apifcs);
|
|
79
70
|
ctx.logger.message?.debug(completion.usage);
|
|
80
71
|
this.validateFunctionCallByToolChoice(aiMessage.getFunctionCalls());
|
|
@@ -90,7 +81,7 @@ export class OpenAIChatCompletionsMonolithEngineBase extends OpenAIChatCompletio
|
|
|
90
81
|
throw e;
|
|
91
82
|
ctx.logger.message?.warn(e);
|
|
92
83
|
if (retry < 3)
|
|
93
|
-
return await this.
|
|
84
|
+
return await this.stateless(ctx, session, retry + 1);
|
|
94
85
|
else
|
|
95
86
|
throw e;
|
|
96
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chatcompletions-monolith-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-monolith-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAe,MAAM,cAAc,CAAC;AAG3C,MAAM,OAAgB,uCAA0F,SAAQ,+BAAoC;IACnJ,MAAM,CAAM;IAEpB,YAAmB,OAA4B;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC3D,CAAC;IAES,
|
|
1
|
+
{"version":3,"file":"openai-chatcompletions-monolith-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-monolith-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,9 @@ import { type Engine } from '../engine.ts';
|
|
|
7
7
|
export declare abstract class OpenAIChatCompletionsStreamEngineBase<in out fdm extends Function.Declaration.Map = {}> extends OpenAIChatCompletionsEngineBase<fdm> {
|
|
8
8
|
private client;
|
|
9
9
|
constructor(options: Engine.Options<fdm>);
|
|
10
|
-
protected
|
|
10
|
+
protected makeParams(session: Session<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionCreateParamsStreaming;
|
|
11
11
|
protected convertToFunctionCallFromDelta(apifc: OpenAI.ChatCompletionChunk.Choice.Delta.ToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
12
|
-
protected abstract getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string;
|
|
13
|
-
|
|
12
|
+
protected abstract getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string | null;
|
|
13
|
+
protected convertCompletionStockToCompletion(stock: OpenAI.ChatCompletionChunk): OpenAI.ChatCompletion;
|
|
14
|
+
stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
|
|
14
15
|
}
|