@aituber-onair/chat 0.8.0 → 0.9.0

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.
Files changed (55) hide show
  1. package/README.ja.md +18 -2
  2. package/README.md +18 -2
  3. package/dist/cjs/constants/index.d.ts +1 -0
  4. package/dist/cjs/constants/index.d.ts.map +1 -1
  5. package/dist/cjs/constants/index.js +1 -0
  6. package/dist/cjs/constants/index.js.map +1 -1
  7. package/dist/cjs/constants/zai.d.ts +18 -0
  8. package/dist/cjs/constants/zai.d.ts.map +1 -0
  9. package/dist/cjs/constants/zai.js +33 -0
  10. package/dist/cjs/constants/zai.js.map +1 -0
  11. package/dist/cjs/index.d.ts +2 -0
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +6 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
  16. package/dist/cjs/services/ChatServiceFactory.js +3 -0
  17. package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
  18. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +10 -0
  19. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  20. package/dist/cjs/services/providers/zai/ZAIChatService.d.ts +73 -0
  21. package/dist/cjs/services/providers/zai/ZAIChatService.d.ts.map +1 -0
  22. package/dist/cjs/services/providers/zai/ZAIChatService.js +292 -0
  23. package/dist/cjs/services/providers/zai/ZAIChatService.js.map +1 -0
  24. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts +36 -0
  25. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -0
  26. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +73 -0
  27. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -0
  28. package/dist/esm/constants/index.d.ts +1 -0
  29. package/dist/esm/constants/index.d.ts.map +1 -1
  30. package/dist/esm/constants/index.js +1 -0
  31. package/dist/esm/constants/index.js.map +1 -1
  32. package/dist/esm/constants/zai.d.ts +18 -0
  33. package/dist/esm/constants/zai.d.ts.map +1 -0
  34. package/dist/esm/constants/zai.js +28 -0
  35. package/dist/esm/constants/zai.js.map +1 -0
  36. package/dist/esm/index.d.ts +2 -0
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +3 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
  41. package/dist/esm/services/ChatServiceFactory.js +3 -0
  42. package/dist/esm/services/ChatServiceFactory.js.map +1 -1
  43. package/dist/esm/services/providers/ChatServiceProvider.d.ts +10 -0
  44. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  45. package/dist/esm/services/providers/zai/ZAIChatService.d.ts +73 -0
  46. package/dist/esm/services/providers/zai/ZAIChatService.d.ts.map +1 -0
  47. package/dist/esm/services/providers/zai/ZAIChatService.js +288 -0
  48. package/dist/esm/services/providers/zai/ZAIChatService.js.map +1 -0
  49. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts +36 -0
  50. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -0
  51. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +69 -0
  52. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -0
  53. package/dist/umd/aituber-onair-chat.js +380 -0
  54. package/dist/umd/aituber-onair-chat.min.js +11 -9
  55. package/package.json +1 -1
@@ -0,0 +1,73 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { Message, MessageWithVision } from '../../../types';
3
+ import { ToolDefinition, ToolChatCompletion } from '../../../types';
4
+ import { ChatResponseLength } from '../../../constants/chat';
5
+ /**
6
+ * Z.ai implementation of ChatService (OpenAI-compatible Chat Completions)
7
+ */
8
+ export declare class ZAIChatService implements ChatService {
9
+ /** Provider name */
10
+ readonly provider: string;
11
+ private apiKey;
12
+ private model;
13
+ private visionModel;
14
+ private tools;
15
+ private endpoint;
16
+ private responseLength?;
17
+ private responseFormat?;
18
+ private thinking?;
19
+ /**
20
+ * Constructor
21
+ * @param apiKey Z.ai API key
22
+ * @param model Name of the model to use
23
+ * @param visionModel Name of the vision model
24
+ */
25
+ constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], endpoint?: string, responseLength?: ChatResponseLength, responseFormat?: {
26
+ type: 'text' | 'json_object' | 'json_schema';
27
+ json_schema?: any;
28
+ }, thinking?: {
29
+ type: 'enabled' | 'disabled';
30
+ clear_thinking?: boolean;
31
+ });
32
+ /**
33
+ * Get the current model name
34
+ */
35
+ getModel(): string;
36
+ /**
37
+ * Get the current vision model name
38
+ */
39
+ getVisionModel(): string;
40
+ /**
41
+ * Process chat messages
42
+ */
43
+ processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
44
+ /**
45
+ * Process chat messages with images
46
+ */
47
+ processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
48
+ /**
49
+ * Process chat messages with tools (text only)
50
+ */
51
+ chatOnce(messages: Message[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
52
+ /**
53
+ * Process vision chat messages with tools
54
+ */
55
+ visionChatOnce(messages: MessageWithVision[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
56
+ private parseResponse;
57
+ private callZAI;
58
+ /**
59
+ * Build request body (OpenAI-compatible Chat Completions)
60
+ */
61
+ private buildRequestBody;
62
+ private buildToolsDefinition;
63
+ private handleStream;
64
+ /**
65
+ * Parse streaming response with tool support
66
+ */
67
+ private parseStream;
68
+ /**
69
+ * Parse non-streaming response
70
+ */
71
+ private parseOneShot;
72
+ }
73
+ //# sourceMappingURL=ZAIChatService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZAIChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,cAAc,EAEd,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAIjC;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAS;IAElC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAC,CAAqB;IAC5C,OAAO,CAAC,cAAc,CAAC,CAGrB;IACF,OAAO,CAAC,QAAQ,CAAC,CAGf;IAEF;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAsB,EAC7B,WAAW,GAAE,MAA6B,EAC1C,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAA0C,EACpD,cAAc,CAAC,EAAE,kBAAkB,EACnC,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;QAC7C,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,EACD,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;IAaH;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACzC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IA2BhB;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACzC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,GAAE,OAAc,EACtB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAK9B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,MAAM,GAAE,OAAe,EACvB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;YAgBhB,aAAa;YAUb,OAAO;IAerB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,oBAAoB;YAYd,YAAY;IAwC1B;;OAEG;YACW,WAAW;IAyEzB;;OAEG;IACH,OAAO,CAAC,YAAY;CAwBrB"}
@@ -0,0 +1,288 @@
1
+ import { ENDPOINT_ZAI_CHAT_COMPLETIONS_API, MODEL_GLM_4_7, MODEL_GLM_4_6V_FLASH, isZaiToolStreamModel, isZaiVisionModel, } from '../../../constants/zai';
2
+ import { getMaxTokensForResponseLength, } from '../../../constants/chat';
3
+ import { StreamTextAccumulator } from '../../../utils/streamTextAccumulator';
4
+ import { ChatServiceHttpClient } from '../../../utils/chatServiceHttpClient';
5
+ /**
6
+ * Z.ai implementation of ChatService (OpenAI-compatible Chat Completions)
7
+ */
8
+ export class ZAIChatService {
9
+ /**
10
+ * Constructor
11
+ * @param apiKey Z.ai API key
12
+ * @param model Name of the model to use
13
+ * @param visionModel Name of the vision model
14
+ */
15
+ constructor(apiKey, model = MODEL_GLM_4_7, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
16
+ /** Provider name */
17
+ this.provider = 'zai';
18
+ this.apiKey = apiKey;
19
+ this.model = model;
20
+ this.tools = tools || [];
21
+ this.endpoint = endpoint;
22
+ this.responseLength = responseLength;
23
+ this.responseFormat = responseFormat;
24
+ this.thinking = thinking ?? { type: 'disabled' };
25
+ this.visionModel = visionModel;
26
+ }
27
+ /**
28
+ * Get the current model name
29
+ */
30
+ getModel() {
31
+ return this.model;
32
+ }
33
+ /**
34
+ * Get the current vision model name
35
+ */
36
+ getVisionModel() {
37
+ return this.visionModel;
38
+ }
39
+ /**
40
+ * Process chat messages
41
+ */
42
+ async processChat(messages, onPartialResponse, onCompleteResponse) {
43
+ // Not using tools
44
+ if (this.tools.length === 0) {
45
+ const res = await this.callZAI(messages, this.model, true);
46
+ const full = await this.handleStream(res, onPartialResponse);
47
+ await onCompleteResponse(full);
48
+ return;
49
+ }
50
+ // Using tools
51
+ const { blocks, stop_reason } = await this.chatOnce(messages);
52
+ if (stop_reason === 'end') {
53
+ const full = blocks
54
+ .filter((b) => b.type === 'text')
55
+ .map((b) => b.text)
56
+ .join('');
57
+ await onCompleteResponse(full);
58
+ return;
59
+ }
60
+ throw new Error('processChat received tool_calls. ' +
61
+ 'ChatProcessor must use chatOnce() loop when tools are enabled.');
62
+ }
63
+ /**
64
+ * Process chat messages with images
65
+ */
66
+ async processVisionChat(messages, onPartialResponse, onCompleteResponse) {
67
+ if (!isZaiVisionModel(this.visionModel)) {
68
+ throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
69
+ }
70
+ // Not using tools
71
+ if (this.tools.length === 0) {
72
+ const res = await this.callZAI(messages, this.visionModel, true);
73
+ const full = await this.handleStream(res, onPartialResponse);
74
+ await onCompleteResponse(full);
75
+ return;
76
+ }
77
+ // Using tools
78
+ const { blocks, stop_reason } = await this.visionChatOnce(messages, true, onPartialResponse);
79
+ if (stop_reason === 'end') {
80
+ const full = blocks
81
+ .filter((b) => b.type === 'text')
82
+ .map((b) => b.text)
83
+ .join('');
84
+ await onCompleteResponse(full);
85
+ return;
86
+ }
87
+ throw new Error('processVisionChat received tool_calls. ' +
88
+ 'ChatProcessor must use visionChatOnce() loop when tools are enabled.');
89
+ }
90
+ /**
91
+ * Process chat messages with tools (text only)
92
+ */
93
+ async chatOnce(messages, stream = true, onPartialResponse = () => { }, maxTokens) {
94
+ const res = await this.callZAI(messages, this.model, stream, maxTokens);
95
+ return this.parseResponse(res, stream, onPartialResponse);
96
+ }
97
+ /**
98
+ * Process vision chat messages with tools
99
+ */
100
+ async visionChatOnce(messages, stream = false, onPartialResponse = () => { }, maxTokens) {
101
+ if (!isZaiVisionModel(this.visionModel)) {
102
+ throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
103
+ }
104
+ const res = await this.callZAI(messages, this.visionModel, stream, maxTokens);
105
+ return this.parseResponse(res, stream, onPartialResponse);
106
+ }
107
+ async parseResponse(res, stream, onPartialResponse) {
108
+ return stream
109
+ ? this.parseStream(res, onPartialResponse)
110
+ : this.parseOneShot(await res.json());
111
+ }
112
+ async callZAI(messages, model, stream = false, maxTokens) {
113
+ const body = this.buildRequestBody(messages, model, stream, maxTokens);
114
+ const res = await ChatServiceHttpClient.post(this.endpoint, body, {
115
+ Authorization: `Bearer ${this.apiKey}`,
116
+ });
117
+ return res;
118
+ }
119
+ /**
120
+ * Build request body (OpenAI-compatible Chat Completions)
121
+ */
122
+ buildRequestBody(messages, model, stream, maxTokens) {
123
+ const body = {
124
+ model,
125
+ stream,
126
+ messages,
127
+ };
128
+ const tokenLimit = maxTokens !== undefined
129
+ ? maxTokens
130
+ : getMaxTokensForResponseLength(this.responseLength);
131
+ if (tokenLimit !== undefined) {
132
+ body.max_tokens = tokenLimit;
133
+ }
134
+ if (this.responseFormat) {
135
+ body.response_format = this.responseFormat;
136
+ }
137
+ if (this.thinking) {
138
+ body.thinking = this.thinking;
139
+ }
140
+ const tools = this.buildToolsDefinition();
141
+ if (tools.length > 0) {
142
+ body.tools = tools;
143
+ body.tool_choice = 'auto';
144
+ if (stream && isZaiToolStreamModel(model)) {
145
+ body.tool_stream = true;
146
+ }
147
+ }
148
+ return body;
149
+ }
150
+ buildToolsDefinition() {
151
+ if (this.tools.length === 0)
152
+ return [];
153
+ return this.tools.map((t) => ({
154
+ type: 'function',
155
+ function: {
156
+ name: t.name,
157
+ description: t.description,
158
+ parameters: t.parameters,
159
+ },
160
+ }));
161
+ }
162
+ async handleStream(res, onPartial) {
163
+ const reader = res.body.getReader();
164
+ const dec = new TextDecoder();
165
+ let full = '';
166
+ let buf = '';
167
+ while (true) {
168
+ const { done, value } = await reader.read();
169
+ if (done)
170
+ break;
171
+ buf += dec.decode(value, { stream: true });
172
+ const lines = buf.split('\n');
173
+ buf = lines.pop() || '';
174
+ for (const line of lines) {
175
+ const trimmedLine = line.trim();
176
+ if (!trimmedLine || trimmedLine.startsWith(':'))
177
+ continue;
178
+ if (!trimmedLine.startsWith('data:'))
179
+ continue;
180
+ const payload = trimmedLine.slice(5).trim();
181
+ if (payload === '[DONE]') {
182
+ break;
183
+ }
184
+ try {
185
+ const json = JSON.parse(payload);
186
+ const content = json.choices?.[0]?.delta?.content || '';
187
+ if (content) {
188
+ onPartial(content);
189
+ full += content;
190
+ }
191
+ }
192
+ catch (e) {
193
+ console.debug('Failed to parse SSE data:', payload);
194
+ }
195
+ }
196
+ }
197
+ return full;
198
+ }
199
+ /**
200
+ * Parse streaming response with tool support
201
+ */
202
+ async parseStream(res, onPartial) {
203
+ const reader = res.body.getReader();
204
+ const dec = new TextDecoder();
205
+ const textBlocks = [];
206
+ const toolCallsMap = new Map();
207
+ let buf = '';
208
+ while (true) {
209
+ const { done, value } = await reader.read();
210
+ if (done)
211
+ break;
212
+ buf += dec.decode(value, { stream: true });
213
+ const lines = buf.split('\n');
214
+ buf = lines.pop() || '';
215
+ for (const line of lines) {
216
+ const trimmedLine = line.trim();
217
+ if (!trimmedLine || trimmedLine.startsWith(':'))
218
+ continue;
219
+ if (!trimmedLine.startsWith('data:'))
220
+ continue;
221
+ const payload = trimmedLine.slice(5).trim();
222
+ if (payload === '[DONE]') {
223
+ break;
224
+ }
225
+ try {
226
+ const json = JSON.parse(payload);
227
+ const delta = json.choices?.[0]?.delta;
228
+ if (delta?.content) {
229
+ onPartial(delta.content);
230
+ StreamTextAccumulator.append(textBlocks, delta.content);
231
+ }
232
+ if (delta?.tool_calls) {
233
+ delta.tool_calls.forEach((c) => {
234
+ const entry = toolCallsMap.get(c.index) ?? {
235
+ id: c.id,
236
+ name: c.function?.name,
237
+ args: '',
238
+ };
239
+ entry.args += c.function?.arguments || '';
240
+ toolCallsMap.set(c.index, entry);
241
+ });
242
+ }
243
+ }
244
+ catch (e) {
245
+ console.debug('Failed to parse SSE data:', payload);
246
+ }
247
+ }
248
+ }
249
+ const toolBlocks = Array.from(toolCallsMap.entries())
250
+ .sort((a, b) => a[0] - b[0])
251
+ .map(([_, e]) => ({
252
+ type: 'tool_use',
253
+ id: e.id,
254
+ name: e.name,
255
+ input: JSON.parse(e.args || '{}'),
256
+ }));
257
+ const blocks = [...textBlocks, ...toolBlocks];
258
+ return {
259
+ blocks,
260
+ stop_reason: toolBlocks.length ? 'tool_use' : 'end',
261
+ };
262
+ }
263
+ /**
264
+ * Parse non-streaming response
265
+ */
266
+ parseOneShot(data) {
267
+ const choice = data.choices?.[0];
268
+ const blocks = [];
269
+ if (choice?.message?.tool_calls?.length) {
270
+ choice.message.tool_calls.forEach((c) => blocks.push({
271
+ type: 'tool_use',
272
+ id: c.id,
273
+ name: c.function?.name,
274
+ input: JSON.parse(c.function?.arguments || '{}'),
275
+ }));
276
+ }
277
+ else if (choice?.message?.content) {
278
+ blocks.push({ type: 'text', text: choice.message.content });
279
+ }
280
+ return {
281
+ blocks,
282
+ stop_reason: blocks.some((b) => b.type === 'tool_use')
283
+ ? 'tool_use'
284
+ : 'end',
285
+ };
286
+ }
287
+ }
288
+ //# sourceMappingURL=ZAIChatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { ChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
3
+ /**
4
+ * Z.ai API provider implementation
5
+ */
6
+ export declare class ZAIChatServiceProvider implements ChatServiceProvider {
7
+ /**
8
+ * Create a chat service instance
9
+ */
10
+ createChatService(options: ChatServiceOptions): ChatService;
11
+ /**
12
+ * Get the provider name
13
+ */
14
+ getProviderName(): string;
15
+ /**
16
+ * Get the list of supported models
17
+ */
18
+ getSupportedModels(): string[];
19
+ /**
20
+ * Get the default model
21
+ */
22
+ getDefaultModel(): string;
23
+ /**
24
+ * Get the default vision model
25
+ */
26
+ private getDefaultVisionModel;
27
+ /**
28
+ * Check if this provider supports vision
29
+ */
30
+ supportsVision(): boolean;
31
+ /**
32
+ * Check if a specific model supports vision capabilities
33
+ */
34
+ supportsVisionForModel(model: string): boolean;
35
+ }
36
+ //# sourceMappingURL=ZAIChatServiceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW;IAgC3D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAY9B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAG/C"}
@@ -0,0 +1,69 @@
1
+ import { ENDPOINT_ZAI_CHAT_COMPLETIONS_API, MODEL_GLM_4_7, MODEL_GLM_4_7_FLASHX, MODEL_GLM_4_7_FLASH, MODEL_GLM_4_6, MODEL_GLM_4_6V, MODEL_GLM_4_6V_FLASHX, MODEL_GLM_4_6V_FLASH, isZaiVisionModel, } from '../../../constants/zai';
2
+ import { ZAIChatService } from './ZAIChatService';
3
+ /**
4
+ * Z.ai API provider implementation
5
+ */
6
+ export class ZAIChatServiceProvider {
7
+ /**
8
+ * Create a chat service instance
9
+ */
10
+ createChatService(options) {
11
+ const model = options.model || this.getDefaultModel();
12
+ const visionModel = options.visionModel ||
13
+ (this.supportsVisionForModel(model)
14
+ ? model
15
+ : this.getDefaultVisionModel());
16
+ if (options.visionModel &&
17
+ !this.supportsVisionForModel(options.visionModel)) {
18
+ throw new Error(`Model ${options.visionModel} does not support vision capabilities.`);
19
+ }
20
+ const tools = options.tools;
21
+ const thinking = options.thinking ?? { type: 'disabled' };
22
+ return new ZAIChatService(options.apiKey, model, visionModel, tools, options.endpoint || ENDPOINT_ZAI_CHAT_COMPLETIONS_API, options.responseLength, options.responseFormat, thinking);
23
+ }
24
+ /**
25
+ * Get the provider name
26
+ */
27
+ getProviderName() {
28
+ return 'zai';
29
+ }
30
+ /**
31
+ * Get the list of supported models
32
+ */
33
+ getSupportedModels() {
34
+ return [
35
+ MODEL_GLM_4_7,
36
+ MODEL_GLM_4_7_FLASHX,
37
+ MODEL_GLM_4_7_FLASH,
38
+ MODEL_GLM_4_6,
39
+ MODEL_GLM_4_6V,
40
+ MODEL_GLM_4_6V_FLASHX,
41
+ MODEL_GLM_4_6V_FLASH,
42
+ ];
43
+ }
44
+ /**
45
+ * Get the default model
46
+ */
47
+ getDefaultModel() {
48
+ return MODEL_GLM_4_7;
49
+ }
50
+ /**
51
+ * Get the default vision model
52
+ */
53
+ getDefaultVisionModel() {
54
+ return MODEL_GLM_4_6V_FLASH;
55
+ }
56
+ /**
57
+ * Check if this provider supports vision
58
+ */
59
+ supportsVision() {
60
+ return true;
61
+ }
62
+ /**
63
+ * Check if a specific model supports vision capabilities
64
+ */
65
+ supportsVisionForModel(model) {
66
+ return isZaiVisionModel(model);
67
+ }
68
+ }
69
+ //# sourceMappingURL=ZAIChatServiceProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,iBAAiB,CAAC,OAA2B;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW;YACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;gBACjC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAEpC,IACE,OAAO,CAAC,WAAW;YACnB,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,EACjD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,SAAS,OAAO,CAAC,WAAW,wCAAwC,CACrE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,UAAmB,EAAE,CAAC;QAEnE,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,IAAI,iCAAiC,EACrD,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,cAAc,EACtB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,aAAa;YACb,oBAAoB;YACpB,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACF"}