@aituber-onair/chat 0.21.2 → 0.23.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.
- package/README.ja.md +63 -3
- package/README.md +64 -3
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +1 -0
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/xai.d.ts +11 -0
- package/dist/cjs/constants/xai.d.ts.map +1 -0
- package/dist/cjs/constants/xai.js +24 -0
- package/dist/cjs/constants/xai.js.map +1 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts +9 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +25 -0
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts +20 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts +3 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +7 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.d.ts +3 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js +7 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/index.d.ts +2 -1
- package/dist/cjs/services/providers/index.d.ts.map +1 -1
- package/dist/cjs/services/providers/index.js +2 -0
- package/dist/cjs/services/providers/index.js.map +1 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts +3 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js +7 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts +3 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js +7 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts +4 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js +10 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +3 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +9 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatService.d.ts +65 -0
- package/dist/cjs/services/providers/xai/XAIChatService.d.ts.map +1 -0
- package/dist/cjs/services/providers/xai/XAIChatService.js +150 -0
- package/dist/cjs/services/providers/xai/XAIChatService.js.map +1 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts +38 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +76 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -0
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts +3 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +7 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.d.ts.map +1 -1
- package/dist/esm/constants/index.js +1 -0
- package/dist/esm/constants/index.js.map +1 -1
- package/dist/esm/constants/xai.d.ts +11 -0
- package/dist/esm/constants/xai.d.ts.map +1 -0
- package/dist/esm/constants/xai.js +20 -0
- package/dist/esm/constants/xai.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/ChatServiceFactory.d.ts +9 -1
- package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +25 -0
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts +20 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts +3 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +7 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.d.ts +3 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js +7 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/index.d.ts +2 -1
- package/dist/esm/services/providers/index.d.ts.map +1 -1
- package/dist/esm/services/providers/index.js +2 -0
- package/dist/esm/services/providers/index.js.map +1 -1
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts +3 -1
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js +7 -1
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts +3 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js +7 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts +4 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js +10 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +3 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +9 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatService.d.ts +65 -0
- package/dist/esm/services/providers/xai/XAIChatService.d.ts.map +1 -0
- package/dist/esm/services/providers/xai/XAIChatService.js +146 -0
- package/dist/esm/services/providers/xai/XAIChatService.js.map +1 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts +38 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +72 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -0
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts +3 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +7 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
- package/dist/umd/aituber-onair-chat.js +320 -7
- package/dist/umd/aituber-onair-chat.min.js +6 -6
- package/package.json +1 -1
|
@@ -54,7 +54,10 @@ export class KimiChatServiceProvider {
|
|
|
54
54
|
* Check if this provider supports vision
|
|
55
55
|
*/
|
|
56
56
|
supportsVision() {
|
|
57
|
-
return
|
|
57
|
+
return this.getVisionSupportLevel() !== 'unsupported';
|
|
58
|
+
}
|
|
59
|
+
getVisionSupportLevel() {
|
|
60
|
+
return 'supported';
|
|
58
61
|
}
|
|
59
62
|
/**
|
|
60
63
|
* Check if a specific model supports vision capabilities
|
|
@@ -62,6 +65,9 @@ export class KimiChatServiceProvider {
|
|
|
62
65
|
supportsVisionForModel(model) {
|
|
63
66
|
return isKimiVisionModel(model);
|
|
64
67
|
}
|
|
68
|
+
getVisionSupportLevelForModel(model) {
|
|
69
|
+
return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
|
|
70
|
+
}
|
|
65
71
|
resolveEndpoint(options) {
|
|
66
72
|
if (options.endpoint) {
|
|
67
73
|
return this.normalizeEndpoint(options.endpoint);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,eAAe,EACf,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"KimiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChatService } from '../../ChatService';
|
|
2
|
-
import { OpenAIChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
|
|
2
|
+
import { OpenAIChatServiceOptions, ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
|
|
3
3
|
/**
|
|
4
4
|
* OpenAI API provider implementation
|
|
5
5
|
*/
|
|
@@ -30,12 +30,14 @@ export declare class OpenAIChatServiceProvider implements ChatServiceProvider<Op
|
|
|
30
30
|
* @returns Vision support status (true)
|
|
31
31
|
*/
|
|
32
32
|
supportsVision(): boolean;
|
|
33
|
+
getVisionSupportLevel(): VisionSupportLevel;
|
|
33
34
|
/**
|
|
34
35
|
* Check if a specific model supports vision capabilities
|
|
35
36
|
* @param model The model name to check
|
|
36
37
|
* @returns True if the model supports vision, false otherwise
|
|
37
38
|
*/
|
|
38
39
|
supportsVisionForModel(model: string): boolean;
|
|
40
|
+
getVisionSupportLevelForModel(model: string): VisionSupportLevel;
|
|
39
41
|
/**
|
|
40
42
|
* Apply GPT-5 specific optimizations to options
|
|
41
43
|
* @param options Original chat service options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"OpenAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,yBACX,YAAW,mBAAmB,CAAC,wBAAwB,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;IAwDjE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAqB9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;CA0BjC"}
|
|
@@ -92,7 +92,10 @@ export class OpenAIChatServiceProvider {
|
|
|
92
92
|
* @returns Vision support status (true)
|
|
93
93
|
*/
|
|
94
94
|
supportsVision() {
|
|
95
|
-
return
|
|
95
|
+
return this.getVisionSupportLevel() !== 'unsupported';
|
|
96
|
+
}
|
|
97
|
+
getVisionSupportLevel() {
|
|
98
|
+
return 'supported';
|
|
96
99
|
}
|
|
97
100
|
/**
|
|
98
101
|
* Check if a specific model supports vision capabilities
|
|
@@ -102,6 +105,9 @@ export class OpenAIChatServiceProvider {
|
|
|
102
105
|
supportsVisionForModel(model) {
|
|
103
106
|
return VISION_SUPPORTED_MODELS.includes(model);
|
|
104
107
|
}
|
|
108
|
+
getVisionSupportLevelForModel(model) {
|
|
109
|
+
return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
|
|
110
|
+
}
|
|
105
111
|
/**
|
|
106
112
|
* Apply GPT-5 specific optimizations to options
|
|
107
113
|
* @param options Original chat service options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,QAAQ,EACR,uBAAuB,EACvB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,qCAAqC,GAEtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChatService } from '../../ChatService';
|
|
2
|
-
import { ChatServiceProvider, OpenAICompatibleChatServiceOptions } from '../ChatServiceProvider';
|
|
2
|
+
import { ChatServiceProvider, OpenAICompatibleChatServiceOptions, VisionSupportLevel } from '../ChatServiceProvider';
|
|
3
3
|
/**
|
|
4
4
|
* OpenAI-compatible provider implementation.
|
|
5
5
|
*
|
|
@@ -15,6 +15,9 @@ export declare class OpenAICompatibleChatServiceProvider implements ChatServiceP
|
|
|
15
15
|
*/
|
|
16
16
|
getSupportedModels(): string[];
|
|
17
17
|
supportsVision(): boolean;
|
|
18
|
+
getVisionSupportLevel(): VisionSupportLevel;
|
|
19
|
+
supportsVisionForModel(_model: string): boolean;
|
|
20
|
+
getVisionSupportLevelForModel(_model: string): VisionSupportLevel;
|
|
18
21
|
getDefaultModel(): string;
|
|
19
22
|
private validateRequiredOptions;
|
|
20
23
|
}
|
package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompatibleChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,kCAAkC,
|
|
1
|
+
{"version":3,"file":"OpenAICompatibleChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,kCAAkC,EAClC,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;GAMG;AACH,qBAAa,mCACX,YAAW,mBAAmB,CAAC,kCAAkC,CAAC;IAElE,iBAAiB,CAAC,OAAO,EAAE,kCAAkC,GAAG,WAAW;IAkB3E,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI/C,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB;IAIjE,eAAe,IAAI,MAAM;IAIzB,OAAO,CAAC,uBAAuB;CAmChC"}
|
|
@@ -21,7 +21,16 @@ export class OpenAICompatibleChatServiceProvider {
|
|
|
21
21
|
return [];
|
|
22
22
|
}
|
|
23
23
|
supportsVision() {
|
|
24
|
-
return
|
|
24
|
+
return this.getVisionSupportLevel() !== 'unsupported';
|
|
25
|
+
}
|
|
26
|
+
getVisionSupportLevel() {
|
|
27
|
+
return 'unknown';
|
|
28
|
+
}
|
|
29
|
+
supportsVisionForModel(_model) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
getVisionSupportLevelForModel(_model) {
|
|
33
|
+
return 'unknown';
|
|
25
34
|
}
|
|
26
35
|
getDefaultModel() {
|
|
27
36
|
return 'local-model';
|
package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAICompatibleChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenAICompatibleChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,OAAO,mCAAmC;IAG9C,iBAAiB,CAAC,OAA2C;QAC3D,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAC5B,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,EACpC,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,QAAQ,EAChB,EAAE,EACF,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,sBAAsB,EAC9B,IAAI,CAAC,eAAe,EAAE,EACtB,KAAK,CACN,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,sBAAsB,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAA6B,CAAC,MAAc;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,uBAAuB,CAC7B,OAA2C;QAE3C,IAAK,OAAoC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,WAAgB,CAAC;QACrB,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChatService } from '../../ChatService';
|
|
2
|
-
import { OpenRouterChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
|
|
2
|
+
import { OpenRouterChatServiceOptions, ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
|
|
3
3
|
/**
|
|
4
4
|
* OpenRouter API provider implementation
|
|
5
5
|
* Provides access to multiple AI models through OpenRouter's unified API
|
|
@@ -32,12 +32,14 @@ export declare class OpenRouterChatServiceProvider implements ChatServiceProvide
|
|
|
32
32
|
* @returns Vision support status (false - gpt-oss-20b does not support vision)
|
|
33
33
|
*/
|
|
34
34
|
supportsVision(): boolean;
|
|
35
|
+
getVisionSupportLevel(): VisionSupportLevel;
|
|
35
36
|
/**
|
|
36
37
|
* Check if a specific model supports vision capabilities
|
|
37
38
|
* @param model The model name to check
|
|
38
39
|
* @returns True if the model supports vision, false otherwise
|
|
39
40
|
*/
|
|
40
41
|
supportsVisionForModel(model: string): boolean;
|
|
42
|
+
getVisionSupportLevelForModel(model: string): VisionSupportLevel;
|
|
41
43
|
/**
|
|
42
44
|
* Get list of free tier models
|
|
43
45
|
* @returns Array of free model names
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IA+B9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAQ3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|
|
@@ -83,7 +83,12 @@ export class OpenRouterChatServiceProvider {
|
|
|
83
83
|
* @returns Vision support status (false - gpt-oss-20b does not support vision)
|
|
84
84
|
*/
|
|
85
85
|
supportsVision() {
|
|
86
|
-
return this.
|
|
86
|
+
return this.getVisionSupportLevel() !== 'unsupported';
|
|
87
|
+
}
|
|
88
|
+
getVisionSupportLevel() {
|
|
89
|
+
return this.getSupportedModels().some((model) => this.supportsVisionForModel(model))
|
|
90
|
+
? 'supported'
|
|
91
|
+
: 'unsupported';
|
|
87
92
|
}
|
|
88
93
|
/**
|
|
89
94
|
* Check if a specific model supports vision capabilities
|
|
@@ -93,6 +98,9 @@ export class OpenRouterChatServiceProvider {
|
|
|
93
98
|
supportsVisionForModel(model) {
|
|
94
99
|
return isOpenRouterVisionModel(model);
|
|
95
100
|
}
|
|
101
|
+
getVisionSupportLevelForModel(model) {
|
|
102
|
+
return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
|
|
103
|
+
}
|
|
96
104
|
/**
|
|
97
105
|
* Get list of free tier models
|
|
98
106
|
* @returns Array of free model names
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,kDAAkD,EAClD,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
* xAI implementation of ChatService (OpenAI-compatible Chat Completions)
|
|
7
|
+
*/
|
|
8
|
+
export declare class XAIChatService 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
|
+
/**
|
|
18
|
+
* Constructor
|
|
19
|
+
* @param apiKey xAI API key
|
|
20
|
+
* @param model Name of the model to use
|
|
21
|
+
* @param visionModel Name of the vision model
|
|
22
|
+
*/
|
|
23
|
+
constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], endpoint?: string, responseLength?: ChatResponseLength);
|
|
24
|
+
/**
|
|
25
|
+
* Get the current model name
|
|
26
|
+
*/
|
|
27
|
+
getModel(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Get the current vision model name
|
|
30
|
+
*/
|
|
31
|
+
getVisionModel(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Process chat messages
|
|
34
|
+
*/
|
|
35
|
+
processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Process chat messages with images
|
|
38
|
+
*/
|
|
39
|
+
processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Process chat messages with tools (text only)
|
|
42
|
+
*/
|
|
43
|
+
chatOnce(messages: Message[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
|
|
44
|
+
/**
|
|
45
|
+
* Process vision chat messages with tools
|
|
46
|
+
*/
|
|
47
|
+
visionChatOnce(messages: MessageWithVision[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
|
|
48
|
+
private parseResponse;
|
|
49
|
+
private callXAI;
|
|
50
|
+
/**
|
|
51
|
+
* Build request body (OpenAI-compatible Chat Completions)
|
|
52
|
+
*/
|
|
53
|
+
private buildRequestBody;
|
|
54
|
+
private buildToolsDefinition;
|
|
55
|
+
private handleStream;
|
|
56
|
+
/**
|
|
57
|
+
* Parse streaming response with tool support
|
|
58
|
+
*/
|
|
59
|
+
private parseStream;
|
|
60
|
+
/**
|
|
61
|
+
* Parse non-streaming response
|
|
62
|
+
*/
|
|
63
|
+
private parseOneShot;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=XAIChatService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XAIChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMpE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAUjC;;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;IAE5C;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAA0C,EACjD,WAAW,GAAE,MAA0C,EACvD,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAA0C,EACpD,cAAc,CAAC,EAAE,kBAAkB;IAUrC;;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;IAehB;;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;IAsBhB;;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;IA6BxB,OAAO,CAAC,oBAAoB;YAId,YAAY;IAO1B;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { ENDPOINT_XAI_CHAT_COMPLETIONS_API, MODEL_GROK_4_1_FAST_NON_REASONING, isXaiVisionModel, } from '../../../constants/xai';
|
|
2
|
+
import { getMaxTokensForResponseLength, } from '../../../constants/chat';
|
|
3
|
+
import { ChatServiceHttpClient } from '../../../utils/chatServiceHttpClient';
|
|
4
|
+
import { buildOpenAICompatibleTools, parseOpenAICompatibleOneShot, parseOpenAICompatibleTextStream, parseOpenAICompatibleToolStream, processChatWithOptionalTools, } from '../../../utils';
|
|
5
|
+
/**
|
|
6
|
+
* xAI implementation of ChatService (OpenAI-compatible Chat Completions)
|
|
7
|
+
*/
|
|
8
|
+
export class XAIChatService {
|
|
9
|
+
/**
|
|
10
|
+
* Constructor
|
|
11
|
+
* @param apiKey xAI 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_GROK_4_1_FAST_NON_REASONING, visionModel = MODEL_GROK_4_1_FAST_NON_REASONING, tools, endpoint = ENDPOINT_XAI_CHAT_COMPLETIONS_API, responseLength) {
|
|
16
|
+
/** Provider name */
|
|
17
|
+
this.provider = 'xai';
|
|
18
|
+
this.apiKey = apiKey;
|
|
19
|
+
this.model = model;
|
|
20
|
+
this.tools = tools || [];
|
|
21
|
+
this.endpoint = endpoint;
|
|
22
|
+
this.responseLength = responseLength;
|
|
23
|
+
this.visionModel = visionModel;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the current model name
|
|
27
|
+
*/
|
|
28
|
+
getModel() {
|
|
29
|
+
return this.model;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the current vision model name
|
|
33
|
+
*/
|
|
34
|
+
getVisionModel() {
|
|
35
|
+
return this.visionModel;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Process chat messages
|
|
39
|
+
*/
|
|
40
|
+
async processChat(messages, onPartialResponse, onCompleteResponse) {
|
|
41
|
+
await processChatWithOptionalTools({
|
|
42
|
+
hasTools: this.tools.length > 0,
|
|
43
|
+
runWithoutTools: async () => {
|
|
44
|
+
const res = await this.callXAI(messages, this.model, true);
|
|
45
|
+
return this.handleStream(res, onPartialResponse);
|
|
46
|
+
},
|
|
47
|
+
runWithTools: () => this.chatOnce(messages, true, onPartialResponse),
|
|
48
|
+
onCompleteResponse,
|
|
49
|
+
toolErrorMessage: 'processChat received tool_calls. ' +
|
|
50
|
+
'ChatProcessor must use chatOnce() loop when tools are enabled.',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Process chat messages with images
|
|
55
|
+
*/
|
|
56
|
+
async processVisionChat(messages, onPartialResponse, onCompleteResponse) {
|
|
57
|
+
if (!isXaiVisionModel(this.visionModel)) {
|
|
58
|
+
throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
|
|
59
|
+
}
|
|
60
|
+
await processChatWithOptionalTools({
|
|
61
|
+
hasTools: this.tools.length > 0,
|
|
62
|
+
runWithoutTools: async () => {
|
|
63
|
+
const res = await this.callXAI(messages, this.visionModel, true);
|
|
64
|
+
return this.handleStream(res, onPartialResponse);
|
|
65
|
+
},
|
|
66
|
+
runWithTools: () => this.visionChatOnce(messages, true, onPartialResponse),
|
|
67
|
+
onCompleteResponse,
|
|
68
|
+
toolErrorMessage: 'processVisionChat received tool_calls. ' +
|
|
69
|
+
'ChatProcessor must use visionChatOnce() loop when tools are enabled.',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Process chat messages with tools (text only)
|
|
74
|
+
*/
|
|
75
|
+
async chatOnce(messages, stream = true, onPartialResponse = () => { }, maxTokens) {
|
|
76
|
+
const res = await this.callXAI(messages, this.model, stream, maxTokens);
|
|
77
|
+
return this.parseResponse(res, stream, onPartialResponse);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Process vision chat messages with tools
|
|
81
|
+
*/
|
|
82
|
+
async visionChatOnce(messages, stream = false, onPartialResponse = () => { }, maxTokens) {
|
|
83
|
+
if (!isXaiVisionModel(this.visionModel)) {
|
|
84
|
+
throw new Error(`Model ${this.visionModel} does not support vision capabilities.`);
|
|
85
|
+
}
|
|
86
|
+
const res = await this.callXAI(messages, this.visionModel, stream, maxTokens);
|
|
87
|
+
return this.parseResponse(res, stream, onPartialResponse);
|
|
88
|
+
}
|
|
89
|
+
async parseResponse(res, stream, onPartialResponse) {
|
|
90
|
+
return stream
|
|
91
|
+
? this.parseStream(res, onPartialResponse)
|
|
92
|
+
: this.parseOneShot(await res.json());
|
|
93
|
+
}
|
|
94
|
+
async callXAI(messages, model, stream = false, maxTokens) {
|
|
95
|
+
const body = this.buildRequestBody(messages, model, stream, maxTokens);
|
|
96
|
+
const res = await ChatServiceHttpClient.post(this.endpoint, body, {
|
|
97
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
98
|
+
});
|
|
99
|
+
return res;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Build request body (OpenAI-compatible Chat Completions)
|
|
103
|
+
*/
|
|
104
|
+
buildRequestBody(messages, model, stream, maxTokens) {
|
|
105
|
+
const body = {
|
|
106
|
+
model,
|
|
107
|
+
stream,
|
|
108
|
+
messages,
|
|
109
|
+
};
|
|
110
|
+
const tokenLimit = maxTokens !== undefined
|
|
111
|
+
? maxTokens
|
|
112
|
+
: getMaxTokensForResponseLength(this.responseLength);
|
|
113
|
+
if (tokenLimit !== undefined) {
|
|
114
|
+
body.max_tokens = tokenLimit;
|
|
115
|
+
}
|
|
116
|
+
const tools = this.buildToolsDefinition();
|
|
117
|
+
if (tools.length > 0) {
|
|
118
|
+
body.tools = tools;
|
|
119
|
+
body.tool_choice = 'auto';
|
|
120
|
+
}
|
|
121
|
+
return body;
|
|
122
|
+
}
|
|
123
|
+
buildToolsDefinition() {
|
|
124
|
+
return buildOpenAICompatibleTools(this.tools, 'chat-completions');
|
|
125
|
+
}
|
|
126
|
+
async handleStream(res, onPartial) {
|
|
127
|
+
return parseOpenAICompatibleTextStream(res, onPartial, {
|
|
128
|
+
onJsonError: (payload) => console.debug('Failed to parse SSE data:', payload),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Parse streaming response with tool support
|
|
133
|
+
*/
|
|
134
|
+
async parseStream(res, onPartial) {
|
|
135
|
+
return parseOpenAICompatibleToolStream(res, onPartial, {
|
|
136
|
+
onJsonError: (payload) => console.debug('Failed to parse SSE data:', payload),
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Parse non-streaming response
|
|
141
|
+
*/
|
|
142
|
+
parseOneShot(data) {
|
|
143
|
+
return parseOpenAICompatibleOneShot(data);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=XAIChatService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChatService } from '../../ChatService';
|
|
2
|
+
import { XAIChatServiceOptions, ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
|
|
3
|
+
/**
|
|
4
|
+
* xAI API provider implementation
|
|
5
|
+
*/
|
|
6
|
+
export declare class XAIChatServiceProvider implements ChatServiceProvider<XAIChatServiceOptions> {
|
|
7
|
+
/**
|
|
8
|
+
* Create a chat service instance
|
|
9
|
+
*/
|
|
10
|
+
createChatService(options: XAIChatServiceOptions): 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
|
+
getVisionSupportLevel(): VisionSupportLevel;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a specific model supports vision capabilities
|
|
34
|
+
*/
|
|
35
|
+
supportsVisionForModel(model: string): boolean;
|
|
36
|
+
getVisionSupportLevelForModel(model: string): VisionSupportLevel;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=XAIChatServiceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,sBACX,YAAW,mBAAmB,CAAC,qBAAqB,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW;IAwB9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAS9B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;CAGjE"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ENDPOINT_XAI_CHAT_COMPLETIONS_API, MODEL_GROK_4_20_REASONING, MODEL_GROK_4_20_NON_REASONING, MODEL_GROK_4_1_FAST_REASONING, MODEL_GROK_4_1_FAST_NON_REASONING, isXaiVisionModel, } from '../../../constants/xai';
|
|
2
|
+
import { XAIChatService } from './XAIChatService';
|
|
3
|
+
import { resolveVisionModel } from '../../../utils';
|
|
4
|
+
/**
|
|
5
|
+
* xAI API provider implementation
|
|
6
|
+
*/
|
|
7
|
+
export class XAIChatServiceProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Create a chat service instance
|
|
10
|
+
*/
|
|
11
|
+
createChatService(options) {
|
|
12
|
+
const model = options.model || this.getDefaultModel();
|
|
13
|
+
const visionModel = resolveVisionModel({
|
|
14
|
+
model,
|
|
15
|
+
visionModel: options.visionModel,
|
|
16
|
+
defaultModel: this.getDefaultModel(),
|
|
17
|
+
defaultVisionModel: this.getDefaultVisionModel(),
|
|
18
|
+
supportsVisionForModel: (visionModel) => this.supportsVisionForModel(visionModel),
|
|
19
|
+
validate: 'explicit',
|
|
20
|
+
});
|
|
21
|
+
const tools = options.tools;
|
|
22
|
+
return new XAIChatService(options.apiKey, model, visionModel, tools, options.endpoint || ENDPOINT_XAI_CHAT_COMPLETIONS_API, options.responseLength);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the provider name
|
|
26
|
+
*/
|
|
27
|
+
getProviderName() {
|
|
28
|
+
return 'xai';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the list of supported models
|
|
32
|
+
*/
|
|
33
|
+
getSupportedModels() {
|
|
34
|
+
return [
|
|
35
|
+
MODEL_GROK_4_20_REASONING,
|
|
36
|
+
MODEL_GROK_4_20_NON_REASONING,
|
|
37
|
+
MODEL_GROK_4_1_FAST_REASONING,
|
|
38
|
+
MODEL_GROK_4_1_FAST_NON_REASONING,
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the default model
|
|
43
|
+
*/
|
|
44
|
+
getDefaultModel() {
|
|
45
|
+
return MODEL_GROK_4_1_FAST_NON_REASONING;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the default vision model
|
|
49
|
+
*/
|
|
50
|
+
getDefaultVisionModel() {
|
|
51
|
+
return MODEL_GROK_4_1_FAST_NON_REASONING;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if this provider supports vision
|
|
55
|
+
*/
|
|
56
|
+
supportsVision() {
|
|
57
|
+
return this.getVisionSupportLevel() !== 'unsupported';
|
|
58
|
+
}
|
|
59
|
+
getVisionSupportLevel() {
|
|
60
|
+
return 'supported';
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if a specific model supports vision capabilities
|
|
64
|
+
*/
|
|
65
|
+
supportsVisionForModel(model) {
|
|
66
|
+
return isXaiVisionModel(model);
|
|
67
|
+
}
|
|
68
|
+
getVisionSupportLevelForModel(model) {
|
|
69
|
+
return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=XAIChatServiceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/xai/XAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,iCAAiC,EACjC,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAGjC;;OAEG;IACH,iBAAiB,CAAC,OAA8B;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE,CACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,IAAI,iCAAiC,EACrD,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,yBAAyB;YACzB,6BAA6B;YAC7B,6BAA6B;YAC7B,iCAAiC;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6BAA6B,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChatService } from '../../ChatService';
|
|
2
|
-
import { ZAIChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
|
|
2
|
+
import { ZAIChatServiceOptions, ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
|
|
3
3
|
/**
|
|
4
4
|
* Z.ai API provider implementation
|
|
5
5
|
*/
|
|
@@ -28,9 +28,11 @@ export declare class ZAIChatServiceProvider implements ChatServiceProvider<ZAICh
|
|
|
28
28
|
* Check if this provider supports vision
|
|
29
29
|
*/
|
|
30
30
|
supportsVision(): boolean;
|
|
31
|
+
getVisionSupportLevel(): VisionSupportLevel;
|
|
31
32
|
/**
|
|
32
33
|
* Check if a specific model supports vision capabilities
|
|
33
34
|
*/
|
|
34
35
|
supportsVisionForModel(model: string): boolean;
|
|
36
|
+
getVisionSupportLevelForModel(model: string): VisionSupportLevel;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=ZAIChatServiceProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ZAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,sBACX,YAAW,mBAAmB,CAAC,qBAAqB,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW;IA2B9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAc9B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;CAGjE"}
|
|
@@ -60,7 +60,10 @@ export class ZAIChatServiceProvider {
|
|
|
60
60
|
* Check if this provider supports vision
|
|
61
61
|
*/
|
|
62
62
|
supportsVision() {
|
|
63
|
-
return
|
|
63
|
+
return this.getVisionSupportLevel() !== 'unsupported';
|
|
64
|
+
}
|
|
65
|
+
getVisionSupportLevel() {
|
|
66
|
+
return 'supported';
|
|
64
67
|
}
|
|
65
68
|
/**
|
|
66
69
|
* Check if a specific model supports vision capabilities
|
|
@@ -68,5 +71,8 @@ export class ZAIChatServiceProvider {
|
|
|
68
71
|
supportsVisionForModel(model) {
|
|
69
72
|
return isZaiVisionModel(model);
|
|
70
73
|
}
|
|
74
|
+
getVisionSupportLevelForModel(model) {
|
|
75
|
+
return this.supportsVisionForModel(model) ? 'supported' : 'unsupported';
|
|
76
|
+
}
|
|
71
77
|
}
|
|
72
78
|
//# sourceMappingURL=ZAIChatServiceProvider.js.map
|