@kevisual/ai 0.0.4 → 0.0.6
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 +434 -0
- package/dist/ai-provider-browser.js +24652 -0
- package/dist/ai-provider.d.ts +208 -4
- package/dist/ai-provider.js +1496 -89
- package/package.json +13 -3
package/dist/ai-provider.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import * as openai_resources_index_mjs from 'openai/resources/index.mjs';
|
|
2
2
|
import OpenAI, { OpenAI as OpenAI$1 } from 'openai';
|
|
3
|
+
import * as openai_resources_embeddings_mjs from 'openai/resources/embeddings.mjs';
|
|
4
|
+
import * as _kevisual_permission from '@kevisual/permission';
|
|
5
|
+
import { Permission } from '@kevisual/permission';
|
|
3
6
|
|
|
4
7
|
type ChatMessage = OpenAI.Chat.Completions.ChatCompletionMessageParam;
|
|
5
8
|
type ChatMessageOptions = Partial<OpenAI.Chat.Completions.ChatCompletionCreateParams>;
|
|
@@ -30,7 +33,7 @@ type BaseChatOptions<T = Record<string, any>> = {
|
|
|
30
33
|
/**
|
|
31
34
|
* 默认baseURL
|
|
32
35
|
*/
|
|
33
|
-
baseURL
|
|
36
|
+
baseURL?: string;
|
|
34
37
|
/**
|
|
35
38
|
* 默认模型
|
|
36
39
|
*/
|
|
@@ -48,6 +51,7 @@ type BaseChatOptions<T = Record<string, any>> = {
|
|
|
48
51
|
*/
|
|
49
52
|
stream?: boolean;
|
|
50
53
|
} & T;
|
|
54
|
+
declare const getIsBrowser: () => any;
|
|
51
55
|
declare class BaseChat implements BaseChatInterface, BaseChatUsageInterface {
|
|
52
56
|
/**
|
|
53
57
|
* 默认baseURL
|
|
@@ -204,7 +208,7 @@ declare const CustomProvider: typeof Custom;
|
|
|
204
208
|
declare const VolcesProvider: typeof Volces;
|
|
205
209
|
declare const DeepSeekProvider: typeof DeepSeek;
|
|
206
210
|
declare const ModelScopeProvider: typeof ModelScope;
|
|
207
|
-
declare const
|
|
211
|
+
declare const ChatProviderMap: {
|
|
208
212
|
Ollama: typeof Ollama;
|
|
209
213
|
SiliconFlow: typeof SiliconFlow;
|
|
210
214
|
Custom: typeof Custom;
|
|
@@ -226,5 +230,205 @@ declare class ProviderManager {
|
|
|
226
230
|
chat(messages: ChatMessage[]): Promise<openai_resources_index_mjs.ChatCompletion>;
|
|
227
231
|
}
|
|
228
232
|
|
|
229
|
-
|
|
230
|
-
|
|
233
|
+
type KnowledgeOptions<T = Record<string, any>> = BaseChatOptions<{
|
|
234
|
+
embeddingModel?: string;
|
|
235
|
+
splitSize?: number;
|
|
236
|
+
splitOverlap?: number;
|
|
237
|
+
batchSize?: number;
|
|
238
|
+
} & T>;
|
|
239
|
+
/**
|
|
240
|
+
* 知识库构建
|
|
241
|
+
* 1. Embedding generate
|
|
242
|
+
* 2. retriever
|
|
243
|
+
* 3. reranker
|
|
244
|
+
*/
|
|
245
|
+
declare class KnowledgeBase extends BaseChat {
|
|
246
|
+
embeddingModel: string;
|
|
247
|
+
splitSize: number;
|
|
248
|
+
splitOverlap: number;
|
|
249
|
+
batchSize: number;
|
|
250
|
+
constructor(options: KnowledgeOptions);
|
|
251
|
+
/**
|
|
252
|
+
* 生成embedding
|
|
253
|
+
* @param text
|
|
254
|
+
* @returns
|
|
255
|
+
*/
|
|
256
|
+
generateEmbedding(text: string | string[]): Promise<{
|
|
257
|
+
code: number;
|
|
258
|
+
data: openai_resources_embeddings_mjs.Embedding[];
|
|
259
|
+
message?: undefined;
|
|
260
|
+
} | {
|
|
261
|
+
code: any;
|
|
262
|
+
message: string;
|
|
263
|
+
data?: undefined;
|
|
264
|
+
}>;
|
|
265
|
+
/**
|
|
266
|
+
* 批量生成embedding
|
|
267
|
+
* @param text
|
|
268
|
+
* @returns
|
|
269
|
+
*/
|
|
270
|
+
generateEmbeddingBatch(textArray: string[]): Promise<number[][]>;
|
|
271
|
+
/**
|
|
272
|
+
* 分割长文本, 生成对应的embedding
|
|
273
|
+
* @param text
|
|
274
|
+
* @returns
|
|
275
|
+
*/
|
|
276
|
+
splitLongText(text: string): Promise<{
|
|
277
|
+
text: string;
|
|
278
|
+
embedding: number[];
|
|
279
|
+
}[]>;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
declare class SiliconFlowKnowledge extends KnowledgeBase {
|
|
283
|
+
static BASE_URL: string;
|
|
284
|
+
constructor(options: KnowledgeOptions);
|
|
285
|
+
rerank(data: RerankOptions): Promise<any>;
|
|
286
|
+
}
|
|
287
|
+
type RerankOptions = {
|
|
288
|
+
model: string;
|
|
289
|
+
query: string;
|
|
290
|
+
documents: string[];
|
|
291
|
+
top_n?: number;
|
|
292
|
+
return_documents?: boolean;
|
|
293
|
+
max_chunks_per_doc?: number;
|
|
294
|
+
overlap_tokens?: number;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
type AIModel = {
|
|
298
|
+
/**
|
|
299
|
+
* 提供商
|
|
300
|
+
*/
|
|
301
|
+
provider: string;
|
|
302
|
+
/**
|
|
303
|
+
* 模型名称
|
|
304
|
+
*/
|
|
305
|
+
model: string;
|
|
306
|
+
/**
|
|
307
|
+
* 模型组
|
|
308
|
+
*/
|
|
309
|
+
group: string;
|
|
310
|
+
/**
|
|
311
|
+
* 每日请求频率限制
|
|
312
|
+
*/
|
|
313
|
+
dayLimit?: number;
|
|
314
|
+
/**
|
|
315
|
+
* 总的token限制
|
|
316
|
+
*/
|
|
317
|
+
tokenLimit?: number;
|
|
318
|
+
};
|
|
319
|
+
type SecretKey = {
|
|
320
|
+
/**
|
|
321
|
+
* 组
|
|
322
|
+
*/
|
|
323
|
+
group: string;
|
|
324
|
+
/**
|
|
325
|
+
* API密钥
|
|
326
|
+
*/
|
|
327
|
+
apiKey: string;
|
|
328
|
+
/**
|
|
329
|
+
* 解密密钥
|
|
330
|
+
*/
|
|
331
|
+
decryptKey?: string;
|
|
332
|
+
};
|
|
333
|
+
type AIConfig = {
|
|
334
|
+
title?: string;
|
|
335
|
+
description?: string;
|
|
336
|
+
models: AIModel[];
|
|
337
|
+
secretKeys: SecretKey[];
|
|
338
|
+
permission?: Permission;
|
|
339
|
+
filter?: {
|
|
340
|
+
objectKey: string;
|
|
341
|
+
type: 'array' | 'object';
|
|
342
|
+
operate: 'removeAttribute' | 'remove';
|
|
343
|
+
attribute: string[];
|
|
344
|
+
}[];
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
declare function encryptAES(plainText: string, secretKey: string): string;
|
|
348
|
+
declare function decryptAES(cipherText: string, secretKey: string): string;
|
|
349
|
+
type GetProviderOpts = {
|
|
350
|
+
model: string;
|
|
351
|
+
group: string;
|
|
352
|
+
decryptKey?: string;
|
|
353
|
+
};
|
|
354
|
+
type ProviderResult = {
|
|
355
|
+
provider: string;
|
|
356
|
+
model: string;
|
|
357
|
+
group: string;
|
|
358
|
+
apiKey: string;
|
|
359
|
+
dayLimit?: number;
|
|
360
|
+
tokenLimit?: number;
|
|
361
|
+
baseURL?: string;
|
|
362
|
+
/**
|
|
363
|
+
* 解密密钥
|
|
364
|
+
*/
|
|
365
|
+
decryptKey?: string;
|
|
366
|
+
};
|
|
367
|
+
declare class AIConfigParser {
|
|
368
|
+
private config;
|
|
369
|
+
result: ProviderResult;
|
|
370
|
+
constructor(config: AIConfig);
|
|
371
|
+
/**
|
|
372
|
+
* 获取模型配置
|
|
373
|
+
* @param opts
|
|
374
|
+
* @returns
|
|
375
|
+
*/
|
|
376
|
+
getProvider(opts: GetProviderOpts): ProviderResult;
|
|
377
|
+
/**
|
|
378
|
+
* 获取解密密钥
|
|
379
|
+
* @param opts
|
|
380
|
+
* @returns
|
|
381
|
+
*/
|
|
382
|
+
getSecretKey(opts?: {
|
|
383
|
+
getCache?: (key: string) => Promise<string>;
|
|
384
|
+
setCache?: (key: string, value: string) => Promise<void>;
|
|
385
|
+
providerResult?: ProviderResult;
|
|
386
|
+
}): Promise<string>;
|
|
387
|
+
/**
|
|
388
|
+
* 加密
|
|
389
|
+
* @param plainText
|
|
390
|
+
* @param secretKey
|
|
391
|
+
* @returns
|
|
392
|
+
*/
|
|
393
|
+
encrypt(plainText: string, secretKey: string): string;
|
|
394
|
+
/**
|
|
395
|
+
* 解密
|
|
396
|
+
* @param cipherText
|
|
397
|
+
* @param secretKey
|
|
398
|
+
* @returns
|
|
399
|
+
*/
|
|
400
|
+
decrypt(cipherText: string, secretKey: string): string;
|
|
401
|
+
/**
|
|
402
|
+
* 获取模型配置
|
|
403
|
+
* @returns
|
|
404
|
+
*/
|
|
405
|
+
getSelectOpts(): {
|
|
406
|
+
group: string;
|
|
407
|
+
apiKey: string;
|
|
408
|
+
decryptKey?: string;
|
|
409
|
+
provider: string;
|
|
410
|
+
model: string;
|
|
411
|
+
dayLimit?: number;
|
|
412
|
+
tokenLimit?: number;
|
|
413
|
+
}[];
|
|
414
|
+
getConfig(keepSecret?: boolean, config?: AIConfig): AIConfig | {
|
|
415
|
+
secretKeys: {
|
|
416
|
+
apiKey: any;
|
|
417
|
+
decryptKey: any;
|
|
418
|
+
group: string;
|
|
419
|
+
}[];
|
|
420
|
+
title?: string;
|
|
421
|
+
description?: string;
|
|
422
|
+
models?: AIModel[];
|
|
423
|
+
permission?: _kevisual_permission.Permission;
|
|
424
|
+
filter?: {
|
|
425
|
+
objectKey: string;
|
|
426
|
+
type: "array" | "object";
|
|
427
|
+
operate: "removeAttribute" | "remove";
|
|
428
|
+
attribute: string[];
|
|
429
|
+
}[];
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export { AIConfigParser, BaseChat, ChatProviderMap, CustomProvider, DeepSeekProvider, KnowledgeBase, ModelScopeProvider, OllamaProvider, ProviderManager, SiliconFlowKnowledge, SiliconFlowProvider, VolcesProvider, decryptAES, encryptAES, getIsBrowser, readStream };
|
|
434
|
+
export type { AIConfig, AIModel, BaseChatInterface, BaseChatOptions, BaseChatUsageInterface, ChatMessage, ChatMessageComplete, ChatMessageOptions, ChatMessageStream, ChatStream, EmbeddingMessage, EmbeddingMessageComplete, GetProviderOpts, KnowledgeOptions, ProviderResult, RerankOptions, SecretKey };
|