@aituber-onair/chat 0.2.1 → 0.3.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 +21 -2
- package/README.md +22 -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/openrouter.d.ts +21 -0
- package/dist/cjs/constants/openrouter.d.ts.map +1 -0
- package/dist/cjs/constants/openrouter.js +34 -0
- package/dist/cjs/constants/openrouter.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -0
- 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.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +3 -0
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts +5 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts +108 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +397 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +53 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +89 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -0
- 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/openrouter.d.ts +21 -0
- package/dist/esm/constants/openrouter.d.ts.map +1 -0
- package/dist/esm/constants/openrouter.js +29 -0
- package/dist/esm/constants/openrouter.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- 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.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +3 -0
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts +5 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts +108 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +393 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +53 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +85 -0
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChatService } from '../../ChatService';
|
|
2
|
+
import { ChatServiceOptions, ChatServiceProvider } from '../ChatServiceProvider';
|
|
3
|
+
/**
|
|
4
|
+
* OpenRouter API provider implementation
|
|
5
|
+
* Provides access to multiple AI models through OpenRouter's unified API
|
|
6
|
+
*/
|
|
7
|
+
export declare class OpenRouterChatServiceProvider implements ChatServiceProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Create a chat service instance
|
|
10
|
+
* @param options Service options
|
|
11
|
+
* @returns OpenRouterChatService instance
|
|
12
|
+
*/
|
|
13
|
+
createChatService(options: ChatServiceOptions): ChatService;
|
|
14
|
+
/**
|
|
15
|
+
* Get the provider name
|
|
16
|
+
* @returns Provider name ('openrouter')
|
|
17
|
+
*/
|
|
18
|
+
getProviderName(): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get the list of supported models
|
|
21
|
+
* Currently only supports gpt-oss-20b:free
|
|
22
|
+
* @returns Array of supported model names
|
|
23
|
+
*/
|
|
24
|
+
getSupportedModels(): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Get the default model
|
|
27
|
+
* @returns Default model name (gpt-oss-20b:free)
|
|
28
|
+
*/
|
|
29
|
+
getDefaultModel(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Check if this provider supports vision (image processing)
|
|
32
|
+
* @returns Vision support status (false - gpt-oss-20b does not support vision)
|
|
33
|
+
*/
|
|
34
|
+
supportsVision(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a specific model supports vision capabilities
|
|
37
|
+
* @param model The model name to check
|
|
38
|
+
* @returns True if the model supports vision, false otherwise
|
|
39
|
+
*/
|
|
40
|
+
supportsVisionForModel(model: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get list of free tier models
|
|
43
|
+
* @returns Array of free model names
|
|
44
|
+
*/
|
|
45
|
+
getFreeModels(): string[];
|
|
46
|
+
/**
|
|
47
|
+
* Check if a model is free tier
|
|
48
|
+
* @param model Model name to check
|
|
49
|
+
* @returns True if the model is free
|
|
50
|
+
*/
|
|
51
|
+
isModelFree(model: string): boolean;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=OpenRouterChatServiceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC;;;GAGG;AACH,qBAAa,6BAA8B,YAAW,mBAAmB;IACvE;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW;IAsC3D;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAO9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { MODEL_GPT_OSS_20B_FREE, OPENROUTER_FREE_MODELS, isOpenRouterVisionModel, } from '../../../constants/openrouter';
|
|
2
|
+
import { OpenRouterChatService } from './OpenRouterChatService';
|
|
3
|
+
/**
|
|
4
|
+
* OpenRouter API provider implementation
|
|
5
|
+
* Provides access to multiple AI models through OpenRouter's unified API
|
|
6
|
+
*/
|
|
7
|
+
export class OpenRouterChatServiceProvider {
|
|
8
|
+
/**
|
|
9
|
+
* Create a chat service instance
|
|
10
|
+
* @param options Service options
|
|
11
|
+
* @returns OpenRouterChatService instance
|
|
12
|
+
*/
|
|
13
|
+
createChatService(options) {
|
|
14
|
+
// For OpenRouter, use the main model as vision model placeholder
|
|
15
|
+
// Only validate if visionModel is explicitly provided
|
|
16
|
+
const visionModel = options.visionModel || options.model || this.getDefaultModel();
|
|
17
|
+
// If visionModel is explicitly provided and different from main model, validate it
|
|
18
|
+
if (options.visionModel &&
|
|
19
|
+
!this.supportsVisionForModel(options.visionModel)) {
|
|
20
|
+
throw new Error(`Model ${options.visionModel} does not support vision capabilities.`);
|
|
21
|
+
}
|
|
22
|
+
// Tools definition
|
|
23
|
+
const tools = options.tools;
|
|
24
|
+
// Extract OpenRouter-specific options
|
|
25
|
+
const appName = options.appName;
|
|
26
|
+
const appUrl = options.appUrl;
|
|
27
|
+
return new OpenRouterChatService(options.apiKey, options.model || this.getDefaultModel(), visionModel, tools, options.endpoint, options.responseLength, appName, appUrl, options.reasoning_effort, options.includeReasoning, options.reasoningMaxTokens);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get the provider name
|
|
31
|
+
* @returns Provider name ('openrouter')
|
|
32
|
+
*/
|
|
33
|
+
getProviderName() {
|
|
34
|
+
return 'openrouter';
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the list of supported models
|
|
38
|
+
* Currently only supports gpt-oss-20b:free
|
|
39
|
+
* @returns Array of supported model names
|
|
40
|
+
*/
|
|
41
|
+
getSupportedModels() {
|
|
42
|
+
return [
|
|
43
|
+
// Free models
|
|
44
|
+
MODEL_GPT_OSS_20B_FREE,
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the default model
|
|
49
|
+
* @returns Default model name (gpt-oss-20b:free)
|
|
50
|
+
*/
|
|
51
|
+
getDefaultModel() {
|
|
52
|
+
return MODEL_GPT_OSS_20B_FREE;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Check if this provider supports vision (image processing)
|
|
56
|
+
* @returns Vision support status (false - gpt-oss-20b does not support vision)
|
|
57
|
+
*/
|
|
58
|
+
supportsVision() {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if a specific model supports vision capabilities
|
|
63
|
+
* @param model The model name to check
|
|
64
|
+
* @returns True if the model supports vision, false otherwise
|
|
65
|
+
*/
|
|
66
|
+
supportsVisionForModel(model) {
|
|
67
|
+
return isOpenRouterVisionModel(model);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get list of free tier models
|
|
71
|
+
* @returns Array of free model names
|
|
72
|
+
*/
|
|
73
|
+
getFreeModels() {
|
|
74
|
+
return OPENROUTER_FREE_MODELS;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a model is free tier
|
|
78
|
+
* @param model Model name to check
|
|
79
|
+
* @returns True if the model is free
|
|
80
|
+
*/
|
|
81
|
+
isModelFree(model) {
|
|
82
|
+
return OPENROUTER_FREE_MODELS.includes(model) || model.endsWith(':free');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=OpenRouterChatServiceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOhE;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IACxC;;;;OAIG;IACH,iBAAiB,CAAC,OAA2B;QAC3C,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QAEjE,mFAAmF;QACnF,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,mBAAmB;QACnB,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,sCAAsC;QACtC,MAAM,OAAO,GAAI,OAAe,CAAC,OAAO,CAAC;QACzC,MAAM,MAAM,GAAI,OAAe,CAAC,MAAM,CAAC;QAEvC,OAAO,IAAI,qBAAqB,CAC9B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,cAAc,EACtB,OAAO,EACP,MAAM,EACN,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,gBAAgB,EACvB,OAAe,CAAC,kBAAkB,CACpC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO;YACL,cAAc;YACd,sBAAsB;SACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;CACF"}
|