@aituber-onair/chat 0.47.0 → 0.49.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 +128 -23
- package/README.md +137 -23
- package/dist/cjs/constants/claude.d.ts +15 -0
- package/dist/cjs/constants/claude.d.ts.map +1 -1
- package/dist/cjs/constants/claude.js +61 -1
- package/dist/cjs/constants/claude.js.map +1 -1
- package/dist/cjs/constants/gemini.d.ts +17 -0
- package/dist/cjs/constants/gemini.d.ts.map +1 -1
- package/dist/cjs/constants/gemini.js +67 -1
- package/dist/cjs/constants/gemini.js.map +1 -1
- package/dist/cjs/constants/kimi.d.ts +14 -0
- package/dist/cjs/constants/kimi.d.ts.map +1 -1
- package/dist/cjs/constants/kimi.js +27 -1
- package/dist/cjs/constants/kimi.js.map +1 -1
- package/dist/cjs/constants/openrouter.d.ts +12 -0
- package/dist/cjs/constants/openrouter.d.ts.map +1 -1
- package/dist/cjs/constants/openrouter.js +24 -1
- package/dist/cjs/constants/openrouter.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/ChatService.d.ts +2 -2
- package/dist/cjs/services/ChatService.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +10 -1
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts +23 -4
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts +3 -1
- package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatService.js +51 -4
- package/dist/cjs/services/providers/claude/ClaudeChatService.js.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +13 -2
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/claude/claudeMessageConverter.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/claudeMessageConverter.js +7 -1
- package/dist/cjs/services/providers/claude/claudeMessageConverter.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts +8 -2
- package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatService.js +65 -38
- package/dist/cjs/services/providers/gemini/GeminiChatService.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js +9 -2
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/gemini/geminiMessageConverter.d.ts +6 -0
- package/dist/cjs/services/providers/gemini/geminiMessageConverter.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/geminiMessageConverter.js +61 -58
- package/dist/cjs/services/providers/gemini/geminiMessageConverter.js.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts +7 -2
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js +83 -30
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/kimi/KimiChatService.d.ts +5 -4
- package/dist/cjs/services/providers/kimi/KimiChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/kimi/KimiChatService.js +32 -18
- package/dist/cjs/services/providers/kimi/KimiChatService.js.map +1 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts +1 -0
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js +23 -1
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +34 -15
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +13 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/cjs/types/chat.d.ts +12 -2
- package/dist/cjs/types/chat.d.ts.map +1 -1
- package/dist/cjs/types/toolChat.d.ts +19 -0
- package/dist/cjs/types/toolChat.d.ts.map +1 -1
- package/dist/cjs/utils/openaiCompatibleSse.d.ts +2 -0
- package/dist/cjs/utils/openaiCompatibleSse.d.ts.map +1 -1
- package/dist/cjs/utils/openaiCompatibleSse.js +70 -5
- package/dist/cjs/utils/openaiCompatibleSse.js.map +1 -1
- package/dist/cjs/utils/processChatFlow.d.ts +2 -2
- package/dist/cjs/utils/processChatFlow.d.ts.map +1 -1
- package/dist/cjs/utils/processChatFlow.js +8 -3
- package/dist/cjs/utils/processChatFlow.js.map +1 -1
- package/dist/esm/constants/claude.d.ts +15 -0
- package/dist/esm/constants/claude.d.ts.map +1 -1
- package/dist/esm/constants/claude.js +56 -0
- package/dist/esm/constants/claude.js.map +1 -1
- package/dist/esm/constants/gemini.d.ts +17 -0
- package/dist/esm/constants/gemini.d.ts.map +1 -1
- package/dist/esm/constants/gemini.js +62 -0
- package/dist/esm/constants/gemini.js.map +1 -1
- package/dist/esm/constants/kimi.d.ts +14 -0
- package/dist/esm/constants/kimi.d.ts.map +1 -1
- package/dist/esm/constants/kimi.js +23 -0
- package/dist/esm/constants/kimi.js.map +1 -1
- package/dist/esm/constants/openrouter.d.ts +12 -0
- package/dist/esm/constants/openrouter.d.ts.map +1 -1
- package/dist/esm/constants/openrouter.js +22 -0
- package/dist/esm/constants/openrouter.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/ChatService.d.ts +2 -2
- package/dist/esm/services/ChatService.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +10 -1
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts +23 -4
- package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatService.d.ts +3 -1
- package/dist/esm/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatService.js +52 -5
- package/dist/esm/services/providers/claude/ClaudeChatService.js.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +14 -3
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/claude/claudeMessageConverter.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/claudeMessageConverter.js +7 -1
- package/dist/esm/services/providers/claude/claudeMessageConverter.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatService.d.ts +8 -2
- package/dist/esm/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatService.js +66 -39
- package/dist/esm/services/providers/gemini/GeminiChatService.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js +10 -3
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/gemini/geminiMessageConverter.d.ts +6 -0
- package/dist/esm/services/providers/gemini/geminiMessageConverter.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/geminiMessageConverter.js +61 -58
- package/dist/esm/services/providers/gemini/geminiMessageConverter.js.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts +7 -2
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js +84 -31
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +1 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/kimi/KimiChatService.d.ts +5 -4
- package/dist/esm/services/providers/kimi/KimiChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/kimi/KimiChatService.js +34 -20
- package/dist/esm/services/providers/kimi/KimiChatService.js.map +1 -1
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts +1 -0
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js +24 -2
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +35 -16
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +14 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/types/chat.d.ts +12 -2
- package/dist/esm/types/chat.d.ts.map +1 -1
- package/dist/esm/types/toolChat.d.ts +19 -0
- package/dist/esm/types/toolChat.d.ts.map +1 -1
- package/dist/esm/utils/openaiCompatibleSse.d.ts +2 -0
- package/dist/esm/utils/openaiCompatibleSse.d.ts.map +1 -1
- package/dist/esm/utils/openaiCompatibleSse.js +70 -5
- package/dist/esm/utils/openaiCompatibleSse.js.map +1 -1
- package/dist/esm/utils/processChatFlow.d.ts +2 -2
- package/dist/esm/utils/processChatFlow.d.ts.map +1 -1
- package/dist/esm/utils/processChatFlow.js +8 -3
- package/dist/esm/utils/processChatFlow.js.map +1 -1
- package/dist/umd/aituber-onair-chat.js +621 -177
- package/dist/umd/aituber-onair-chat.min.js +9 -11
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ export declare class GeminiNanoChatService implements ChatService {
|
|
|
11
11
|
readonly provider: string;
|
|
12
12
|
private expectedInputLanguages;
|
|
13
13
|
private expectedOutputLanguages;
|
|
14
|
+
private initialPrompts;
|
|
14
15
|
private _responseLength?;
|
|
15
16
|
constructor(options?: GeminiNanoChatServiceOptions);
|
|
16
17
|
getModel(): string;
|
|
@@ -29,10 +30,14 @@ export declare class GeminiNanoChatService implements ChatService {
|
|
|
29
30
|
*/
|
|
30
31
|
private generateResponse;
|
|
31
32
|
/**
|
|
32
|
-
* Create a new LanguageModel session with
|
|
33
|
-
*
|
|
33
|
+
* Create a new LanguageModel session with structured initial prompts.
|
|
34
|
+
* System instructions, few-shot examples, and conversation history retain
|
|
35
|
+
* their roles instead of being flattened into a single string.
|
|
34
36
|
*/
|
|
35
37
|
private createSession;
|
|
38
|
+
private getModelOptions;
|
|
39
|
+
private buildInitialPrompts;
|
|
40
|
+
private findLastUserMessageIndex;
|
|
36
41
|
private buildSystemPrompt;
|
|
37
42
|
private getResponseLengthInstruction;
|
|
38
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiNanoChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAU7D,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,wBAAwB,CAAC;AAyChC;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAiB;IAE1C,OAAO,CAAC,sBAAsB,CAAW;IACzC,OAAO,CAAC,uBAAuB,CAAW;IAC1C,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,eAAe,CAAC,CAAqB;gBAEjC,OAAO,GAAE,4BAAiC;IAYtD,QAAQ,IAAI,MAAM;IAIlB,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;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;IAMV,iBAAiB,CACrB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC1C,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC;IAIV,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,OAAe,EACxB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAUxB,cAAc,CAClB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,OAAO,GAAE,OAAe,EACxB,kBAAkB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACrD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;YACW,gBAAgB;IAuD9B;;;;OAIG;YACW,aAAa;IAkB3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,4BAA4B;CAsDrC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MODEL_GEMINI_NANO, GEMINI_NANO_MAX_CONTEXT_MESSAGES, } from '../../../constants/geminiNano';
|
|
2
|
-
import { MAX_TOKENS_BY_LENGTH, } from '../../../constants/chat';
|
|
2
|
+
import { CHAT_RESPONSE_LENGTH, MAX_TOKENS_BY_LENGTH, } from '../../../constants/chat';
|
|
3
3
|
/**
|
|
4
4
|
* Get the LanguageModel API from the global scope.
|
|
5
5
|
* Returns undefined in non-browser environments or unsupported browsers.
|
|
@@ -18,8 +18,14 @@ function getLanguageModelAPI() {
|
|
|
18
18
|
export class GeminiNanoChatService {
|
|
19
19
|
constructor(options = {}) {
|
|
20
20
|
this.provider = 'gemini-nano';
|
|
21
|
-
this.expectedInputLanguages = options.expectedInputLanguages ?? [
|
|
21
|
+
this.expectedInputLanguages = options.expectedInputLanguages ?? [
|
|
22
|
+
'ja',
|
|
23
|
+
'en',
|
|
24
|
+
];
|
|
22
25
|
this.expectedOutputLanguages = options.expectedOutputLanguages ?? ['ja'];
|
|
26
|
+
this.initialPrompts = (options.initialPrompts ?? []).map((prompt) => ({
|
|
27
|
+
...prompt,
|
|
28
|
+
}));
|
|
23
29
|
this._responseLength = options.responseLength;
|
|
24
30
|
}
|
|
25
31
|
getModel() {
|
|
@@ -61,7 +67,8 @@ export class GeminiNanoChatService {
|
|
|
61
67
|
throw new Error('Gemini Nano is not available in this environment. ' +
|
|
62
68
|
'Chrome 138+ with Prompt API enabled is required.');
|
|
63
69
|
}
|
|
64
|
-
const
|
|
70
|
+
const modelOptions = this.getModelOptions();
|
|
71
|
+
const availability = await api.availability(modelOptions);
|
|
65
72
|
if (availability !== 'available' && availability !== 'downloadable') {
|
|
66
73
|
throw new Error('Gemini Nano Prompt API is not ready in this environment. ' +
|
|
67
74
|
`LanguageModel.availability() returned "${availability}". ` +
|
|
@@ -72,16 +79,15 @@ export class GeminiNanoChatService {
|
|
|
72
79
|
const systemPrompt = systemMessages.map((m) => m.content).join('\n');
|
|
73
80
|
// Get conversation messages (exclude system)
|
|
74
81
|
const conversationMessages = messages
|
|
75
|
-
.filter((m) => m.role
|
|
82
|
+
.filter((m) => m.role === 'user' || m.role === 'assistant')
|
|
76
83
|
.slice(-GEMINI_NANO_MAX_CONTEXT_MESSAGES);
|
|
77
84
|
// Get the last user message to send via prompt()
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
.find((m) => m.role === 'user');
|
|
81
|
-
if (!lastUserMessage) {
|
|
85
|
+
const lastUserMessageIndex = this.findLastUserMessageIndex(conversationMessages);
|
|
86
|
+
if (lastUserMessageIndex === -1) {
|
|
82
87
|
throw new Error('No user message found in the provided messages.');
|
|
83
88
|
}
|
|
84
|
-
const
|
|
89
|
+
const lastUserMessage = conversationMessages[lastUserMessageIndex];
|
|
90
|
+
const session = await this.createSession(api, systemPrompt, conversationMessages.slice(0, lastUserMessageIndex), modelOptions);
|
|
85
91
|
try {
|
|
86
92
|
return await session.prompt(lastUserMessage.content);
|
|
87
93
|
}
|
|
@@ -95,30 +101,51 @@ export class GeminiNanoChatService {
|
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
103
|
/**
|
|
98
|
-
* Create a new LanguageModel session with
|
|
99
|
-
*
|
|
104
|
+
* Create a new LanguageModel session with structured initial prompts.
|
|
105
|
+
* System instructions, few-shot examples, and conversation history retain
|
|
106
|
+
* their roles instead of being flattened into a single string.
|
|
100
107
|
*/
|
|
101
|
-
async createSession(api, systemPrompt, contextHistory) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
history;
|
|
112
|
-
}
|
|
113
|
-
return api.create({
|
|
114
|
-
systemPrompt: prompt,
|
|
108
|
+
async createSession(api, systemPrompt, contextHistory, modelOptions) {
|
|
109
|
+
const initialPrompts = this.buildInitialPrompts(systemPrompt, contextHistory);
|
|
110
|
+
const createOptions = {
|
|
111
|
+
...modelOptions,
|
|
112
|
+
...(initialPrompts.length > 0 ? { initialPrompts } : {}),
|
|
113
|
+
};
|
|
114
|
+
return api.create(createOptions);
|
|
115
|
+
}
|
|
116
|
+
getModelOptions() {
|
|
117
|
+
return {
|
|
115
118
|
expectedInputs: [
|
|
116
119
|
{ type: 'text', languages: this.expectedInputLanguages },
|
|
117
120
|
],
|
|
118
121
|
expectedOutputs: [
|
|
119
122
|
{ type: 'text', languages: this.expectedOutputLanguages },
|
|
120
123
|
],
|
|
121
|
-
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
buildInitialPrompts(systemPrompt, contextHistory) {
|
|
127
|
+
const configuredSystemPrompts = this.initialPrompts
|
|
128
|
+
.filter((prompt) => prompt.role === 'system')
|
|
129
|
+
.map((prompt) => prompt.content);
|
|
130
|
+
const combinedSystemPrompt = this.buildSystemPrompt([systemPrompt, ...configuredSystemPrompts].filter(Boolean).join('\n\n'));
|
|
131
|
+
const prompts = [];
|
|
132
|
+
if (combinedSystemPrompt) {
|
|
133
|
+
prompts.push({ role: 'system', content: combinedSystemPrompt });
|
|
134
|
+
}
|
|
135
|
+
prompts.push(...this.initialPrompts
|
|
136
|
+
.filter((prompt) => prompt.role !== 'system')
|
|
137
|
+
.map((prompt) => ({ ...prompt })), ...contextHistory
|
|
138
|
+
.filter((message) => message.role === 'user' || message.role === 'assistant')
|
|
139
|
+
.map(({ role, content }) => ({ role, content })));
|
|
140
|
+
return prompts;
|
|
141
|
+
}
|
|
142
|
+
findLastUserMessageIndex(messages) {
|
|
143
|
+
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
144
|
+
if (messages[index].role === 'user') {
|
|
145
|
+
return index;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return -1;
|
|
122
149
|
}
|
|
123
150
|
buildSystemPrompt(systemPrompt) {
|
|
124
151
|
const promptParts = [];
|
|
@@ -139,11 +166,37 @@ export class GeminiNanoChatService {
|
|
|
139
166
|
if (!maxTokens) {
|
|
140
167
|
return undefined;
|
|
141
168
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
169
|
+
switch (this._responseLength) {
|
|
170
|
+
case CHAT_RESPONSE_LENGTH.VERY_SHORT:
|
|
171
|
+
return ('Reply in no more than one concise sentence. Do not use a ' +
|
|
172
|
+
'preamble, summary, bullet points, or Markdown. Keep the reaction ' +
|
|
173
|
+
'and answer short enough to read in one breath. Stay within ' +
|
|
174
|
+
`approximately ${maxTokens} tokens.`);
|
|
175
|
+
case CHAT_RESPONSE_LENGTH.SHORT:
|
|
176
|
+
return ('Reply in no more than two concise sentences. Do not use a ' +
|
|
177
|
+
'preamble, summary, bullet points, or Markdown. Keep the reaction ' +
|
|
178
|
+
'and answer short enough to read in one breath. Use natural ' +
|
|
179
|
+
`conversational language. Stay within approximately ${maxTokens} tokens.`);
|
|
180
|
+
case CHAT_RESPONSE_LENGTH.MEDIUM:
|
|
181
|
+
return ('Reply in no more than three concise sentences. Answer directly ' +
|
|
182
|
+
'and include only the context needed to understand the answer. Do ' +
|
|
183
|
+
'not use a preamble, summary, bullet points, or Markdown. Use ' +
|
|
184
|
+
`natural conversational language. Stay within approximately ${maxTokens} tokens.`);
|
|
185
|
+
case CHAT_RESPONSE_LENGTH.LONG:
|
|
186
|
+
return ('Reply in no more than five sentences. Explain the important ' +
|
|
187
|
+
'details clearly, but avoid unnecessary preambles, repetition, ' +
|
|
188
|
+
'bullet points, or Markdown. Use natural conversational language. ' +
|
|
189
|
+
`Stay within approximately ${maxTokens} tokens.`);
|
|
190
|
+
case CHAT_RESPONSE_LENGTH.VERY_LONG:
|
|
191
|
+
return ('Reply in no more than ten sentences. Give a thorough but focused ' +
|
|
192
|
+
'answer. Use short plain-text paragraphs when helpful, and avoid ' +
|
|
193
|
+
'unnecessary repetition, bullet points, or Markdown. Stay within ' +
|
|
194
|
+
`approximately ${maxTokens} tokens.`);
|
|
195
|
+
case CHAT_RESPONSE_LENGTH.DEEP:
|
|
196
|
+
return ('Give a detailed response and organize it in the way that best ' +
|
|
197
|
+
'fits the request. No sentence-count limit applies at this level. ' +
|
|
198
|
+
`Stay within approximately ${maxTokens} tokens.`);
|
|
199
|
+
}
|
|
147
200
|
}
|
|
148
201
|
}
|
|
149
202
|
//# sourceMappingURL=GeminiNanoChatService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiNanoChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatService.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,gCAAgC,GACjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiNanoChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IASrE,eAAe,IAAI,MAAM;IAIzB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;CAG5C"}
|
|
@@ -9,6 +9,7 @@ export class GeminiNanoChatServiceProvider {
|
|
|
9
9
|
return new GeminiNanoChatService({
|
|
10
10
|
expectedInputLanguages: options.expectedInputLanguages,
|
|
11
11
|
expectedOutputLanguages: options.expectedOutputLanguages,
|
|
12
|
+
initialPrompts: options.initialPrompts,
|
|
12
13
|
responseLength: options.responseLength,
|
|
13
14
|
});
|
|
14
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiNanoChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAMhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IAGxC,iBAAiB,CAAC,OAAqC;QACrD,OAAO,IAAI,qBAAqB,CAAC;YAC/B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;QACnB,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAMhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,6BAA6B;IAGxC,iBAAiB,CAAC,OAAqC;QACrD,OAAO,IAAI,qBAAqB,CAAC;YAC/B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;QACnB,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChatService } from '../../ChatService';
|
|
2
2
|
import { Message, MessageWithVision } from '../../../types';
|
|
3
3
|
import { ToolDefinition, ToolChatCompletion } from '../../../types';
|
|
4
|
+
import { KimiReasoningEffort } from '../../../constants/kimi';
|
|
4
5
|
import { ChatResponseLength } from '../../../constants/chat';
|
|
5
6
|
/**
|
|
6
7
|
* Kimi implementation of ChatService (OpenAI-compatible Chat Completions)
|
|
@@ -16,6 +17,7 @@ export declare class KimiChatService implements ChatService {
|
|
|
16
17
|
private responseLength?;
|
|
17
18
|
private responseFormat?;
|
|
18
19
|
private thinking?;
|
|
20
|
+
private reasoningEffort?;
|
|
19
21
|
/**
|
|
20
22
|
* Constructor
|
|
21
23
|
* @param apiKey Kimi API key
|
|
@@ -28,7 +30,7 @@ export declare class KimiChatService implements ChatService {
|
|
|
28
30
|
}, thinking?: {
|
|
29
31
|
type: 'enabled' | 'disabled';
|
|
30
32
|
clear_thinking?: boolean;
|
|
31
|
-
});
|
|
33
|
+
}, reasoningEffort?: KimiReasoningEffort);
|
|
32
34
|
/**
|
|
33
35
|
* Get the current model name
|
|
34
36
|
*/
|
|
@@ -40,11 +42,11 @@ export declare class KimiChatService implements ChatService {
|
|
|
40
42
|
/**
|
|
41
43
|
* Process chat messages
|
|
42
44
|
*/
|
|
43
|
-
processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
|
|
45
|
+
processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string, completion?: ToolChatCompletion) => Promise<void>): Promise<void>;
|
|
44
46
|
/**
|
|
45
47
|
* Process chat messages with images
|
|
46
48
|
*/
|
|
47
|
-
processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
|
|
49
|
+
processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string, completion?: ToolChatCompletion) => Promise<void>): Promise<void>;
|
|
48
50
|
/**
|
|
49
51
|
* Process chat messages with tools (text only)
|
|
50
52
|
*/
|
|
@@ -63,7 +65,6 @@ export declare class KimiChatService implements ChatService {
|
|
|
63
65
|
private normalizeEndpoint;
|
|
64
66
|
private resolveEffectiveThinking;
|
|
65
67
|
private buildToolsDefinition;
|
|
66
|
-
private handleStream;
|
|
67
68
|
/**
|
|
68
69
|
* Parse streaming response with tool support
|
|
69
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatService.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;
|
|
1
|
+
{"version":3,"file":"KimiChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ENDPOINT_KIMI_CHAT_COMPLETIONS_API, MODEL_KIMI_K2_6, isKimiThinkingRequiredModel, isKimiVisionModel, } from '../../../constants/kimi';
|
|
1
|
+
import { ENDPOINT_KIMI_CHAT_COMPLETIONS_API, MODEL_KIMI_K2_6, getDefaultKimiReasoningEffort, getKimiSupportedReasoningEfforts, isKimiReasoningEffortModel, isKimiThinkingRequiredModel, isKimiVisionModel, } from '../../../constants/kimi';
|
|
2
2
|
import { getMaxTokensForResponseLength, } from '../../../constants/chat';
|
|
3
3
|
import { ChatServiceHttpClient } from '../../../utils/chatServiceHttpClient';
|
|
4
|
-
import { buildOpenAICompatibleTools, parseOpenAICompatibleOneShot,
|
|
4
|
+
import { buildOpenAICompatibleTools, parseOpenAICompatibleOneShot, parseOpenAICompatibleToolStream, processChatWithOptionalTools, } from '../../../utils';
|
|
5
5
|
/**
|
|
6
6
|
* Kimi implementation of ChatService (OpenAI-compatible Chat Completions)
|
|
7
7
|
*/
|
|
@@ -12,7 +12,7 @@ export class KimiChatService {
|
|
|
12
12
|
* @param model Name of the model to use
|
|
13
13
|
* @param visionModel Name of the vision model
|
|
14
14
|
*/
|
|
15
|
-
constructor(apiKey, model = MODEL_KIMI_K2_6, visionModel = MODEL_KIMI_K2_6, tools, endpoint = ENDPOINT_KIMI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
|
|
15
|
+
constructor(apiKey, model = MODEL_KIMI_K2_6, visionModel = MODEL_KIMI_K2_6, tools, endpoint = ENDPOINT_KIMI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking, reasoningEffort) {
|
|
16
16
|
/** Provider name */
|
|
17
17
|
this.provider = 'kimi';
|
|
18
18
|
this.apiKey = apiKey;
|
|
@@ -21,7 +21,14 @@ export class KimiChatService {
|
|
|
21
21
|
this.endpoint = endpoint;
|
|
22
22
|
this.responseLength = responseLength;
|
|
23
23
|
this.responseFormat = responseFormat;
|
|
24
|
-
this.thinking = thinking
|
|
24
|
+
this.thinking = thinking;
|
|
25
|
+
const supportedReasoningEfforts = getKimiSupportedReasoningEfforts(model);
|
|
26
|
+
if (reasoningEffort !== undefined &&
|
|
27
|
+
!supportedReasoningEfforts.includes(reasoningEffort)) {
|
|
28
|
+
throw new Error(`Model ${model} does not support reasoning_effort: ${reasoningEffort}.`);
|
|
29
|
+
}
|
|
30
|
+
this.reasoningEffort =
|
|
31
|
+
reasoningEffort ?? getDefaultKimiReasoningEffort(model);
|
|
25
32
|
this.visionModel = visionModel;
|
|
26
33
|
}
|
|
27
34
|
/**
|
|
@@ -42,10 +49,7 @@ export class KimiChatService {
|
|
|
42
49
|
async processChat(messages, onPartialResponse, onCompleteResponse) {
|
|
43
50
|
await processChatWithOptionalTools({
|
|
44
51
|
hasTools: this.tools.length > 0,
|
|
45
|
-
runWithoutTools:
|
|
46
|
-
const res = await this.callKimi(messages, this.model, true);
|
|
47
|
-
return this.handleStream(res, onPartialResponse);
|
|
48
|
-
},
|
|
52
|
+
runWithoutTools: () => this.chatOnce(messages, true, onPartialResponse),
|
|
49
53
|
runWithTools: () => this.chatOnce(messages, true, onPartialResponse),
|
|
50
54
|
onCompleteResponse,
|
|
51
55
|
toolErrorMessage: 'processChat received tool_calls. ' +
|
|
@@ -61,10 +65,7 @@ export class KimiChatService {
|
|
|
61
65
|
}
|
|
62
66
|
await processChatWithOptionalTools({
|
|
63
67
|
hasTools: this.tools.length > 0,
|
|
64
|
-
runWithoutTools:
|
|
65
|
-
const res = await this.callKimi(messages, this.visionModel, true);
|
|
66
|
-
return this.handleStream(res, onPartialResponse);
|
|
67
|
-
},
|
|
68
|
+
runWithoutTools: () => this.visionChatOnce(messages, true, onPartialResponse),
|
|
68
69
|
runWithTools: () => this.visionChatOnce(messages, true, onPartialResponse),
|
|
69
70
|
onCompleteResponse,
|
|
70
71
|
toolErrorMessage: 'processVisionChat received tool_calls. ' +
|
|
@@ -113,11 +114,20 @@ export class KimiChatService {
|
|
|
113
114
|
? maxTokens
|
|
114
115
|
: getMaxTokensForResponseLength(this.responseLength);
|
|
115
116
|
if (tokenLimit !== undefined) {
|
|
116
|
-
|
|
117
|
+
if (isKimiReasoningEffortModel(model)) {
|
|
118
|
+
body.max_completion_tokens = tokenLimit;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
body.max_tokens = tokenLimit;
|
|
122
|
+
}
|
|
117
123
|
}
|
|
118
124
|
if (this.responseFormat) {
|
|
119
125
|
body.response_format = this.responseFormat;
|
|
120
126
|
}
|
|
127
|
+
if (isKimiReasoningEffortModel(model)) {
|
|
128
|
+
body.reasoning_effort =
|
|
129
|
+
this.reasoningEffort ?? getDefaultKimiReasoningEffort(model);
|
|
130
|
+
}
|
|
121
131
|
const effectiveThinking = this.resolveEffectiveThinking(model);
|
|
122
132
|
if (effectiveThinking) {
|
|
123
133
|
if (this.isSelfHostedEndpoint()) {
|
|
@@ -144,6 +154,12 @@ export class KimiChatService {
|
|
|
144
154
|
return value.replace(/\/+$/, '');
|
|
145
155
|
}
|
|
146
156
|
resolveEffectiveThinking(model) {
|
|
157
|
+
if (isKimiReasoningEffortModel(model)) {
|
|
158
|
+
if (this.thinking) {
|
|
159
|
+
throw new Error(`Model ${model} uses reasoning_effort and does not support the K2.x thinking option.`);
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
147
163
|
if (isKimiThinkingRequiredModel(model)) {
|
|
148
164
|
if (this.thinking?.type === 'disabled') {
|
|
149
165
|
throw new Error(`Model ${model} requires thinking mode and does not support thinking: disabled.`);
|
|
@@ -153,21 +169,17 @@ export class KimiChatService {
|
|
|
153
169
|
if (this.tools.length > 0) {
|
|
154
170
|
return { type: 'disabled' };
|
|
155
171
|
}
|
|
156
|
-
return this.thinking;
|
|
172
|
+
return this.thinking ?? { type: 'enabled' };
|
|
157
173
|
}
|
|
158
174
|
buildToolsDefinition() {
|
|
159
175
|
return buildOpenAICompatibleTools(this.tools, 'chat-completions');
|
|
160
176
|
}
|
|
161
|
-
async handleStream(res, onPartial) {
|
|
162
|
-
return parseOpenAICompatibleTextStream(res, onPartial, {
|
|
163
|
-
onJsonError: (payload) => console.debug('Failed to parse SSE data:', payload),
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
177
|
/**
|
|
167
178
|
* Parse streaming response with tool support
|
|
168
179
|
*/
|
|
169
180
|
async parseStream(res, onPartial) {
|
|
170
181
|
return parseOpenAICompatibleToolStream(res, onPartial, {
|
|
182
|
+
preserveAssistantMessage: true,
|
|
171
183
|
onJsonError: (payload) => console.debug('Failed to parse SSE data:', payload),
|
|
172
184
|
});
|
|
173
185
|
}
|
|
@@ -175,7 +187,9 @@ export class KimiChatService {
|
|
|
175
187
|
* Parse non-streaming response
|
|
176
188
|
*/
|
|
177
189
|
parseOneShot(data) {
|
|
178
|
-
return parseOpenAICompatibleOneShot(data
|
|
190
|
+
return parseOpenAICompatibleOneShot(data, {
|
|
191
|
+
preserveAssistantMessage: true,
|
|
192
|
+
});
|
|
179
193
|
}
|
|
180
194
|
}
|
|
181
195
|
//# sourceMappingURL=KimiChatService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatService.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kCAAkC,
|
|
1
|
+
{"version":3,"file":"KimiChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KimiChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatServiceProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,uBACX,YAAW,mBAAmB,CAAC,sBAAsB,CAAC;IAEtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW;IAiC/D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAU9B;;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;IAIhE,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,sBAAsB;CAyB/B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ENDPOINT_KIMI_CHAT_COMPLETIONS_API, MODEL_KIMI_K2_7_CODE, MODEL_KIMI_K2_7_CODE_HIGHSPEED, MODEL_KIMI_K2_6, MODEL_KIMI_K2_5, isKimiThinkingRequiredModel, isKimiVisionModel, } from '../../../constants/kimi';
|
|
1
|
+
import { ENDPOINT_KIMI_CHAT_COMPLETIONS_API, MODEL_KIMI_K3, MODEL_KIMI_K2_7_CODE, MODEL_KIMI_K2_7_CODE_HIGHSPEED, MODEL_KIMI_K2_6, MODEL_KIMI_K2_5, getDefaultKimiReasoningEffort, getKimiSupportedReasoningEfforts, isKimiReasoningEffortModel, isKimiThinkingRequiredModel, isKimiVisionModel, } from '../../../constants/kimi';
|
|
2
2
|
import { KimiChatService } from './KimiChatService';
|
|
3
3
|
import { resolveVisionModel } from '../../../utils';
|
|
4
4
|
/**
|
|
@@ -24,7 +24,8 @@ export class KimiChatServiceProvider {
|
|
|
24
24
|
});
|
|
25
25
|
const tools = options.tools;
|
|
26
26
|
const thinking = this.resolveThinking(model, tools, options.thinking);
|
|
27
|
-
|
|
27
|
+
const reasoningEffort = this.resolveReasoningEffort(model, options.reasoning_effort);
|
|
28
|
+
return new KimiChatService(options.apiKey, model, visionModel, tools, endpoint, options.responseLength, options.responseFormat, thinking, reasoningEffort);
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Get the provider name
|
|
@@ -37,6 +38,7 @@ export class KimiChatServiceProvider {
|
|
|
37
38
|
*/
|
|
38
39
|
getSupportedModels() {
|
|
39
40
|
return [
|
|
41
|
+
MODEL_KIMI_K3,
|
|
40
42
|
MODEL_KIMI_K2_7_CODE,
|
|
41
43
|
MODEL_KIMI_K2_7_CODE_HIGHSPEED,
|
|
42
44
|
MODEL_KIMI_K2_6,
|
|
@@ -90,6 +92,12 @@ export class KimiChatServiceProvider {
|
|
|
90
92
|
return value.replace(/\/+$/, '');
|
|
91
93
|
}
|
|
92
94
|
resolveThinking(model, tools, thinking) {
|
|
95
|
+
if (isKimiReasoningEffortModel(model)) {
|
|
96
|
+
if (thinking) {
|
|
97
|
+
throw new Error(`Model ${model} uses reasoning_effort and does not support the K2.x thinking option.`);
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
93
101
|
if (isKimiThinkingRequiredModel(model)) {
|
|
94
102
|
if (thinking?.type === 'disabled') {
|
|
95
103
|
throw new Error(`Model ${model} requires thinking mode and does not support thinking: disabled.`);
|
|
@@ -101,5 +109,19 @@ export class KimiChatServiceProvider {
|
|
|
101
109
|
}
|
|
102
110
|
return thinking ?? this.defaultThinking;
|
|
103
111
|
}
|
|
112
|
+
resolveReasoningEffort(model, reasoningEffort) {
|
|
113
|
+
const supported = getKimiSupportedReasoningEfforts(model);
|
|
114
|
+
if (supported.length === 0) {
|
|
115
|
+
if (reasoningEffort !== undefined) {
|
|
116
|
+
throw new Error(`Model ${model} does not support the reasoning_effort option.`);
|
|
117
|
+
}
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
const resolved = reasoningEffort ?? getDefaultKimiReasoningEffort(model) ?? supported[0];
|
|
121
|
+
if (!supported.includes(resolved)) {
|
|
122
|
+
throw new Error(`Model ${model} supports reasoning_effort values: ${supported.join(', ')}.`);
|
|
123
|
+
}
|
|
124
|
+
return resolved;
|
|
125
|
+
}
|
|
104
126
|
}
|
|
105
127
|
//# sourceMappingURL=KimiChatServiceProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KimiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,oBAAoB,EACpB,8BAA8B,EAC9B,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAApC;QAGmB,oBAAe,GAAG,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"KimiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/kimi/KimiChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatService.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;
|
|
1
|
+
{"version":3,"file":"OpenRouterChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatService.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;AAWpE,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAmCjC;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAgB;IAEzC,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,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,gBAAgB,CAAC,CAAU;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAa;IAEjC;;;;;;;;;;;;;OAaG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAA+B,EACtC,WAAW,GAAE,MAA+B,EAC5C,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAAgC,EAC1C,cAAc,CAAC,EAAE,kBAAkB,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,EACjE,gBAAgB,CAAC,EAAE,OAAO,EAC1B,kBAAkB,CAAC,EAAE,MAAM;IAkB7B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;YACW,iBAAiB;IA6B/B;;;;;OAKG;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;IAkBhB;;;;;OAKG;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;IAmChB;;;;;;;OAOG;IACG,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,UAAO,EACb,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAa9B;;;;;;;OAOG;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;IAoB9B;;OAEG;YACW,cAAc;IA0B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4ExB;;;OAGG;YACW,YAAY;IAc1B;;OAEG;YACW,WAAW;IAczB;;OAEG;IACH,OAAO,CAAC,YAAY;CAOrB"}
|