@zimtsui/brainswitch 0.0.1 → 0.0.3
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 +98 -83
- package/build/adaptor.d.ts +1 -1
- package/build/adaptor.js +8 -8
- package/build/adaptor.js.map +1 -1
- package/build/agentloop.d.ts +1 -1
- package/build/agentloop.js +19 -21
- package/build/agentloop.js.map +1 -1
- package/build/api-types/base.d.ts +0 -2
- package/build/api-types/base.js +0 -2
- package/build/api-types/base.js.map +1 -1
- package/build/api-types/google-base.d.ts +15 -3
- package/build/api-types/google-base.js +33 -13
- package/build/api-types/google-base.js.map +1 -1
- package/build/api-types/google-rest.d.ts +13 -9
- package/build/api-types/google-rest.js +102 -89
- package/build/api-types/google-rest.js.map +1 -1
- package/build/api-types/huggingface-cerebras-qwen3-thinking.d.ts +9 -7
- package/build/api-types/huggingface-cerebras-qwen3-thinking.js +46 -41
- package/build/api-types/huggingface-cerebras-qwen3-thinking.js.map +1 -1
- package/build/api-types/openai-chatcompletions-base.d.ts +2 -6
- package/build/api-types/openai-chatcompletions-base.js +5 -12
- package/build/api-types/openai-chatcompletions-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions-monolith-base.d.ts +1 -1
- package/build/api-types/openai-chatcompletions-monolith-base.js +12 -16
- package/build/api-types/openai-chatcompletions-monolith-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions-stream-base.d.ts +1 -1
- package/build/api-types/openai-chatcompletions-stream-base.js +13 -16
- package/build/api-types/openai-chatcompletions-stream-base.js.map +1 -1
- package/build/api-types/openai-chatcompletions.d.ts +4 -2
- package/build/api-types/openai-chatcompletions.js +9 -4
- package/build/api-types/openai-chatcompletions.js.map +1 -1
- package/build/api-types/openai-responses.d.ts +35 -21
- package/build/api-types/openai-responses.js +211 -188
- package/build/api-types/openai-responses.js.map +1 -1
- package/build/api-types/openrouter-monolith.d.ts +8 -8
- package/build/api-types/openrouter-monolith.js +39 -44
- package/build/api-types/openrouter-monolith.js.map +1 -1
- package/build/api-types/openrouter-stream.d.ts +10 -10
- package/build/api-types/openrouter-stream.js +49 -54
- package/build/api-types/openrouter-stream.js.map +1 -1
- package/build/api-types/qwen.d.ts +5 -3
- package/build/api-types/qwen.js +11 -6
- package/build/api-types/qwen.js.map +1 -1
- package/build/config.js.map +1 -1
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine.d.ts +1 -1
- package/build/engine.js +2 -2
- package/build/engine.js.map +1 -1
- package/build/function.d.ts +14 -2
- package/build/function.js +12 -0
- package/build/function.js.map +1 -1
- package/build/session.d.ts +105 -38
- package/build/session.js +212 -60
- package/build/session.js.map +1 -1
- package/build/throttle.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/build/test.d.ts +0 -1
- package/build/test.js +0 -23
- package/build/test.js.map +0 -1
|
@@ -7,60 +7,26 @@ import { GoogleAIMessage, GoogleAPIBase } from "./google-base.js";
|
|
|
7
7
|
import { ProxyAgent, fetch } from 'undici';
|
|
8
8
|
import {} from "../inference-context.js";
|
|
9
9
|
import { TransientError } from "./base.js";
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
constructor(options) {
|
|
15
|
-
super(options);
|
|
16
|
-
this.proxyAgent = options.proxy ? new ProxyAgent(options.proxy) : undefined;
|
|
17
|
-
this.apiURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:generateContent`);
|
|
18
|
-
this.tokenizerURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:countTokens`);
|
|
19
|
-
}
|
|
20
|
-
static create(options) {
|
|
21
|
-
const api = new GoogleRESTfulAPI(options);
|
|
10
|
+
export var GoogleRESTfulAPI;
|
|
11
|
+
(function (GoogleRESTfulAPI) {
|
|
12
|
+
function makeEngine(options) {
|
|
13
|
+
const api = new Constructor(options);
|
|
22
14
|
return api.monolith.bind(api);
|
|
23
15
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
assert(response.totalTokens, new Error(undefined, { cause: response }));
|
|
39
|
-
return response.totalTokens;
|
|
40
|
-
}
|
|
41
|
-
async monolith(ctx, session, retry = 0) {
|
|
42
|
-
try {
|
|
43
|
-
const systemInstruction = session.developerMessage && this.convertFromDeveloperMessage(session.developerMessage);
|
|
44
|
-
const contents = this.convertFromChatMessages(session.chatMessages);
|
|
45
|
-
await this.throttle.requests(ctx);
|
|
46
|
-
await this.throttle.inputTokens(await this.tokenize(contents, ctx), ctx);
|
|
47
|
-
const reqbody = {
|
|
48
|
-
contents,
|
|
49
|
-
tools: Object.keys(this.functionDeclarationMap).length ? [{
|
|
50
|
-
functionDeclarations: Object.entries(this.functionDeclarationMap).map(fdentry => this.convertFromFunctionDeclarationEntry(fdentry)),
|
|
51
|
-
}] : undefined,
|
|
52
|
-
toolConfig: Object.keys(this.functionDeclarationMap).length && this.toolChoice ? {
|
|
53
|
-
functionCallingConfig: this.convertFromFunctionCallMode(this.toolChoice),
|
|
54
|
-
} : undefined,
|
|
55
|
-
systemInstruction,
|
|
56
|
-
generationConfig: this.customOptions ?? undefined,
|
|
57
|
-
};
|
|
58
|
-
ctx.logger.message?.trace(reqbody);
|
|
59
|
-
const signal = this.timeout && ctx.signal ? AbortSignal.any([
|
|
60
|
-
ctx.signal,
|
|
61
|
-
AbortSignal.timeout(this.timeout),
|
|
62
|
-
]) : this.timeout ? AbortSignal.timeout(this.timeout) : ctx.signal;
|
|
63
|
-
const res = await fetch(this.apiURL, {
|
|
16
|
+
GoogleRESTfulAPI.makeEngine = makeEngine;
|
|
17
|
+
class Constructor extends GoogleAPIBase {
|
|
18
|
+
proxyAgent;
|
|
19
|
+
apiURL;
|
|
20
|
+
tokenizerURL;
|
|
21
|
+
constructor(options) {
|
|
22
|
+
super(options);
|
|
23
|
+
this.proxyAgent = options.proxy ? new ProxyAgent(options.proxy) : undefined;
|
|
24
|
+
this.apiURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:generateContent`);
|
|
25
|
+
this.tokenizerURL = new URL(`${this.baseUrl}/v1beta/models/${this.model}:countTokens`);
|
|
26
|
+
}
|
|
27
|
+
async tokenize(contents, ctx) {
|
|
28
|
+
const reqbody = { contents };
|
|
29
|
+
const res = await fetch(this.tokenizerURL, {
|
|
64
30
|
method: 'POST',
|
|
65
31
|
headers: new Headers({
|
|
66
32
|
'Content-Type': 'application/json',
|
|
@@ -68,46 +34,93 @@ export class GoogleRESTfulAPI extends GoogleAPIBase {
|
|
|
68
34
|
}),
|
|
69
35
|
body: JSON.stringify(reqbody),
|
|
70
36
|
dispatcher: this.proxyAgent,
|
|
71
|
-
signal,
|
|
72
|
-
});
|
|
73
|
-
ctx.logger.message?.trace(res);
|
|
37
|
+
signal: ctx.signal,
|
|
38
|
+
}).catch(e => Promise.reject(new TransientError(undefined, { cause: e })));
|
|
74
39
|
assert(res.ok, new Error(undefined, { cause: res }));
|
|
75
40
|
const response = await res.json();
|
|
76
|
-
assert(response.
|
|
77
|
-
|
|
78
|
-
const text = response.candidates[0].content.parts.filter(part => part.text).map(part => part.text).join('');
|
|
79
|
-
if (text)
|
|
80
|
-
ctx.logger.inference?.debug(text + '\n');
|
|
81
|
-
const apiFunctionCalls = response.candidates[0].content.parts.filter(part => part.functionCall);
|
|
82
|
-
if (apiFunctionCalls.length)
|
|
83
|
-
ctx.logger.message?.debug(apiFunctionCalls);
|
|
84
|
-
ctx.logger.message?.debug(response.usageMetadata);
|
|
85
|
-
assert(response.usageMetadata?.promptTokenCount, new Error('Prompt token count absent', { cause: response }));
|
|
86
|
-
const candidatesTokenCount = response.usageMetadata.candidatesTokenCount ?? 0;
|
|
87
|
-
const cacheHitTokenCount = response.usageMetadata.cachedContentTokenCount ?? 0;
|
|
88
|
-
const cacheMissTokenCount = response.usageMetadata.promptTokenCount - cacheHitTokenCount;
|
|
89
|
-
const thinkingTokenCount = response.usageMetadata.thoughtsTokenCount ?? 0;
|
|
90
|
-
this.throttle.outputTokens(candidatesTokenCount);
|
|
91
|
-
this.throttle.outputTokens(thinkingTokenCount);
|
|
92
|
-
const cost = this.inputPrice * cacheMissTokenCount / 1e6 +
|
|
93
|
-
this.cachedPrice * cacheHitTokenCount / 1e6 +
|
|
94
|
-
this.outputPrice * candidatesTokenCount / 1e6 +
|
|
95
|
-
this.outputPrice * thinkingTokenCount / 1e6;
|
|
96
|
-
ctx.logger.cost?.(cost);
|
|
97
|
-
const aiMessage = this.convertToAIMessage(response.candidates[0].content);
|
|
98
|
-
this.validateFunctionCallByToolChoice(aiMessage);
|
|
99
|
-
return aiMessage;
|
|
41
|
+
assert(response.totalTokens, new Error(undefined, { cause: response }));
|
|
42
|
+
return response.totalTokens;
|
|
100
43
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
44
|
+
async monolith(ctx, session, retry = 0) {
|
|
45
|
+
try {
|
|
46
|
+
const systemInstruction = session.developerMessage && this.convertFromDeveloperMessage(session.developerMessage);
|
|
47
|
+
const contents = this.convertFromChatMessages(session.chatMessages);
|
|
48
|
+
await this.throttle.requests(ctx);
|
|
49
|
+
await this.throttle.inputTokens(await this.tokenize(contents, ctx), ctx);
|
|
50
|
+
const reqbody = {
|
|
51
|
+
contents,
|
|
52
|
+
tools: Object.keys(this.functionDeclarationMap).length ? [{
|
|
53
|
+
functionDeclarations: Object.entries(this.functionDeclarationMap).map(fdentry => this.convertFromFunctionDeclarationEntry(fdentry)),
|
|
54
|
+
}] : undefined,
|
|
55
|
+
toolConfig: Object.keys(this.functionDeclarationMap).length && this.toolChoice ? {
|
|
56
|
+
functionCallingConfig: this.convertFromFunctionCallMode(this.toolChoice),
|
|
57
|
+
} : undefined,
|
|
58
|
+
systemInstruction,
|
|
59
|
+
generationConfig: this.customOptions ?? undefined,
|
|
60
|
+
};
|
|
61
|
+
ctx.logger.message?.trace(reqbody);
|
|
62
|
+
const signal = this.timeout && ctx.signal ? AbortSignal.any([
|
|
63
|
+
ctx.signal,
|
|
64
|
+
AbortSignal.timeout(this.timeout),
|
|
65
|
+
]) : this.timeout ? AbortSignal.timeout(this.timeout) : ctx.signal;
|
|
66
|
+
const res = await fetch(this.apiURL, {
|
|
67
|
+
method: 'POST',
|
|
68
|
+
headers: new Headers({
|
|
69
|
+
'Content-Type': 'application/json',
|
|
70
|
+
'x-goog-api-key': this.apiKey,
|
|
71
|
+
}),
|
|
72
|
+
body: JSON.stringify(reqbody),
|
|
73
|
+
dispatcher: this.proxyAgent,
|
|
74
|
+
signal,
|
|
75
|
+
}).catch(e => {
|
|
76
|
+
if (e instanceof TypeError)
|
|
77
|
+
throw new TransientError('Connection error', { cause: e });
|
|
78
|
+
else
|
|
79
|
+
throw e;
|
|
80
|
+
});
|
|
81
|
+
;
|
|
82
|
+
ctx.logger.message?.trace(res);
|
|
83
|
+
assert(res.ok, new TransientError(undefined, { cause: res }));
|
|
84
|
+
const response = await res.json();
|
|
85
|
+
assert(response.candidates?.[0]?.content?.parts, new TransientError('No content parts', { cause: response }));
|
|
86
|
+
assert(response.candidates[0].finishReason === Google.FinishReason.STOP, new TransientError('Abnormal finish reason', { cause: response }));
|
|
87
|
+
const text = response.candidates[0].content.parts.filter(part => part.text).map(part => part.text).join('');
|
|
88
|
+
if (text)
|
|
89
|
+
ctx.logger.inference?.debug(text + '\n');
|
|
90
|
+
const apiFunctionCalls = response.candidates[0].content.parts.filter(part => part.functionCall);
|
|
91
|
+
if (apiFunctionCalls.length)
|
|
92
|
+
ctx.logger.message?.debug(apiFunctionCalls);
|
|
93
|
+
ctx.logger.message?.debug(response.usageMetadata);
|
|
94
|
+
assert(response.usageMetadata?.promptTokenCount, new Error('Prompt token count absent', { cause: response }));
|
|
95
|
+
const candidatesTokenCount = response.usageMetadata.candidatesTokenCount ?? 0;
|
|
96
|
+
const cacheHitTokenCount = response.usageMetadata.cachedContentTokenCount ?? 0;
|
|
97
|
+
const cacheMissTokenCount = response.usageMetadata.promptTokenCount - cacheHitTokenCount;
|
|
98
|
+
const thinkingTokenCount = response.usageMetadata.thoughtsTokenCount ?? 0;
|
|
99
|
+
this.throttle.outputTokens(candidatesTokenCount);
|
|
100
|
+
this.throttle.outputTokens(thinkingTokenCount);
|
|
101
|
+
const cost = this.inputPrice * cacheMissTokenCount / 1e6 +
|
|
102
|
+
this.cachedPrice * cacheHitTokenCount / 1e6 +
|
|
103
|
+
this.outputPrice * candidatesTokenCount / 1e6 +
|
|
104
|
+
this.outputPrice * thinkingTokenCount / 1e6;
|
|
105
|
+
ctx.logger.cost?.(cost);
|
|
106
|
+
const aiMessage = this.convertToAIMessage(response.candidates[0].content);
|
|
107
|
+
this.validateFunctionCallByToolChoice(aiMessage);
|
|
108
|
+
return aiMessage;
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
if (ctx.signal?.aborted)
|
|
112
|
+
throw new DOMException(undefined, 'AbortError');
|
|
113
|
+
else if (e instanceof TransientError) { } // 模型抽风
|
|
114
|
+
else
|
|
115
|
+
throw e;
|
|
116
|
+
ctx.logger.message?.warn(e);
|
|
117
|
+
if (retry < 3)
|
|
118
|
+
return this.monolith(ctx, session, retry + 1);
|
|
119
|
+
else
|
|
120
|
+
throw e;
|
|
121
|
+
}
|
|
110
122
|
}
|
|
111
123
|
}
|
|
112
|
-
|
|
124
|
+
GoogleRESTfulAPI.Constructor = Constructor;
|
|
125
|
+
})(GoogleRESTfulAPI || (GoogleRESTfulAPI = {}));
|
|
113
126
|
//# 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,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,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,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAyB,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"google-rest.js","sourceRoot":"","sources":["../../src/api-types/google-rest.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ import { Function } from '../function.ts';
|
|
|
3
3
|
import OpenAI from 'openai';
|
|
4
4
|
import { OpenAIChatCompletionsMonolithAPIBase } from './openai-chatcompletions-monolith-base.ts';
|
|
5
5
|
import { RoleMessage } from '../session.ts';
|
|
6
|
-
export declare
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
export declare namespace HuggingFaceCerebrasQwen3ThinkingAPI {
|
|
7
|
+
function makeEngine<fdm extends Function.Declaration.Map = never>(options: Engine.Options<fdm>): Engine<Function.Declaration.From<fdm>>;
|
|
8
|
+
class Constructor<in out fdm extends Function.Declaration.Map = {}> extends OpenAIChatCompletionsMonolithAPIBase<fdm> {
|
|
9
|
+
protected convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): OpenAI.ChatCompletionSystemMessageParam;
|
|
10
|
+
protected convertFromUserMessage(userMessage: RoleMessage.User<Function.Declaration.From<fdm>>): [OpenAI.ChatCompletionUserMessageParam] | OpenAI.ChatCompletionToolMessageParam[];
|
|
11
|
+
protected convertFromAIMessage(aiMessage: RoleMessage.AI<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionAssistantMessageParam;
|
|
12
|
+
protected convertFromFunctionResponse(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionToolMessageParam;
|
|
13
|
+
protected extractContent(completionContent: string): string;
|
|
14
|
+
}
|
|
13
15
|
}
|
|
@@ -5,48 +5,53 @@ import { OpenAIChatCompletionsMonolithAPIBase } from "./openai-chatcompletions-m
|
|
|
5
5
|
import { RoleMessage } from "../session.js";
|
|
6
6
|
import assert from 'node:assert';
|
|
7
7
|
import { TransientError } from "./base.js";
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
export var HuggingFaceCerebrasQwen3ThinkingAPI;
|
|
9
|
+
(function (HuggingFaceCerebrasQwen3ThinkingAPI) {
|
|
10
|
+
function makeEngine(options) {
|
|
11
|
+
const api = new Constructor(options);
|
|
11
12
|
return api.monolith.bind(api);
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
HuggingFaceCerebrasQwen3ThinkingAPI.makeEngine = makeEngine;
|
|
15
|
+
class Constructor extends OpenAIChatCompletionsMonolithAPIBase {
|
|
16
|
+
convertFromDeveloperMessage(developerMessage) {
|
|
17
|
+
return {
|
|
18
|
+
role: 'system',
|
|
19
|
+
content: developerMessage.getOnlyText(),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
convertFromUserMessage(userMessage) {
|
|
23
|
+
const textParts = userMessage.parts.filter(part => part instanceof RoleMessage.Part.Text.Constructor);
|
|
24
|
+
const frs = userMessage.getFunctionResponses();
|
|
25
|
+
if (textParts.length && !frs.length)
|
|
26
|
+
return [{ role: 'user', content: textParts.map(part => part.text).join('') }];
|
|
27
|
+
else if (!textParts.length && frs.length)
|
|
28
|
+
return frs.map(fr => this.convertFromFunctionResponse(fr));
|
|
29
|
+
else
|
|
30
|
+
throw new Error();
|
|
31
|
+
}
|
|
32
|
+
convertFromAIMessage(aiMessage) {
|
|
33
|
+
const textParts = aiMessage.parts.filter(part => part instanceof RoleMessage.Part.Text.Constructor);
|
|
34
|
+
const fcParts = aiMessage.parts.filter(part => part instanceof Function.Call);
|
|
35
|
+
return {
|
|
36
|
+
role: 'assistant',
|
|
37
|
+
content: textParts.length ? textParts.map(part => part.text).join('') : undefined,
|
|
38
|
+
tool_calls: fcParts.length ? fcParts.map(fc => this.convertFromFunctionCall(fc)) : undefined,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
convertFromFunctionResponse(fr) {
|
|
42
|
+
assert(fr.id);
|
|
43
|
+
return {
|
|
44
|
+
role: 'tool',
|
|
45
|
+
tool_call_id: fr.id,
|
|
46
|
+
content: fr.text,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
extractContent(completionContent) {
|
|
50
|
+
const match = completionContent.match(/(?:<think>)?(?<thoughts>.*?)<\/think>(?<content>.*)/us);
|
|
51
|
+
assert(match, new TransientError('Response doesn\'t conform to the expected pattern.', { cause: completionContent }));
|
|
52
|
+
return match.groups.content.trimStart();
|
|
53
|
+
}
|
|
18
54
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const frs = userMessage.getFunctionResponses();
|
|
22
|
-
if (textParts.length && !frs.length)
|
|
23
|
-
return [{ role: 'user', content: textParts.map(part => part.text).join('') }];
|
|
24
|
-
else if (!textParts.length && frs.length)
|
|
25
|
-
return frs.map(fr => this.convertFromFunctionResponse(fr));
|
|
26
|
-
else
|
|
27
|
-
throw new Error();
|
|
28
|
-
}
|
|
29
|
-
convertFromAIMessage(aiMessage) {
|
|
30
|
-
const textParts = aiMessage.parts.filter(part => part instanceof RoleMessage.Text);
|
|
31
|
-
const fcParts = aiMessage.parts.filter(part => part instanceof Function.Call);
|
|
32
|
-
return {
|
|
33
|
-
role: 'assistant',
|
|
34
|
-
content: textParts.length ? textParts.map(part => part.text).join('') : undefined,
|
|
35
|
-
tool_calls: fcParts.length ? fcParts.map(fc => this.convertFromFunctionCall(fc)) : undefined,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
convertFromFunctionResponse(fr) {
|
|
39
|
-
assert(fr.id);
|
|
40
|
-
return {
|
|
41
|
-
role: 'tool',
|
|
42
|
-
tool_call_id: fr.id,
|
|
43
|
-
content: fr.text,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
extractContent(completionContent) {
|
|
47
|
-
const match = completionContent.match(/(?:<think>)?(?<thoughts>.*?)<\/think>(?<content>.*)/us);
|
|
48
|
-
assert(match, new TransientError('Response doesn\'t conform to the expected pattern.', { cause: completionContent }));
|
|
49
|
-
return match.groups.content.trimStart();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
55
|
+
HuggingFaceCerebrasQwen3ThinkingAPI.Constructor = Constructor;
|
|
56
|
+
})(HuggingFaceCerebrasQwen3ThinkingAPI || (HuggingFaceCerebrasQwen3ThinkingAPI = {}));
|
|
52
57
|
//# sourceMappingURL=huggingface-cerebras-qwen3-thinking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-cerebras-qwen3-thinking.js","sourceRoot":"","sources":["../../src/api-types/huggingface-cerebras-qwen3-thinking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAI3C,MAAM,
|
|
1
|
+
{"version":3,"file":"huggingface-cerebras-qwen3-thinking.js","sourceRoot":"","sources":["../../src/api-types/huggingface-cerebras-qwen3-thinking.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,14 +7,14 @@ import { ProxyAgent } from 'undici';
|
|
|
7
7
|
export declare abstract class OpenAIChatCompletionsAPIBase<in out fdm extends Function.Declaration.Map = {}> extends APIBase<fdm> {
|
|
8
8
|
protected client: OpenAI;
|
|
9
9
|
protected proxyAgent?: ProxyAgent;
|
|
10
|
-
|
|
10
|
+
constructor(options: Engine.Options<fdm>);
|
|
11
11
|
protected convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionMessageToolCall;
|
|
12
12
|
protected convertToFunctionCall(apifc: OpenAI.ChatCompletionMessageFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
13
13
|
protected convertFromFunctionResponse(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionToolMessageParam;
|
|
14
14
|
protected convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): OpenAI.ChatCompletionSystemMessageParam;
|
|
15
15
|
protected convertFromUserMessage(userMessage: RoleMessage.User<Function.Declaration.From<fdm>>): [OpenAI.ChatCompletionUserMessageParam] | OpenAI.ChatCompletionToolMessageParam[];
|
|
16
16
|
protected convertFromAIMessage(aiMessage: RoleMessage.AI<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionAssistantMessageParam;
|
|
17
|
-
protected convertFromRoleMessage(roleMessage: RoleMessage
|
|
17
|
+
protected convertFromRoleMessage(roleMessage: RoleMessage): OpenAI.ChatCompletionMessageParam[];
|
|
18
18
|
protected convertFromFunctionDeclarationEntry(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.ChatCompletionTool;
|
|
19
19
|
protected convertFromFunctionCallMode(mode: Function.ToolChoice<fdm>): OpenAI.ChatCompletionToolChoiceOption;
|
|
20
20
|
protected validateFunctionCallByToolChoice(fcs: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
|
|
@@ -22,7 +22,3 @@ export declare abstract class OpenAIChatCompletionsAPIBase<in out fdm extends Fu
|
|
|
22
22
|
protected calcCost(usage: OpenAI.CompletionUsage): number;
|
|
23
23
|
protected extractContent(completionContent: string): string;
|
|
24
24
|
}
|
|
25
|
-
export declare class InvalidFinishReason extends Error {
|
|
26
|
-
finishReason: OpenAI.ChatCompletionChunk.Choice['finish_reason'];
|
|
27
|
-
constructor(finishReason: OpenAI.ChatCompletionChunk.Choice['finish_reason']);
|
|
28
|
-
}
|
|
@@ -65,7 +65,7 @@ export class OpenAIChatCompletionsAPIBase extends APIBase {
|
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
convertFromUserMessage(userMessage) {
|
|
68
|
-
const textParts = userMessage.parts.filter(part => part instanceof RoleMessage.Text);
|
|
68
|
+
const textParts = userMessage.parts.filter(part => part instanceof RoleMessage.Part.Text.Constructor);
|
|
69
69
|
const frs = userMessage.getFunctionResponses();
|
|
70
70
|
if (textParts.length && !frs.length)
|
|
71
71
|
return [{ role: 'user', content: textParts.map(part => ({ type: 'text', text: part.text })) }];
|
|
@@ -75,7 +75,7 @@ export class OpenAIChatCompletionsAPIBase extends APIBase {
|
|
|
75
75
|
throw new Error();
|
|
76
76
|
}
|
|
77
77
|
convertFromAIMessage(aiMessage) {
|
|
78
|
-
const textParts = aiMessage.parts.filter(part => part instanceof RoleMessage.Text);
|
|
78
|
+
const textParts = aiMessage.parts.filter(part => part instanceof RoleMessage.Part.Text.Constructor);
|
|
79
79
|
const fcParts = aiMessage.parts.filter(part => part instanceof Function.Call);
|
|
80
80
|
return {
|
|
81
81
|
role: 'assistant',
|
|
@@ -84,11 +84,11 @@ export class OpenAIChatCompletionsAPIBase extends APIBase {
|
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
convertFromRoleMessage(roleMessage) {
|
|
87
|
-
if (roleMessage instanceof RoleMessage.Developer)
|
|
87
|
+
if (roleMessage instanceof RoleMessage.Developer.Constructor)
|
|
88
88
|
return [this.convertFromDeveloperMessage(roleMessage)];
|
|
89
|
-
else if (roleMessage instanceof RoleMessage.User)
|
|
89
|
+
else if (roleMessage instanceof RoleMessage.User.Constructor)
|
|
90
90
|
return this.convertFromUserMessage(roleMessage);
|
|
91
|
-
else if (roleMessage instanceof RoleMessage.AI)
|
|
91
|
+
else if (roleMessage instanceof RoleMessage.AI.Constructor)
|
|
92
92
|
return [this.convertFromAIMessage(roleMessage)];
|
|
93
93
|
else
|
|
94
94
|
throw new Error();
|
|
@@ -140,11 +140,4 @@ export class OpenAIChatCompletionsAPIBase extends APIBase {
|
|
|
140
140
|
return completionContent;
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
|
-
export class InvalidFinishReason extends Error {
|
|
144
|
-
finishReason;
|
|
145
|
-
constructor(finishReason) {
|
|
146
|
-
super();
|
|
147
|
-
this.finishReason = finishReason;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
143
|
//# 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,EAAE,MAAM,cAAc,CAAC;AACtC,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,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAGtB,MAAM,OAAgB,4BAA+E,SAAQ,OAAY;IAC9G,MAAM,CAAS;IACf,UAAU,CAAc;IAElC,
|
|
1
|
+
{"version":3,"file":"openai-chatcompletions-base.js","sourceRoot":"","sources":["../../src/api-types/openai-chatcompletions-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ import { type InferenceContext } from '../inference-context.ts';
|
|
|
6
6
|
export declare abstract class OpenAIChatCompletionsMonolithAPIBase<in out fdm extends Function.Declaration.Map = {}> extends OpenAIChatCompletionsAPIBase<fdm> {
|
|
7
7
|
protected convertToAIMessage(message: OpenAI.ChatCompletionMessage): RoleMessage.AI<Function.Declaration.From<fdm>>;
|
|
8
8
|
protected makeMonolithParams(session: Session<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionCreateParamsNonStreaming;
|
|
9
|
-
|
|
9
|
+
monolith(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<RoleMessage.AI<Function.Declaration.From<fdm>>>;
|
|
10
10
|
}
|
|
@@ -2,21 +2,20 @@ import { RoleMessage } from "../session.js";
|
|
|
2
2
|
import { Function } from "../function.js";
|
|
3
3
|
import OpenAI from 'openai';
|
|
4
4
|
import assert from 'node:assert';
|
|
5
|
-
import { TransientError
|
|
6
|
-
import { InvalidFinishReason } from "./openai-chatcompletions-base.js";
|
|
5
|
+
import { TransientError } from "./base.js";
|
|
7
6
|
import { OpenAIChatCompletionsAPIBase } from "./openai-chatcompletions-base.js";
|
|
8
7
|
import {} from "../inference-context.js";
|
|
9
8
|
export class OpenAIChatCompletionsMonolithAPIBase extends OpenAIChatCompletionsAPIBase {
|
|
10
9
|
convertToAIMessage(message) {
|
|
11
10
|
const parts = [];
|
|
12
11
|
if (message.content)
|
|
13
|
-
parts.push(
|
|
12
|
+
parts.push(RoleMessage.Part.Text.create(this.extractContent(message.content)));
|
|
14
13
|
if (message.tool_calls)
|
|
15
14
|
parts.push(...message.tool_calls.map(apifc => {
|
|
16
15
|
assert(apifc.type === 'function');
|
|
17
16
|
return this.convertToFunctionCall(apifc);
|
|
18
17
|
}));
|
|
19
|
-
return
|
|
18
|
+
return RoleMessage.AI.create(parts);
|
|
20
19
|
}
|
|
21
20
|
makeMonolithParams(session) {
|
|
22
21
|
return {
|
|
@@ -34,8 +33,6 @@ export class OpenAIChatCompletionsMonolithAPIBase extends OpenAIChatCompletionsA
|
|
|
34
33
|
};
|
|
35
34
|
}
|
|
36
35
|
async monolith(ctx, session, retry = 0) {
|
|
37
|
-
if (retry > 2)
|
|
38
|
-
throw new RetryLimitError();
|
|
39
36
|
const signalTimeout = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
|
|
40
37
|
const signal = ctx.signal && signalTimeout ? AbortSignal.any([
|
|
41
38
|
ctx.signal,
|
|
@@ -46,10 +43,11 @@ export class OpenAIChatCompletionsMonolithAPIBase extends OpenAIChatCompletionsA
|
|
|
46
43
|
await this.throttle.requests(ctx);
|
|
47
44
|
await this.throttle.inputTokens(this.tokenize(params), ctx);
|
|
48
45
|
try {
|
|
49
|
-
const completion = await this.client.chat.completions.create(params, { signal })
|
|
46
|
+
const completion = await this.client.chat.completions.create(params, { signal })
|
|
47
|
+
.catch(e => Promise.reject(new TransientError(undefined, { cause: e })));
|
|
50
48
|
ctx.logger.message?.trace(completion);
|
|
51
49
|
assert(completion.choices[0], new TransientError('No choices', { cause: completion }));
|
|
52
|
-
assert(completion.choices[0].finish_reason && ['stop', 'tool_calls'].includes(completion.choices[0].finish_reason), new
|
|
50
|
+
assert(completion.choices[0].finish_reason && ['stop', 'tool_calls'].includes(completion.choices[0].finish_reason), new TransientError('Invalid finish reason', { cause: completion.choices[0].finish_reason }));
|
|
53
51
|
assert(completion.usage);
|
|
54
52
|
this.throttle.outputTokens(completion.usage.completion_tokens);
|
|
55
53
|
const cost = this.calcCost(completion.usage);
|
|
@@ -68,17 +66,15 @@ export class OpenAIChatCompletionsMonolithAPIBase extends OpenAIChatCompletionsA
|
|
|
68
66
|
catch (e) {
|
|
69
67
|
if (ctx.signal?.aborted)
|
|
70
68
|
throw new DOMException(undefined, 'AbortError');
|
|
71
|
-
if (
|
|
72
|
-
else if (e instanceof
|
|
73
|
-
else if (e instanceof OpenAI.APIUserAbortError) { } // 推理超时
|
|
74
|
-
else if (e instanceof OpenAI.BadRequestError) {
|
|
75
|
-
ctx.logger.message?.warn(params);
|
|
76
|
-
}
|
|
69
|
+
else if (signalTimeout?.aborted) { } // 推理超时
|
|
70
|
+
else if (e instanceof TransientError) { } // 模型抽风
|
|
77
71
|
else
|
|
78
72
|
throw e;
|
|
79
73
|
ctx.logger.message?.warn(e);
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
if (retry < 3)
|
|
75
|
+
return await this.monolith(ctx, session, retry + 1);
|
|
76
|
+
else
|
|
77
|
+
throw e;
|
|
82
78
|
}
|
|
83
79
|
}
|
|
84
80
|
}
|
|
@@ -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,
|
|
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,5 +7,5 @@ export declare abstract class OpenAIChatCompletionsStreamAPIBase<in out fdm exte
|
|
|
7
7
|
protected makeStreamParams(session: Session<Function.Declaration.From<fdm>>): OpenAI.ChatCompletionCreateParamsStreaming;
|
|
8
8
|
protected convertToFunctionCallFromDelta(apifc: OpenAI.ChatCompletionChunk.Choice.Delta.ToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
9
9
|
protected abstract getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string;
|
|
10
|
-
|
|
10
|
+
stream(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, retry?: number): Promise<RoleMessage.AI<Function.Declaration.From<fdm>>>;
|
|
11
11
|
}
|