@zimtsui/typechat 0.0.108 → 0.0.110
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.js +3 -0
- package/build/adaptor.js.map +1 -1
- package/build/config.d.ts +1 -1
- package/build/endpoint-spec.d.ts +1 -1
- package/build/endpoint-spec.js +1 -0
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine/message.d.ts +12 -30
- package/build/engine/message.js +18 -50
- package/build/engine/message.js.map +1 -1
- package/build/engine/middleware.d.ts +1 -1
- package/build/engine/recoverable.d.ts +1 -1
- package/build/engine/recoverable.js.map +1 -1
- package/build/engine/tool-choice-validator.js +4 -4
- package/build/engine/tool-choice-validator.js.map +1 -1
- package/build/engine.d.ts +2 -2
- package/build/engine.js +2 -4
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/message-codec.js +9 -3
- package/build/engines/anthropic/message-codec.js.map +1 -1
- package/build/engines/anthropic/message.d.ts +1 -3
- package/build/engines/anthropic/message.js +1 -6
- package/build/engines/anthropic/message.js.map +1 -1
- package/build/engines/anthropic.d.ts +4 -1
- package/build/engines/anthropic.js +5 -2
- package/build/engines/anthropic.js.map +1 -1
- package/build/engines/dashscope/message-codec.d.ts +19 -0
- package/build/engines/dashscope/message-codec.js +116 -0
- package/build/engines/dashscope/message-codec.js.map +1 -0
- package/build/engines/dashscope/message.d.ts +19 -0
- package/build/engines/dashscope/message.js +20 -0
- package/build/engines/dashscope/message.js.map +1 -0
- package/build/engines/dashscope/tool-choice-codec.d.ts +3 -0
- package/build/engines/dashscope/tool-choice-codec.js +14 -0
- package/build/engines/dashscope/tool-choice-codec.js.map +1 -0
- package/build/engines/dashscope/transport.d.ts +39 -0
- package/build/engines/dashscope/transport.js +114 -0
- package/build/engines/dashscope/transport.js.map +1 -0
- package/build/engines/dashscope.d.ts +36 -0
- package/build/engines/dashscope.js +78 -0
- package/build/engines/dashscope.js.map +1 -0
- package/build/engines/google/message-codec.js +8 -4
- package/build/engines/google/message-codec.js.map +1 -1
- package/build/engines/google/message.d.ts +1 -1
- package/build/engines/google/message.js +5 -5
- package/build/engines/google/message.js.map +1 -1
- package/build/engines/google.d.ts +2 -1
- package/build/engines/google.js +4 -3
- package/build/engines/google.js.map +1 -1
- package/build/engines/openai-chatcompletions/message-codec.js +14 -7
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/engines/openai-responses/message-codec.d.ts +1 -3
- package/build/engines/openai-responses/message-codec.js +15 -22
- package/build/engines/openai-responses/message-codec.js.map +1 -1
- package/build/engines/openai-responses/message.d.ts +4 -6
- package/build/engines/openai-responses/message.js +1 -6
- package/build/engines/openai-responses/message.js.map +1 -1
- package/build/engines/openai-responses/tool-choice-validator.js +4 -4
- package/build/engines/openai-responses/tool-choice-validator.js.map +1 -1
- package/build/engines/openai-responses/transport.js +1 -1
- package/build/engines/openai-responses/transport.js.map +1 -1
- package/build/engines/openai-responses.d.ts +6 -6
- package/build/engines/openai-responses.js +4 -3
- package/build/engines/openai-responses.js.map +1 -1
- package/build/exports.d.ts +1 -0
- package/build/exports.js +1 -0
- package/build/exports.js.map +1 -1
- package/build/media.d.ts +0 -8
- package/build/media.js +0 -2
- package/build/media.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Engine } from "../../engine.js";
|
|
2
|
+
import { RoleMessage } from "./message.js";
|
|
3
|
+
import { Function } from "../../function.js";
|
|
4
|
+
import { Media } from "../../media.js";
|
|
5
|
+
export class MessageCodec {
|
|
6
|
+
toolCodec;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.toolCodec = options.toolCodec;
|
|
9
|
+
}
|
|
10
|
+
decodeAiMessage(raw) {
|
|
11
|
+
const parts = [];
|
|
12
|
+
for (const item of raw.output) {
|
|
13
|
+
if (item.type === 'message')
|
|
14
|
+
for (const part of item.content)
|
|
15
|
+
if (part.type === 'output_text')
|
|
16
|
+
parts.push(new RoleMessage.Part.Text(part.text));
|
|
17
|
+
else if (part.type === 'refusal')
|
|
18
|
+
throw new SyntaxError('Refusal', { cause: raw });
|
|
19
|
+
else
|
|
20
|
+
throw new Error();
|
|
21
|
+
else if (item.type === 'function_call')
|
|
22
|
+
parts.push(this.toolCodec.decodeFunctionCall(item));
|
|
23
|
+
else if (item.type === 'reasoning') { }
|
|
24
|
+
else
|
|
25
|
+
throw new Error();
|
|
26
|
+
}
|
|
27
|
+
return new RoleMessage.Ai(parts, raw);
|
|
28
|
+
}
|
|
29
|
+
encodeUserMessage(userMessage) {
|
|
30
|
+
const responseInput = [];
|
|
31
|
+
let content = [];
|
|
32
|
+
function flush() {
|
|
33
|
+
if (content.length) {
|
|
34
|
+
responseInput.push({
|
|
35
|
+
type: 'message',
|
|
36
|
+
role: 'user',
|
|
37
|
+
content,
|
|
38
|
+
});
|
|
39
|
+
content = [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
for (const part of userMessage.getParts()) {
|
|
43
|
+
if (part instanceof Engine.RoleMessage.Part.Text)
|
|
44
|
+
content.push({
|
|
45
|
+
type: 'input_text',
|
|
46
|
+
text: part.text,
|
|
47
|
+
});
|
|
48
|
+
else if (part instanceof Media.Text)
|
|
49
|
+
content.push({
|
|
50
|
+
type: 'input_text',
|
|
51
|
+
text: part.quote(),
|
|
52
|
+
});
|
|
53
|
+
else if (part instanceof Media.Image)
|
|
54
|
+
content.push({
|
|
55
|
+
type: 'input_image',
|
|
56
|
+
image_url: `data:${part.mimeType};base64,${part.base64}`,
|
|
57
|
+
detail: 'auto',
|
|
58
|
+
});
|
|
59
|
+
else if (part instanceof Media.Pdf)
|
|
60
|
+
content.push({
|
|
61
|
+
type: 'input_file',
|
|
62
|
+
file_data: `data:${part.mimeType};base64,${part.base64}`,
|
|
63
|
+
});
|
|
64
|
+
else if (part instanceof Function.Response) {
|
|
65
|
+
const fres = part;
|
|
66
|
+
flush();
|
|
67
|
+
responseInput.push(this.toolCodec.encodeFunctionResponse(fres));
|
|
68
|
+
}
|
|
69
|
+
else
|
|
70
|
+
throw new Error('Unknown user message part type', { cause: part });
|
|
71
|
+
}
|
|
72
|
+
flush();
|
|
73
|
+
return responseInput;
|
|
74
|
+
}
|
|
75
|
+
encodeAiMessage(aiMessage) {
|
|
76
|
+
if (aiMessage instanceof RoleMessage.Ai) {
|
|
77
|
+
const nativeAiMessage = aiMessage;
|
|
78
|
+
const raw = nativeAiMessage.getRaw();
|
|
79
|
+
if (raw.output.every(item => item.type !== 'computer_call_output')) { }
|
|
80
|
+
else
|
|
81
|
+
throw new Error('Computer calls are not supported yet.');
|
|
82
|
+
return raw.output;
|
|
83
|
+
}
|
|
84
|
+
const responseInput = [];
|
|
85
|
+
for (const part of aiMessage.getParts()) {
|
|
86
|
+
if (part instanceof RoleMessage.Part.Text)
|
|
87
|
+
responseInput.push({
|
|
88
|
+
role: 'assistant',
|
|
89
|
+
content: part.text,
|
|
90
|
+
});
|
|
91
|
+
else if (part instanceof Function.Call) {
|
|
92
|
+
const fcall = part;
|
|
93
|
+
responseInput.push(this.toolCodec.encodeFunctionCall(fcall));
|
|
94
|
+
}
|
|
95
|
+
else
|
|
96
|
+
throw new Error('Unknown AI message part type', { cause: part });
|
|
97
|
+
}
|
|
98
|
+
return responseInput;
|
|
99
|
+
}
|
|
100
|
+
encodeDeveloperMessage(developerMessage) {
|
|
101
|
+
return developerMessage.getOnlyTextParts().map(part => part.text).join('');
|
|
102
|
+
}
|
|
103
|
+
encodeChatMessage(chatMessage) {
|
|
104
|
+
if (chatMessage instanceof Engine.RoleMessage.User) {
|
|
105
|
+
const userMessage = chatMessage;
|
|
106
|
+
return this.encodeUserMessage(userMessage);
|
|
107
|
+
}
|
|
108
|
+
else if (chatMessage instanceof Engine.RoleMessage.Ai) {
|
|
109
|
+
const aiMessage = chatMessage;
|
|
110
|
+
return this.encodeAiMessage(aiMessage);
|
|
111
|
+
}
|
|
112
|
+
else
|
|
113
|
+
throw new Error();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=message-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/dashscope/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Engine } from '../../engine.ts';
|
|
2
|
+
import { Function } from '../../function.ts';
|
|
3
|
+
import OpenAI from 'openai';
|
|
4
|
+
declare const NOMINAL: unique symbol;
|
|
5
|
+
export declare namespace RoleMessage {
|
|
6
|
+
class Ai<in out fdu extends Function.Decl.Proto> extends Engine.RoleMessage.Ai<fdu> {
|
|
7
|
+
protected raw: OpenAI.Responses.Response;
|
|
8
|
+
protected [NOMINAL]: never;
|
|
9
|
+
constructor(parts: unknown[], raw: OpenAI.Responses.Response);
|
|
10
|
+
getRaw(): OpenAI.Responses.Response;
|
|
11
|
+
}
|
|
12
|
+
namespace Ai {
|
|
13
|
+
type From<fdm extends Function.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>>;
|
|
14
|
+
}
|
|
15
|
+
export import Part = Engine.RoleMessage.Part;
|
|
16
|
+
export import User = Engine.RoleMessage.User;
|
|
17
|
+
export import Developer = Engine.RoleMessage.Developer;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Engine } from "../../engine.js";
|
|
2
|
+
const NOMINAL = Symbol();
|
|
3
|
+
export var RoleMessage;
|
|
4
|
+
(function (RoleMessage) {
|
|
5
|
+
class Ai extends Engine.RoleMessage.Ai {
|
|
6
|
+
raw;
|
|
7
|
+
constructor(parts, raw) {
|
|
8
|
+
super(parts);
|
|
9
|
+
this.raw = raw;
|
|
10
|
+
}
|
|
11
|
+
getRaw() {
|
|
12
|
+
return this.raw;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
RoleMessage.Ai = Ai;
|
|
16
|
+
RoleMessage.Part = Engine.RoleMessage.Part;
|
|
17
|
+
RoleMessage.User = Engine.RoleMessage.User;
|
|
18
|
+
RoleMessage.Developer = Engine.RoleMessage.Developer;
|
|
19
|
+
})(RoleMessage || (RoleMessage = {}));
|
|
20
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/dashscope/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,CA0B3B;AA1BD,WAAiB,WAAW;IACxB,MAAa,EAEX,SAAQ,MAAM,CAAC,WAAW,CAAC,EAAO;QAIlB;QAFd,YACI,KAAgB,EACN,GAA8B;YAExC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFH,QAAG,GAAH,GAAG,CAA2B;QAG5C,CAAC;QAEM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;KACJ;IAdY,cAAE,KAcd,CAAA;IAQa,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,qBAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3D,CAAC,EA1BgB,WAAW,KAAX,WAAW,QA0B3B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ToolChoice } from "../../tool-choice.js";
|
|
2
|
+
export function encode(toolChoice) {
|
|
3
|
+
if (toolChoice === ToolChoice.NONE)
|
|
4
|
+
return 'none';
|
|
5
|
+
else if (toolChoice === ToolChoice.REQUIRED)
|
|
6
|
+
return 'auto';
|
|
7
|
+
else if (toolChoice === ToolChoice.ANYONE)
|
|
8
|
+
return 'auto';
|
|
9
|
+
else if (toolChoice === ToolChoice.AUTO)
|
|
10
|
+
return 'auto';
|
|
11
|
+
else
|
|
12
|
+
throw new Error();
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=tool-choice-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-choice-codec.js","sourceRoot":"","sources":["../../../src/engines/dashscope/tool-choice-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,MAAM,UAAU,MAAM,CAClB,UAAsB;IAEtB,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;SAC7C,IAAI,UAAU,KAAK,UAAU,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;SACtD,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;SACpD,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;;QAClD,MAAM,IAAI,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type InferenceOptions, type ProviderSpecs } from '../../engine.ts';
|
|
2
|
+
import { type Session } from '../../engine/session.ts';
|
|
3
|
+
import { RoleMessage } from './message.ts';
|
|
4
|
+
import { Function } from '../../function.ts';
|
|
5
|
+
import OpenAI from 'openai';
|
|
6
|
+
import { type InferenceContext } from '../../inference-context.ts';
|
|
7
|
+
import { Throttle } from '../../throttle.ts';
|
|
8
|
+
import type { MessageCodec } from './message-codec.ts';
|
|
9
|
+
import type { ToolCodec } from '../openai-responses/tool-codec.ts';
|
|
10
|
+
import type { Billing } from '../openai-responses/billing.ts';
|
|
11
|
+
import { ToolChoice } from '../../tool-choice.ts';
|
|
12
|
+
import { Engine } from "../../engine.js";
|
|
13
|
+
export declare class Transport<in out fdm extends Function.Decl.Map.Proto> implements Engine.Transport<fdm> {
|
|
14
|
+
protected client: OpenAI;
|
|
15
|
+
protected inferenceParams: InferenceOptions;
|
|
16
|
+
protected providerSpec: ProviderSpecs;
|
|
17
|
+
protected fdm: fdm;
|
|
18
|
+
protected throttle: Throttle;
|
|
19
|
+
protected toolChoice: ToolChoice;
|
|
20
|
+
protected messageCodec: MessageCodec<fdm>;
|
|
21
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
22
|
+
protected billing: Billing;
|
|
23
|
+
constructor(options: Transport.Options<fdm>);
|
|
24
|
+
protected makeParams(session: Session.From<fdm>): OpenAI.Responses.ResponseCreateParamsStreaming;
|
|
25
|
+
protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
26
|
+
fetch(wfctx: InferenceContext, session: Session.From<fdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm>>;
|
|
27
|
+
}
|
|
28
|
+
export declare namespace Transport {
|
|
29
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
30
|
+
inferenceParams: InferenceOptions;
|
|
31
|
+
providerSpec: ProviderSpecs;
|
|
32
|
+
fdm: fdm;
|
|
33
|
+
throttle: Throttle;
|
|
34
|
+
toolChoice: ToolChoice;
|
|
35
|
+
messageCodec: MessageCodec<fdm>;
|
|
36
|
+
toolCodec: ToolCodec<fdm>;
|
|
37
|
+
billing: Billing;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { RoleMessage } from "./message.js";
|
|
2
|
+
import OpenAI from 'openai';
|
|
3
|
+
import { loggers } from "../../telemetry.js";
|
|
4
|
+
import * as ToolChoiceCodec from "./tool-choice-codec.js";
|
|
5
|
+
import { Engine } from "../../engine.js";
|
|
6
|
+
import * as Undici from 'undici';
|
|
7
|
+
import assert from 'node:assert';
|
|
8
|
+
export class Transport {
|
|
9
|
+
client;
|
|
10
|
+
inferenceParams;
|
|
11
|
+
providerSpec;
|
|
12
|
+
fdm;
|
|
13
|
+
throttle;
|
|
14
|
+
toolChoice;
|
|
15
|
+
messageCodec;
|
|
16
|
+
toolCodec;
|
|
17
|
+
billing;
|
|
18
|
+
constructor(options) {
|
|
19
|
+
this.client = new OpenAI({
|
|
20
|
+
baseURL: options.providerSpec.baseUrl,
|
|
21
|
+
apiKey: options.providerSpec.apiKey,
|
|
22
|
+
fetch: Undici.fetch,
|
|
23
|
+
fetchOptions: { dispatcher: options.providerSpec.dispatcher },
|
|
24
|
+
defaultHeaders: new Headers({
|
|
25
|
+
'X-Dashscope-Session-Cache': 'enable',
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
this.inferenceParams = options.inferenceParams;
|
|
29
|
+
this.providerSpec = options.providerSpec;
|
|
30
|
+
this.fdm = options.fdm;
|
|
31
|
+
this.throttle = options.throttle;
|
|
32
|
+
this.toolChoice = options.toolChoice;
|
|
33
|
+
this.messageCodec = options.messageCodec;
|
|
34
|
+
this.toolCodec = options.toolCodec;
|
|
35
|
+
this.billing = options.billing;
|
|
36
|
+
}
|
|
37
|
+
makeParams(session) {
|
|
38
|
+
const tools = this.toolCodec.encodeFunctionDeclarationMap();
|
|
39
|
+
let input;
|
|
40
|
+
let previous_response_id = undefined;
|
|
41
|
+
let instructions = undefined;
|
|
42
|
+
const lastSecondMessage = session.chatMessages.at(-2);
|
|
43
|
+
if (lastSecondMessage instanceof RoleMessage.Ai) {
|
|
44
|
+
const lastMessage = session.chatMessages.at(-1);
|
|
45
|
+
assert(lastMessage instanceof Engine.RoleMessage.User);
|
|
46
|
+
input = this.messageCodec.encodeUserMessage(lastMessage);
|
|
47
|
+
previous_response_id = lastSecondMessage.getRaw().id;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
input = session.chatMessages.flatMap(chatMessage => this.messageCodec.encodeChatMessage(chatMessage));
|
|
51
|
+
instructions = session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
model: this.inferenceParams.model,
|
|
55
|
+
include: ['reasoning.encrypted_content'],
|
|
56
|
+
store: true,
|
|
57
|
+
stream: true,
|
|
58
|
+
input,
|
|
59
|
+
previous_response_id,
|
|
60
|
+
instructions,
|
|
61
|
+
tools: tools.length ? tools : undefined,
|
|
62
|
+
tool_choice: tools.length ? ToolChoiceCodec.encode(this.toolChoice) : undefined,
|
|
63
|
+
parallel_tool_calls: tools.length ? this.inferenceParams.parallelToolCall : undefined,
|
|
64
|
+
...this.inferenceParams.additionalOptions,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
logAiMessage(output) {
|
|
68
|
+
for (const item of output)
|
|
69
|
+
if (item.type === 'message') {
|
|
70
|
+
if (item.content.every(part => part.type === 'output_text')) { }
|
|
71
|
+
else
|
|
72
|
+
throw new SyntaxError('Refusal', { cause: output });
|
|
73
|
+
loggers.inference.info(item.content.map(part => part.text).join(''));
|
|
74
|
+
}
|
|
75
|
+
else if (item.type === 'function_call')
|
|
76
|
+
loggers.message.info(item);
|
|
77
|
+
else if (item.type === 'reasoning') { }
|
|
78
|
+
else
|
|
79
|
+
loggers.message.info(item);
|
|
80
|
+
}
|
|
81
|
+
async fetch(wfctx, session, signal) {
|
|
82
|
+
await this.throttle.requests(wfctx);
|
|
83
|
+
const params = this.makeParams(session);
|
|
84
|
+
loggers.message.debug(params);
|
|
85
|
+
let response = null;
|
|
86
|
+
const stream = await this.client.responses.create(params, { signal });
|
|
87
|
+
for await (const event of stream) {
|
|
88
|
+
loggers.stream.trace(event);
|
|
89
|
+
if (event.type === 'response.completed')
|
|
90
|
+
response = event.response;
|
|
91
|
+
else if (event.type === 'response.incomplete')
|
|
92
|
+
response = event.response;
|
|
93
|
+
else if (event.type === 'response.failed')
|
|
94
|
+
response = event.response;
|
|
95
|
+
else if (event.type === 'error')
|
|
96
|
+
throw new SyntaxError('Response stream error', { cause: event });
|
|
97
|
+
}
|
|
98
|
+
if (response) { }
|
|
99
|
+
else
|
|
100
|
+
throw new Error();
|
|
101
|
+
loggers.message.debug(response);
|
|
102
|
+
if (response.status === 'completed') { }
|
|
103
|
+
else
|
|
104
|
+
throw new SyntaxError('Abnormal response status', { cause: response });
|
|
105
|
+
if (response.usage) { }
|
|
106
|
+
else
|
|
107
|
+
throw new Error();
|
|
108
|
+
this.logAiMessage(response.output);
|
|
109
|
+
wfctx.cost?.(this.billing.charge(response.usage));
|
|
110
|
+
loggers.message.info(response.usage);
|
|
111
|
+
return this.messageCodec.decodeAiMessage(response);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/dashscope/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Engine, Middleware } from '../engine.ts';
|
|
2
|
+
import { Function } from '../function.ts';
|
|
3
|
+
import { MessageCodec } from './dashscope/message-codec.ts';
|
|
4
|
+
import { ToolCodec } from './openai-responses/tool-codec.ts';
|
|
5
|
+
import { Billing } from './openai-responses/billing.ts';
|
|
6
|
+
import * as TransportModule from './dashscope/transport.ts';
|
|
7
|
+
import { InferenceContext } from '../inference-context.ts';
|
|
8
|
+
import * as MessageModule from './dashscope/message.ts';
|
|
9
|
+
export type DashScopeEngine<fdm extends Function.Decl.Map.Proto> = DashScopeEngine.Instance<fdm>;
|
|
10
|
+
export declare namespace DashScopeEngine {
|
|
11
|
+
class Instance<in out fdm extends Function.Decl.Map.Proto> extends Engine.Instance<fdm> {
|
|
12
|
+
protected options: DashScopeEngine.Options<fdm>;
|
|
13
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
14
|
+
protected messageCodec: MessageCodec<fdm>;
|
|
15
|
+
protected billing: Billing;
|
|
16
|
+
protected transport: Transport<fdm>;
|
|
17
|
+
constructor(options: DashScopeEngine.Options<fdm>);
|
|
18
|
+
clone(): DashScopeEngine<fdm>;
|
|
19
|
+
/**
|
|
20
|
+
* @throws {@link InferenceTimeout} 推理超时
|
|
21
|
+
* @throws {@link SyntaxError} 模型抽风
|
|
22
|
+
* @throws {@link Recoverable} 模型抽风但可恢复
|
|
23
|
+
* @throws {@link TypeError} 网络故障
|
|
24
|
+
*/
|
|
25
|
+
protected infer(wfctx: InferenceContext, session: Engine.Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
26
|
+
stateless(wfctx: InferenceContext, session: Engine.Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
27
|
+
stateful(wfctx: InferenceContext, session: Engine.Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
28
|
+
useStateless(middleware: Middleware.From<fdm>): DashScopeEngine<fdm>;
|
|
29
|
+
useStateful(middleware: Middleware.From<fdm>): DashScopeEngine<fdm>;
|
|
30
|
+
}
|
|
31
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto> extends Engine.Options<fdm> {
|
|
32
|
+
}
|
|
33
|
+
const create: Engine.Create;
|
|
34
|
+
export import RoleMessage = MessageModule.RoleMessage;
|
|
35
|
+
export import Transport = TransportModule.Transport;
|
|
36
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Engine } from "../engine.js";
|
|
2
|
+
import { MessageCodec } from "./dashscope/message-codec.js";
|
|
3
|
+
import { ToolCodec } from "./openai-responses/tool-codec.js";
|
|
4
|
+
import { Billing } from "./openai-responses/billing.js";
|
|
5
|
+
import * as TransportModule from "./dashscope/transport.js";
|
|
6
|
+
import * as MessageModule from "./dashscope/message.js";
|
|
7
|
+
import OpenAI from 'openai';
|
|
8
|
+
export var DashScopeEngine;
|
|
9
|
+
(function (DashScopeEngine) {
|
|
10
|
+
class Instance extends Engine.Instance {
|
|
11
|
+
options;
|
|
12
|
+
toolCodec;
|
|
13
|
+
messageCodec;
|
|
14
|
+
billing;
|
|
15
|
+
transport;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.toolCodec = new ToolCodec({ fdm: this.fdm });
|
|
20
|
+
this.messageCodec = new MessageCodec({
|
|
21
|
+
toolCodec: this.toolCodec,
|
|
22
|
+
});
|
|
23
|
+
this.billing = new Billing({ pricing: this.pricing });
|
|
24
|
+
this.transport = new DashScopeEngine.Transport({
|
|
25
|
+
inferenceParams: this.inferenceOptions,
|
|
26
|
+
providerSpec: this.providerSpecs,
|
|
27
|
+
fdm: this.fdm,
|
|
28
|
+
throttle: this.throttle,
|
|
29
|
+
toolChoice: this.toolChoice,
|
|
30
|
+
messageCodec: this.messageCodec,
|
|
31
|
+
toolCodec: this.toolCodec,
|
|
32
|
+
billing: this.billing,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
clone() {
|
|
36
|
+
const engine = new DashScopeEngine.Instance(this.options);
|
|
37
|
+
engine.middlewaresStateless = [...this.middlewaresStateless];
|
|
38
|
+
engine.middlewaresStateful = [...this.middlewaresStateful];
|
|
39
|
+
return engine;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @throws {@link InferenceTimeout} 推理超时
|
|
43
|
+
* @throws {@link SyntaxError} 模型抽风
|
|
44
|
+
* @throws {@link Recoverable} 模型抽风但可恢复
|
|
45
|
+
* @throws {@link TypeError} 网络故障
|
|
46
|
+
*/
|
|
47
|
+
async infer(wfctx, session) {
|
|
48
|
+
try {
|
|
49
|
+
return await super.infer(wfctx, session);
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
if (e instanceof OpenAI.APIConnectionError)
|
|
53
|
+
throw new TypeError(undefined, { cause: e });
|
|
54
|
+
else
|
|
55
|
+
throw e;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async stateless(wfctx, session) {
|
|
59
|
+
return await super.stateless(wfctx, session);
|
|
60
|
+
}
|
|
61
|
+
async stateful(wfctx, session) {
|
|
62
|
+
return await super.stateful(wfctx, session);
|
|
63
|
+
}
|
|
64
|
+
useStateless(middleware) {
|
|
65
|
+
return super.useStateless(middleware);
|
|
66
|
+
}
|
|
67
|
+
useStateful(middleware) {
|
|
68
|
+
return super.useStateful(middleware);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
DashScopeEngine.Instance = Instance;
|
|
72
|
+
DashScopeEngine.create = function (options) {
|
|
73
|
+
return new Instance(options);
|
|
74
|
+
};
|
|
75
|
+
DashScopeEngine.RoleMessage = MessageModule.RoleMessage;
|
|
76
|
+
DashScopeEngine.Transport = TransportModule.Transport;
|
|
77
|
+
})(DashScopeEngine || (DashScopeEngine = {}));
|
|
78
|
+
//# sourceMappingURL=dashscope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashscope.js","sourceRoot":"","sources":["../../src/engines/dashscope.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export class MessageCodec {
|
|
|
18
18
|
else {
|
|
19
19
|
const apiParts = [];
|
|
20
20
|
for (const part of aiMessage.getParts()) {
|
|
21
|
-
if (part instanceof RoleMessage.
|
|
21
|
+
if (part instanceof RoleMessage.Part.Text) {
|
|
22
22
|
apiParts.push(Google.createPartFromText(part.text));
|
|
23
23
|
}
|
|
24
24
|
else if (part instanceof Function.Call) {
|
|
@@ -51,14 +51,18 @@ export class MessageCodec {
|
|
|
51
51
|
encodeUserMessage(userMessage) {
|
|
52
52
|
const apiParts = [];
|
|
53
53
|
for (const part of userMessage.getParts()) {
|
|
54
|
-
if (part instanceof Engine.RoleMessage.
|
|
54
|
+
if (part instanceof Engine.RoleMessage.Part.Text)
|
|
55
55
|
apiParts.push(Google.createPartFromText(part.text));
|
|
56
56
|
else if (part instanceof Function.Response) {
|
|
57
57
|
const fres = part;
|
|
58
58
|
apiParts.push(this.toolCodec.encodeFunctionResponse(fres));
|
|
59
59
|
}
|
|
60
60
|
else if (part instanceof Media.Pdf)
|
|
61
|
-
apiParts.push(Google.createPartFromBase64(part.base64,
|
|
61
|
+
apiParts.push(Google.createPartFromBase64(part.base64, String(part.mimeType), Google.PartMediaResolutionLevel.MEDIA_RESOLUTION_MEDIUM));
|
|
62
|
+
else if (part instanceof Media.Image)
|
|
63
|
+
apiParts.push(Google.createPartFromBase64(part.base64, String(part.mimeType), Google.PartMediaResolutionLevel.MEDIA_RESOLUTION_HIGH));
|
|
64
|
+
else if (part instanceof Media.Text)
|
|
65
|
+
apiParts.push(Google.createPartFromText(part.quote()));
|
|
62
66
|
else
|
|
63
67
|
throw new Error('Unknown user message part type', { cause: part });
|
|
64
68
|
}
|
|
@@ -76,7 +80,7 @@ export class MessageCodec {
|
|
|
76
80
|
const parts = [];
|
|
77
81
|
for (const part of content.parts) {
|
|
78
82
|
if (part.text)
|
|
79
|
-
parts.push(new RoleMessage.
|
|
83
|
+
parts.push(new RoleMessage.Part.Text(part.text));
|
|
80
84
|
if (part.functionCall)
|
|
81
85
|
parts.push(this.toolCodec.decodeFunctionCall(part.functionCall));
|
|
82
86
|
if (part.executableCode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/google/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,MAAM,OAAO,YAAY;IAGX,SAAS,CAAiB;IAC1B,aAAa,CAAU;IACjC,YAAmB,OAAkC;QACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC/C,CAAC;IAEM,eAAe,CAClB,SAA0C;QAE1C,IAAI,SAAS,YAAY,WAAW,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,SAAqC,CAAC;YAC9D,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;aACI,CAAC;YACF,MAAM,QAAQ,GAAuB,EAAE,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACtC,IAAI,IAAI,YAAY,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/google/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,MAAM,OAAO,YAAY;IAGX,SAAS,CAAiB;IAC1B,aAAa,CAAU;IACjC,YAAmB,OAAkC;QACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC/C,CAAC;IAEM,eAAe,CAClB,SAA0C;QAE1C,IAAI,SAAS,YAAY,WAAW,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,SAAqC,CAAC;YAC9D,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;aACI,CAAC;YACF,MAAM,QAAQ,GAAuB,EAAE,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACtC,IAAI,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,IAAI,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACvC,MAAM,KAAK,GAAG,IAA+B,CAAC;oBAC9C,IAAI,KAAK,CAAC,IAAI,YAAY,MAAM,EAAE,CAAC,CAAA,CAAC;;wBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;oBAC5D,QAAQ,CAAC,IAAI,CACT,MAAM,CAAC,0BAA0B,CAC7B,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAsC,CAC/C,CACJ,CAAC;gBACN,CAAC;;oBAAM,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAEM,kBAAkB,CACrB,YAAoD;QAEpD,OAAO,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAClC,IAAI,WAAW,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,WAAgD,CAAC;gBACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,WAAW,YAAY,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,WAA8C,CAAC;gBACjE,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;;gBACI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,iBAAiB,CACpB,WAA8C;QAE9C,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC5C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBACnD,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,IAAmC,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/D,CAAC;iBACI,IAAI,IAAI,YAAY,KAAK,CAAC,GAAG;gBAC9B,QAAQ,CAAC,IAAI,CACT,MAAM,CAAC,oBAAoB,CACvB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAClC,MAAM,CAAC,wBAAwB,CAAC,uBAAuB,CAC1D,CACJ,CAAC;iBACD,IAAI,IAAI,YAAY,KAAK,CAAC,KAAK;gBAChC,QAAQ,CAAC,IAAI,CACT,MAAM,CAAC,oBAAoB,CACvB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAClC,MAAM,CAAC,wBAAwB,CAAC,qBAAqB,CACxD,CACJ,CAAC;iBACD,IAAI,IAAI,YAAY,KAAK,CAAC,IAAI;gBAC/B,QAAQ,CAAC,IAAI,CACT,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAC1C,CAAC;;gBACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAA,CAAC;QACF,OAAO,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEM,sBAAsB,CACzB,gBAA8C;QAE9C,MAAM,KAAK,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpG,OAAO,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;IAEM,eAAe,CAClB,OAAuB;QAEvB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,YAAY;gBACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBACxD,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,EACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CACnH,CAAC,CAAC;YACP,CAAC;YACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,WAAW,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9G,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/H,CAAC;QACL,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ"}
|
|
@@ -15,7 +15,6 @@ export declare namespace RoleMessage {
|
|
|
15
15
|
namespace Ai {
|
|
16
16
|
type From<fdm extends Function.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>>;
|
|
17
17
|
namespace Part {
|
|
18
|
-
export import Text = Engine.RoleMessage.Ai.Part.Text;
|
|
19
18
|
class ExecutableCode {
|
|
20
19
|
code: string;
|
|
21
20
|
language?: string | undefined;
|
|
@@ -30,6 +29,7 @@ export declare namespace RoleMessage {
|
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
}
|
|
32
|
+
export import Part = Engine.RoleMessage.Part;
|
|
33
33
|
export import User = Engine.RoleMessage.User;
|
|
34
34
|
export import Developer = Engine.RoleMessage.Developer;
|
|
35
35
|
}
|
|
@@ -12,18 +12,18 @@ export var RoleMessage;
|
|
|
12
12
|
return this.raw;
|
|
13
13
|
}
|
|
14
14
|
allText() {
|
|
15
|
-
return this.parts.every(part => part instanceof RoleMessage.
|
|
15
|
+
return this.parts.every(part => part instanceof RoleMessage.Part.Text ||
|
|
16
16
|
part instanceof RoleMessage.Ai.Part.ExecutableCode ||
|
|
17
17
|
part instanceof RoleMessage.Ai.Part.CodeExecutionResult);
|
|
18
18
|
}
|
|
19
19
|
static encodeExecutableCodePart(part) {
|
|
20
|
-
return RoleMessage.
|
|
20
|
+
return RoleMessage.Part.Text.paragraph('```' + (part.language ?? '') + '\n' + part.code + '\n```').text;
|
|
21
21
|
}
|
|
22
22
|
static encodeCodeExecutionResultPart(part) {
|
|
23
23
|
const textParts = [];
|
|
24
24
|
if (part.output)
|
|
25
|
-
textParts.push(RoleMessage.
|
|
26
|
-
textParts.push(RoleMessage.
|
|
25
|
+
textParts.push(RoleMessage.Part.Text.paragraph('```\n' + part.output + '\n```'));
|
|
26
|
+
textParts.push(RoleMessage.Part.Text.paragraph(part.outcome));
|
|
27
27
|
return textParts.map(part => part.text).join('');
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -31,7 +31,6 @@ export var RoleMessage;
|
|
|
31
31
|
(function (Ai) {
|
|
32
32
|
let Part;
|
|
33
33
|
(function (Part) {
|
|
34
|
-
Part.Text = Engine.RoleMessage.Ai.Part.Text;
|
|
35
34
|
class ExecutableCode {
|
|
36
35
|
code;
|
|
37
36
|
language;
|
|
@@ -52,6 +51,7 @@ export var RoleMessage;
|
|
|
52
51
|
Part.CodeExecutionResult = CodeExecutionResult;
|
|
53
52
|
})(Part = Ai.Part || (Ai.Part = {}));
|
|
54
53
|
})(Ai = RoleMessage.Ai || (RoleMessage.Ai = {}));
|
|
54
|
+
RoleMessage.Part = Engine.RoleMessage.Part;
|
|
55
55
|
RoleMessage.User = Engine.RoleMessage.User;
|
|
56
56
|
RoleMessage.Developer = Engine.RoleMessage.Developer;
|
|
57
57
|
})(RoleMessage || (RoleMessage = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/google/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/google/message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,CA+D3B;AA/DD,WAAiB,WAAW;IAExB,MAAa,EAEX,SAAQ,MAAM,CAAC,WAAW,CAAC,EAAO;QAIlB;QAFd,YACI,KAAgB,EACN,GAAmB;YAE7B,KAAK,CAAC,KAAK,CAAC,CAAC;YAFH,QAAG,GAAH,GAAG,CAAgB;QAGjC,CAAC;QAEM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;QACe,OAAO;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CACnB,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI;gBACzC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc;gBAClD,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAC9D,CAAC;QACN,CAAC;QACM,MAAM,CAAC,wBAAwB,CAAC,IAAwC;YAC3E,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAClC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAC7D,CAAC,IAAI,CAAC;QACX,CAAC;QACM,MAAM,CAAC,6BAA6B,CAAC,IAA6C;YACrF,MAAM,SAAS,GAA4B,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS,CAAC,IAAI,CAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAC3B,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAClC,CACJ,CAAC;YACF,SAAS,CAAC,IAAI,CACV,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAChD,CAAC;YACF,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;KACJ;IAtCY,cAAE,KAsCd,CAAA;IACD,WAAiB,EAAE;QAKf,IAAiB,IAAI,CAWpB;QAXD,WAAiB,IAAI;YAEjB,MAAa,cAAc;gBAEG;gBAAqB;gBAA/C,YAA0B,IAAY,EAAS,QAAiB;oBAAtC,SAAI,GAAJ,IAAI,CAAQ;oBAAS,aAAQ,GAAR,QAAQ,CAAS;gBAAG,CAAC;aACvE;YAHY,mBAAc,iBAG1B,CAAA;YAED,MAAa,mBAAmB;gBAEF;gBAAwB;gBAAlD,YAA0B,OAAe,EAAS,MAAe;oBAAvC,YAAO,GAAP,OAAO,CAAQ;oBAAS,WAAM,GAAN,MAAM,CAAS;gBAAG,CAAC;aACxE;YAHY,wBAAmB,sBAG/B,CAAA;QACL,CAAC,EAXgB,IAAI,GAAJ,OAAI,KAAJ,OAAI,QAWpB;IACL,CAAC,EAjBgB,EAAE,GAAF,cAAE,KAAF,cAAE,QAiBlB;IAEa,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,qBAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3D,CAAC,EA/DgB,WAAW,KAAX,WAAW,QA+D3B"}
|
|
@@ -3,7 +3,7 @@ import { Function } from '../function.ts';
|
|
|
3
3
|
import { MessageCodec } from './google/message-codec.ts';
|
|
4
4
|
import { ToolCodec } from './google/tool-codec.ts';
|
|
5
5
|
import { Billing } from './google/billing.ts';
|
|
6
|
-
import
|
|
6
|
+
import * as TransportModule from './google/transport.ts';
|
|
7
7
|
import { InferenceContext } from '../inference-context.ts';
|
|
8
8
|
import * as MessageModule from './google/message.ts';
|
|
9
9
|
export type GoogleEngine<fdm extends Function.Decl.Map.Proto> = GoogleEngine.Instance<fdm>;
|
|
@@ -37,4 +37,5 @@ export declare namespace GoogleEngine {
|
|
|
37
37
|
}
|
|
38
38
|
const create: Engine.Create;
|
|
39
39
|
export import RoleMessage = MessageModule.RoleMessage;
|
|
40
|
+
export import Transport = TransportModule.Transport;
|
|
40
41
|
}
|