@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.
@@ -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: string;
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 ProviderMap: {
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
- export { BaseChat, CustomProvider, DeepSeekProvider, ModelScopeProvider, OllamaProvider, ProviderManager, ProviderMap, SiliconFlowProvider, VolcesProvider, readStream };
230
- export type { BaseChatInterface, BaseChatOptions, BaseChatUsageInterface, ChatMessage, ChatMessageComplete, ChatMessageOptions, ChatMessageStream, ChatStream, EmbeddingMessage, EmbeddingMessageComplete };
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 };