@kevisual/ai 0.0.16 → 0.0.17
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/dist/ai-provider-browser.d.ts +39 -19
- package/dist/ai-provider-browser.js +1594 -1563
- package/dist/ai-provider.d.ts +39 -19
- package/dist/ai-provider.js +40 -9
- package/package.json +11 -25
- package/src/provider/chat-adapter/kevisual.ts +14 -0
- package/src/provider/chat.ts +13 -9
- package/src/provider/utils/token.ts +0 -34
package/dist/ai-provider.d.ts
CHANGED
|
@@ -293,26 +293,46 @@ declare class Kimi extends BaseChat {
|
|
|
293
293
|
constructor(options: KimiOptions);
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
declare
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
296
|
+
type KevisualOptions = Partial<BaseChatOptions>;
|
|
297
|
+
/**
|
|
298
|
+
* Kevisual Chat Adapter
|
|
299
|
+
*/
|
|
300
|
+
declare class Kevisual extends BaseChat {
|
|
301
|
+
static BASE_URL: string;
|
|
302
|
+
constructor(options: KevisualOptions);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
declare class OllamaProvider extends Ollama {
|
|
306
|
+
}
|
|
307
|
+
declare class SiliconFlowProvider extends SiliconFlow {
|
|
308
|
+
}
|
|
309
|
+
declare class CustomProvider extends Custom {
|
|
310
|
+
}
|
|
311
|
+
declare class VolcesProvider extends Volces {
|
|
312
|
+
}
|
|
313
|
+
declare class DeepSeekProvider extends DeepSeek {
|
|
314
|
+
}
|
|
315
|
+
declare class ModelScopeProvider extends ModelScope {
|
|
316
|
+
}
|
|
317
|
+
declare class BailianProvider extends BailianChat {
|
|
318
|
+
}
|
|
319
|
+
declare class ZhipuProvider extends Zhipu {
|
|
320
|
+
}
|
|
321
|
+
declare class KimiProvider extends Kimi {
|
|
322
|
+
}
|
|
323
|
+
declare class KevisualProvider extends Kevisual {
|
|
324
|
+
}
|
|
305
325
|
declare const ChatProviderMap: {
|
|
306
|
-
Ollama: typeof
|
|
307
|
-
SiliconFlow: typeof
|
|
308
|
-
Custom: typeof
|
|
309
|
-
Volces: typeof
|
|
310
|
-
DeepSeek: typeof
|
|
311
|
-
ModelScope: typeof
|
|
326
|
+
Ollama: typeof OllamaProvider;
|
|
327
|
+
SiliconFlow: typeof SiliconFlowProvider;
|
|
328
|
+
Custom: typeof CustomProvider;
|
|
329
|
+
Volces: typeof VolcesProvider;
|
|
330
|
+
DeepSeek: typeof DeepSeekProvider;
|
|
331
|
+
ModelScope: typeof ModelScopeProvider;
|
|
312
332
|
BaseChat: typeof BaseChat;
|
|
313
|
-
Bailian: typeof
|
|
314
|
-
Zhipu: typeof
|
|
315
|
-
Kimi: typeof
|
|
333
|
+
Bailian: typeof BailianProvider;
|
|
334
|
+
Zhipu: typeof ZhipuProvider;
|
|
335
|
+
Kimi: typeof KimiProvider;
|
|
316
336
|
};
|
|
317
337
|
type ProviderManagerConfig = {
|
|
318
338
|
provider: string;
|
|
@@ -527,5 +547,5 @@ declare class AIConfigParser {
|
|
|
527
547
|
};
|
|
528
548
|
}
|
|
529
549
|
|
|
530
|
-
export { AIConfigParser, AIUtils, BailianChat, BailianProvider, BaseChat, ChatProviderMap, Custom, CustomProvider, DeepSeek, DeepSeekProvider, Kimi, KimiProvider, KnowledgeBase, ModelScope, ModelScopeProvider, Ollama, OllamaProvider, ProviderManager, SiliconFlow, SiliconFlowKnowledge, SiliconFlowProvider, Volces, VolcesProvider, Zhipu, ZhipuProvider, decryptAES, encryptAES, readStream };
|
|
550
|
+
export { AIConfigParser, AIUtils, BailianChat, BailianProvider, BaseChat, ChatProviderMap, Custom, CustomProvider, DeepSeek, DeepSeekProvider, Kevisual, KevisualProvider, Kimi, KimiProvider, KnowledgeBase, ModelScope, ModelScopeProvider, Ollama, OllamaProvider, ProviderManager, SiliconFlow, SiliconFlowKnowledge, SiliconFlowProvider, Volces, VolcesProvider, Zhipu, ZhipuProvider, decryptAES, encryptAES, readStream };
|
|
531
551
|
export type { AIConfig, AIModel, BaseChatInterface, BaseChatOptions, BaseChatUsageInterface, ChatMessage, ChatMessageComplete, ChatMessageOptions, ChatMessageStream, ChatStream, EmbeddingMessage, EmbeddingMessageComplete, GetProviderOpts, KnowledgeOptions, ProviderResult, RerankOptions, SecretKey };
|
package/dist/ai-provider.js
CHANGED
|
@@ -1595,16 +1595,45 @@ class Kimi extends BaseChat {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
}
|
|
1597
1597
|
|
|
1598
|
+
// src/provider/chat-adapter/kevisual.ts
|
|
1599
|
+
class Kevisual extends BaseChat {
|
|
1600
|
+
static BASE_URL = "https://newapi.kevisual.cn/v1/";
|
|
1601
|
+
constructor(options) {
|
|
1602
|
+
const baseURL = options.baseURL || Kevisual.BASE_URL;
|
|
1603
|
+
super({ ...options, baseURL });
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1598
1607
|
// src/provider/chat.ts
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
+
class OllamaProvider extends Ollama {
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
class SiliconFlowProvider extends SiliconFlow {
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
class CustomProvider extends Custom {
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
class VolcesProvider extends Volces {
|
|
1618
|
+
}
|
|
1619
|
+
|
|
1620
|
+
class DeepSeekProvider extends DeepSeek {
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
class ModelScopeProvider extends ModelScope {
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
class BailianProvider extends BailianChat {
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
class ZhipuProvider extends Zhipu {
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
class KimiProvider extends Kimi {
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
class KevisualProvider extends Kevisual {
|
|
1636
|
+
}
|
|
1608
1637
|
var ChatProviderMap = {
|
|
1609
1638
|
Ollama: OllamaProvider,
|
|
1610
1639
|
SiliconFlow: SiliconFlowProvider,
|
|
@@ -1841,6 +1870,8 @@ export {
|
|
|
1841
1870
|
KnowledgeBase,
|
|
1842
1871
|
KimiProvider,
|
|
1843
1872
|
Kimi,
|
|
1873
|
+
KevisualProvider,
|
|
1874
|
+
Kevisual,
|
|
1844
1875
|
DeepSeekProvider,
|
|
1845
1876
|
DeepSeek,
|
|
1846
1877
|
CustomProvider,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kevisual/ai",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"description": "AI Center Services",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"basename": "/root/ai-center-services",
|
|
@@ -13,13 +13,6 @@
|
|
|
13
13
|
"src",
|
|
14
14
|
"types"
|
|
15
15
|
],
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "npm run clean && bun bun.config.mjs",
|
|
18
|
-
"dev": "bun run --watch bun.config.mjs",
|
|
19
|
-
"test": "tsx test/**/*.ts",
|
|
20
|
-
"clean": "rm -rf dist",
|
|
21
|
-
"pub": "envision pack -p -u"
|
|
22
|
-
},
|
|
23
16
|
"keywords": [
|
|
24
17
|
"kevisual",
|
|
25
18
|
"ai",
|
|
@@ -27,7 +20,6 @@
|
|
|
27
20
|
],
|
|
28
21
|
"author": "abearxiong <xiongxiao@xiongxiao.me> (https://www.xiongxiao.me)",
|
|
29
22
|
"license": "MIT",
|
|
30
|
-
"packageManager": "pnpm@10.24.0",
|
|
31
23
|
"type": "module",
|
|
32
24
|
"publishConfig": {
|
|
33
25
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -53,40 +45,34 @@
|
|
|
53
45
|
}
|
|
54
46
|
},
|
|
55
47
|
"devDependencies": {
|
|
56
|
-
"@kevisual/
|
|
57
|
-
"@kevisual/mark": "0.0.7",
|
|
58
|
-
"@kevisual/router": "0.0.33",
|
|
48
|
+
"@kevisual/router": "0.0.36",
|
|
59
49
|
"@kevisual/types": "^0.0.10",
|
|
60
50
|
"@kevisual/use-config": "^1.0.21",
|
|
61
|
-
"@types/bun": "^1.3.
|
|
51
|
+
"@types/bun": "^1.3.4",
|
|
62
52
|
"@types/crypto-js": "^4.2.2",
|
|
63
53
|
"@types/formidable": "^3.4.6",
|
|
64
|
-
"@types/lodash-es": "^4.17.12",
|
|
65
54
|
"@types/node": "^24.10.1",
|
|
66
|
-
"@vitejs/plugin-basic-ssl": "^2.1.0",
|
|
67
|
-
"cookie": "^1.1.1",
|
|
68
55
|
"cross-env": "^10.1.0",
|
|
69
56
|
"crypto-js": "^4.2.0",
|
|
70
57
|
"dayjs": "^1.11.19",
|
|
71
58
|
"dotenv": "^17.2.3",
|
|
72
59
|
"formidable": "^3.5.4",
|
|
73
|
-
"ioredis": "^5.8.2",
|
|
74
|
-
"json5": "^2.2.3",
|
|
75
|
-
"lodash-es": "^4.17.21",
|
|
76
60
|
"openai": "6.10.0",
|
|
77
61
|
"pm2": "^6.0.14",
|
|
78
62
|
"rimraf": "^6.1.2",
|
|
79
|
-
"rollup": "^4.53.3",
|
|
80
|
-
"rollup-plugin-dts": "^6.3.0",
|
|
81
|
-
"sequelize": "^6.37.7",
|
|
82
|
-
"tape": "^5.9.0",
|
|
83
|
-
"tiktoken": "^1.0.22",
|
|
84
63
|
"typescript": "^5.9.3",
|
|
85
64
|
"vite": "^7.2.6"
|
|
86
65
|
},
|
|
87
66
|
"dependencies": {
|
|
88
67
|
"@kevisual/logger": "^0.0.4",
|
|
89
68
|
"@kevisual/permission": "^0.0.3",
|
|
90
|
-
"@kevisual/query": "^0.0.
|
|
69
|
+
"@kevisual/query": "^0.0.31"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"build": "npm run clean && bun bun.config.mjs",
|
|
73
|
+
"dev": "bun run --watch bun.config.mjs",
|
|
74
|
+
"test": "tsx test/**/*.ts",
|
|
75
|
+
"clean": "rm -rf dist",
|
|
76
|
+
"pub": "envision pack -p -u"
|
|
91
77
|
}
|
|
92
78
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseChat, BaseChatOptions } from '../core/chat.ts';
|
|
2
|
+
|
|
3
|
+
export type KevisualOptions = Partial<BaseChatOptions>;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Kevisual Chat Adapter
|
|
7
|
+
*/
|
|
8
|
+
export class Kevisual extends BaseChat {
|
|
9
|
+
static BASE_URL = 'https://newapi.kevisual.cn/v1/';
|
|
10
|
+
constructor(options: KevisualOptions) {
|
|
11
|
+
const baseURL = options.baseURL || Kevisual.BASE_URL;
|
|
12
|
+
super({ ...(options as BaseChatOptions), baseURL: baseURL });
|
|
13
|
+
}
|
|
14
|
+
}
|
package/src/provider/chat.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { ModelScope } from './chat-adapter/model-scope.ts';
|
|
|
10
10
|
import { BailianChat } from './chat-adapter/dashscope.ts';
|
|
11
11
|
import { Zhipu } from './chat-adapter/zhipu.ts';
|
|
12
12
|
import { Kimi } from './chat-adapter/kimi.ts';
|
|
13
|
+
import { Kevisual } from './chat-adapter/kevisual.ts';
|
|
13
14
|
|
|
14
15
|
import { ChatMessage } from './core/type.ts';
|
|
15
16
|
|
|
@@ -25,16 +26,19 @@ export {
|
|
|
25
26
|
Zhipu,
|
|
26
27
|
Kimi,
|
|
27
28
|
ChatMessage,
|
|
29
|
+
Kevisual,
|
|
28
30
|
}
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export
|
|
37
|
-
export
|
|
31
|
+
export class OllamaProvider extends Ollama { }
|
|
32
|
+
export class SiliconFlowProvider extends SiliconFlow { }
|
|
33
|
+
export class CustomProvider extends Custom { }
|
|
34
|
+
export class VolcesProvider extends Volces { }
|
|
35
|
+
export class DeepSeekProvider extends DeepSeek { }
|
|
36
|
+
export class ModelScopeProvider extends ModelScope { }
|
|
37
|
+
export class BailianProvider extends BailianChat { }
|
|
38
|
+
export class ZhipuProvider extends Zhipu { }
|
|
39
|
+
export class KimiProvider extends Kimi { }
|
|
40
|
+
export class KevisualProvider extends Kevisual { }
|
|
41
|
+
|
|
38
42
|
|
|
39
43
|
export const ChatProviderMap = {
|
|
40
44
|
Ollama: OllamaProvider,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { encoding_for_model, get_encoding } from 'tiktoken';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const MODEL_TO_ENCODING = {
|
|
5
|
-
'gpt-4': 'cl100k_base',
|
|
6
|
-
'gpt-4-turbo': 'cl100k_base',
|
|
7
|
-
'gpt-3.5-turbo': 'cl100k_base',
|
|
8
|
-
'text-embedding-ada-002': 'cl100k_base',
|
|
9
|
-
'text-davinci-002': 'p50k_base',
|
|
10
|
-
'text-davinci-003': 'p50k_base',
|
|
11
|
-
} as const;
|
|
12
|
-
|
|
13
|
-
export function numTokensFromString(text: string, model: keyof typeof MODEL_TO_ENCODING = 'gpt-3.5-turbo'): number {
|
|
14
|
-
try {
|
|
15
|
-
// 对于特定模型使用专门的编码器
|
|
16
|
-
const encoder = encoding_for_model(model);
|
|
17
|
-
const tokens = encoder.encode(text);
|
|
18
|
-
const tokenCount = tokens.length;
|
|
19
|
-
encoder.free(); // 释放编码器
|
|
20
|
-
return tokenCount;
|
|
21
|
-
} catch (error) {
|
|
22
|
-
try {
|
|
23
|
-
// 如果模型特定的编码器失败,尝试使用基础编码器
|
|
24
|
-
const encoder = get_encoding(MODEL_TO_ENCODING[model]);
|
|
25
|
-
const tokens = encoder.encode(text);
|
|
26
|
-
const tokenCount = tokens.length;
|
|
27
|
-
encoder.free(); // 释放编码器
|
|
28
|
-
return tokenCount;
|
|
29
|
-
} catch (error) {
|
|
30
|
-
// 如果编码失败,使用一个粗略的估计:平均每个字符0.25个token
|
|
31
|
-
return Math.ceil(text.length * 0.25);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|