@shenghuabi/knowledge 1.0.21

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.
Files changed (112) hide show
  1. package/embedding/embedding.service.d.ts +4 -0
  2. package/embedding/index.d.ts +2 -0
  3. package/embedding/type.d.ts +12 -0
  4. package/embedding.mjs +61 -0
  5. package/embedding.mjs.map +7 -0
  6. package/file-parser/const.d.ts +20 -0
  7. package/file-parser/dict/dict-format/dsl/dsl-parse.service.d.ts +6 -0
  8. package/file-parser/dict/dict-format/dsl/dsl.format.d.ts +1 -0
  9. package/file-parser/dict/dict-format/mdict-parse.service.d.ts +20 -0
  10. package/file-parser/dict/dict-format/stardict-parse.service.d.ts +12 -0
  11. package/file-parser/dict/dict-format/yaml-parse.service.d.ts +25 -0
  12. package/file-parser/dict/dict.service.d.ts +10 -0
  13. package/file-parser/dict/index.d.ts +2 -0
  14. package/file-parser/dict/type.d.ts +24 -0
  15. package/file-parser/document-file-parser.service.d.ts +15 -0
  16. package/file-parser/document-loader/pdf-img.loader.d.ts +8 -0
  17. package/file-parser/document-loader/xlsx.loader.d.ts +6 -0
  18. package/file-parser/file-parser.service.d.ts +13 -0
  19. package/file-parser/index.d.ts +6 -0
  20. package/file-parser/text-analyse.d.ts +1 -0
  21. package/file-parser/text-parser.d.ts +3 -0
  22. package/file-parser/vl-parser/markdown.parser.d.ts +8 -0
  23. package/file-parser.mjs +850 -0
  24. package/file-parser.mjs.map +7 -0
  25. package/image/convert.d.ts +25 -0
  26. package/image/extract.d.ts +2 -0
  27. package/image/image-metadata.d.ts +2 -0
  28. package/image/index.d.ts +3 -0
  29. package/image.mjs +134 -0
  30. package/image.mjs.map +7 -0
  31. package/knowledge/article/article.knowledge.service.d.ts +53 -0
  32. package/knowledge/article/define/config.d.ts +60 -0
  33. package/knowledge/article/define/index.d.ts +2 -0
  34. package/knowledge/article/define/payload.d.ts +16 -0
  35. package/knowledge/article/index.d.ts +2 -0
  36. package/knowledge/common/common.knowledge.service.d.ts +240 -0
  37. package/knowledge/common/define/base.d.ts +7 -0
  38. package/knowledge/common/define/chunk.d.ts +14 -0
  39. package/knowledge/common/define/embedding.d.ts +5 -0
  40. package/knowledge/common/define/index.d.ts +3 -0
  41. package/knowledge/common/index.d.ts +1 -0
  42. package/knowledge/common/query.d.ts +7 -0
  43. package/knowledge/const.d.ts +95 -0
  44. package/knowledge/define/index.d.ts +245 -0
  45. package/knowledge/dict/define/config.d.ts +68 -0
  46. package/knowledge/dict/define/index.d.ts +1 -0
  47. package/knowledge/dict/dict.knowledge.service.d.ts +67 -0
  48. package/knowledge/graph/const.d.ts +20 -0
  49. package/knowledge/graph/define/config.d.ts +169 -0
  50. package/knowledge/graph/define/define.d.ts +402 -0
  51. package/knowledge/graph/define/index.d.ts +2 -0
  52. package/knowledge/graph/define/query.d.ts +14 -0
  53. package/knowledge/graph/graph.handle.service.d.ts +28 -0
  54. package/knowledge/graph/graph.knowledge.service.d.ts +40 -0
  55. package/knowledge/graph/graph.local.service.d.ts +85 -0
  56. package/knowledge/graph/graph.query.service.d.ts +160 -0
  57. package/knowledge/graph/graph.service.d.ts +24 -0
  58. package/knowledge/graph/graph.util.service.d.ts +31 -0
  59. package/knowledge/graph/type.d.ts +11 -0
  60. package/knowledge/graph/util/format-attr.d.ts +48 -0
  61. package/knowledge/graph/util/graph-util.d.ts +5 -0
  62. package/knowledge/graph/util.d.ts +1 -0
  63. package/knowledge/graph/vecotr-format.d.ts +11 -0
  64. package/knowledge/index.d.ts +17 -0
  65. package/knowledge/knowledge.manager.service.d.ts +42 -0
  66. package/knowledge/knowledge.util.service.d.ts +21 -0
  67. package/knowledge/normal/define/config.d.ts +60 -0
  68. package/knowledge/normal/define/index.d.ts +1 -0
  69. package/knowledge/normal/normal.knowledge.service.d.ts +49 -0
  70. package/knowledge/template.format.d.ts +6 -0
  71. package/knowledge/type.d.ts +28 -0
  72. package/knowledge.mjs +2856 -0
  73. package/knowledge.mjs.map +7 -0
  74. package/ocr/FileUtils.d.ts +4 -0
  75. package/ocr/ImageRaw.d.ts +11 -0
  76. package/ocr/index.d.ts +2 -0
  77. package/ocr/model-config.d.ts +8 -0
  78. package/ocr/ocr.d.ts +29 -0
  79. package/ocr.mjs +351 -0
  80. package/ocr.mjs.map +7 -0
  81. package/package.json +105 -0
  82. package/qdrant/index.d.ts +3 -0
  83. package/qdrant/qdrant-client.service.d.ts +396 -0
  84. package/qdrant/qdrant-server.service.d.ts +21 -0
  85. package/qdrant/type.d.ts +18 -0
  86. package/qdrant/util.d.ts +1 -0
  87. package/qdrant.mjs +274 -0
  88. package/qdrant.mjs.map +7 -0
  89. package/util/batch-queue.d.ts +6 -0
  90. package/util/cache-queue.d.ts +10 -0
  91. package/util/clone.d.ts +1 -0
  92. package/util/embedding-queue.d.ts +3 -0
  93. package/util/get-hash.d.ts +2 -0
  94. package/util/html-to-text/index.d.ts +5 -0
  95. package/util/index.d.ts +10 -0
  96. package/util/is-truthy.d.ts +1 -0
  97. package/util/log.service.d.ts +6 -0
  98. package/util/promise.d.ts +5 -0
  99. package/util/type.d.ts +1 -0
  100. package/util/uniq-object-key.d.ts +1 -0
  101. package/util.mjs +219 -0
  102. package/util.mjs.map +7 -0
  103. package/worker/custom-cache.d.ts +28 -0
  104. package/worker/ocr/index.d.ts +17 -0
  105. package/worker/ocr.mjs +75 -0
  106. package/worker/ocr.mjs.map +7 -0
  107. package/worker/reranker.mjs +180 -0
  108. package/worker/reranker.mjs.map +7 -0
  109. package/worker/set-transformers-config.d.ts +19 -0
  110. package/worker/text2vec/index.d.ts +9 -0
  111. package/worker/text2vec.mjs +194 -0
  112. package/worker/text2vec.mjs.map +7 -0
@@ -0,0 +1,160 @@
1
+ import { FileChunkPayload } from '../common/define/chunk';
2
+ export declare class GraphQueryService {
3
+ #private;
4
+ query(params: {
5
+ node?: string;
6
+ edge?: string;
7
+ }, question: string): Promise<{
8
+ nodes: {
9
+ list: {
10
+ kind: "node";
11
+ id: string;
12
+ chunkId: string;
13
+ fileName: string;
14
+ name: string;
15
+ description: string;
16
+ type: string;
17
+ }[];
18
+ name: string;
19
+ type: string;
20
+ degree: number;
21
+ }[];
22
+ edges: {
23
+ list: {
24
+ chunkId: string;
25
+ kind: "edge";
26
+ name: string;
27
+ fileName: string;
28
+ id: string;
29
+ source: string;
30
+ target: string;
31
+ description: string;
32
+ strength: number;
33
+ keywords?: string[] | undefined;
34
+ }[];
35
+ name: string;
36
+ source: string;
37
+ target: string;
38
+ degree: number;
39
+ }[];
40
+ chunks: {
41
+ chunk: string;
42
+ fileName: string;
43
+ loc: {
44
+ lines: {
45
+ from: number;
46
+ to: number;
47
+ };
48
+ };
49
+ hash: string;
50
+ embeddingChunk: string;
51
+ }[];
52
+ }>;
53
+ searchNode(str: string, selectedList: string[]): Promise<string[]>;
54
+ getFileNameList(): Promise<{
55
+ hits: {
56
+ id: string | number;
57
+ version: number;
58
+ score: number;
59
+ payload?: Record<string, unknown> | {
60
+ [key: string]: unknown;
61
+ } | null | undefined;
62
+ vector?: Record<string, unknown> | number[] | number[][] | {
63
+ [key: string]: number[] | number[][] | {
64
+ indices: number[];
65
+ values: number[];
66
+ } | undefined;
67
+ } | null | undefined;
68
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
69
+ order_value?: number | Record<string, unknown> | null | undefined;
70
+ }[];
71
+ id: string | number;
72
+ lookup?: Record<string, unknown> | {
73
+ id: string | number;
74
+ payload?: Record<string, unknown> | {
75
+ [key: string]: unknown;
76
+ } | null | undefined;
77
+ vector?: Record<string, unknown> | number[] | number[][] | {
78
+ [key: string]: number[] | number[][] | {
79
+ indices: number[];
80
+ values: number[];
81
+ } | undefined;
82
+ } | null | undefined;
83
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
84
+ order_value?: number | Record<string, unknown> | null | undefined;
85
+ } | null | undefined;
86
+ }[]>;
87
+ getChunkContent(fileName: string): Promise<{
88
+ payload: FileChunkPayload & {
89
+ knowledge: string;
90
+ };
91
+ id: string | number;
92
+ version: number;
93
+ score: number;
94
+ vector?: Record<string, unknown> | number[] | number[][] | {
95
+ [key: string]: number[] | number[][] | {
96
+ indices: number[];
97
+ values: number[];
98
+ } | undefined;
99
+ } | null | undefined;
100
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
101
+ order_value?: number | Record<string, unknown> | null | undefined;
102
+ }[]>;
103
+ getGraphData(): Promise<import("graphology-types").SerializedGraph<import("./define").GraphNodeAttr, import("./define").GraphEdgeAttr, import("graphology-types").Attributes>>;
104
+ queryNode(list: string[], options: {
105
+ nodeSizeLimit: number;
106
+ }): Promise<{
107
+ id: string | number;
108
+ payload?: Record<string, unknown> | {
109
+ [key: string]: unknown;
110
+ } | null | undefined;
111
+ vector?: Record<string, unknown> | number[] | number[][] | {
112
+ [key: string]: number[] | number[][] | {
113
+ indices: number[];
114
+ values: number[];
115
+ } | undefined;
116
+ } | null | undefined;
117
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
118
+ order_value?: number | Record<string, unknown> | null | undefined;
119
+ }[]>;
120
+ fuzzyQueryNode(content: string, options: {
121
+ /** 限制多少个节点 */
122
+ nodeLimit: number;
123
+ /** 精度 */
124
+ score: number;
125
+ /** 限制每个节点多少信息 */
126
+ nodeSizeLimit: number;
127
+ }): Promise<{
128
+ hits: {
129
+ id: string | number;
130
+ version: number;
131
+ score: number;
132
+ payload?: Record<string, unknown> | {
133
+ [key: string]: unknown;
134
+ } | null | undefined;
135
+ vector?: Record<string, unknown> | number[] | number[][] | {
136
+ [key: string]: number[] | number[][] | {
137
+ indices: number[];
138
+ values: number[];
139
+ } | undefined;
140
+ } | null | undefined;
141
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
142
+ order_value?: number | Record<string, unknown> | null | undefined;
143
+ }[];
144
+ id: string | number;
145
+ lookup?: Record<string, unknown> | {
146
+ id: string | number;
147
+ payload?: Record<string, unknown> | {
148
+ [key: string]: unknown;
149
+ } | null | undefined;
150
+ vector?: Record<string, unknown> | number[] | number[][] | {
151
+ [key: string]: number[] | number[][] | {
152
+ indices: number[];
153
+ values: number[];
154
+ } | undefined;
155
+ } | null | undefined;
156
+ shard_key?: string | number | Record<string, unknown> | null | undefined;
157
+ order_value?: number | Record<string, unknown> | null | undefined;
158
+ } | null | undefined;
159
+ }[]>;
160
+ }
@@ -0,0 +1,24 @@
1
+ import { GraphLocalService } from './graph.local.service';
2
+ import { GraphKnolwdgeService } from './graph.knowledge.service';
3
+ import { GraphSplitNodeInput } from './type';
4
+ import { EdgeItemType, EdgePayload, KnowledgeGraphItemType, NodeItemType } from './define/define';
5
+ import { GraphQueryService } from './graph.query.service';
6
+ import { QueryParams } from './const';
7
+ export declare class GraphService {
8
+ #private;
9
+ local: GraphLocalService;
10
+ knowledge: GraphKnolwdgeService;
11
+ graphExport$$: import("static-injector").Signal<import("graphology-types").SerializedGraph<import("./define").GraphNodeAttr, import("./define").GraphEdgeAttr, import("graphology-types").Attributes>>;
12
+ createQuery(queryParams: QueryParams): GraphQueryService;
13
+ loadDataInit$$: import("static-injector").Signal<Promise<void>>;
14
+ initGraph(): import("graphology").default<import("./define").GraphNodeAttr, import("./define").GraphEdgeAttr, import("graphology-types").Attributes>;
15
+ getGraph(): import("graphology").default<import("./define").GraphNodeAttr, import("./define").GraphEdgeAttr, import("graphology-types").Attributes>;
16
+ splitNode(options: GraphSplitNodeInput): Promise<void>;
17
+ mergeNode(options: GraphSplitNodeInput): Promise<void>;
18
+ changeNodeDescription(item: NodeItemType): Promise<void>;
19
+ changeEdge(item: EdgeItemType, oldItem: Pick<EdgePayload, 'id' | 'source' | 'target'>): Promise<void>;
20
+ add(input: KnowledgeGraphItemType): Promise<void>;
21
+ deleteNodeItem(item: Pick<NodeItemType, 'id' | 'name'>): Promise<void>;
22
+ deleteEdge(item: Pick<EdgeItemType, 'id' | 'source' | 'target'>): Promise<void>;
23
+ deleteNodeByName(name: string): Promise<void>;
24
+ }
@@ -0,0 +1,31 @@
1
+ export declare class GraphKnowledgeUtilService {
2
+ #private;
3
+ updateContext(fn: () => Promise<{
4
+ upsert?: {
5
+ nodes?: {
6
+ id: any;
7
+ payload: any;
8
+ }[];
9
+ edges?: {
10
+ id: any;
11
+ payload: any;
12
+ }[];
13
+ keywords?: {
14
+ id: any;
15
+ payload: any;
16
+ }[];
17
+ };
18
+ delete?: {
19
+ nodes?: {
20
+ id: any;
21
+ }[] | {
22
+ filter?: any;
23
+ };
24
+ edges?: {
25
+ id: any;
26
+ }[] | {
27
+ filter?: any;
28
+ };
29
+ };
30
+ }>): Promise<Promise<(void | void[])[]>>;
31
+ }
@@ -0,0 +1,11 @@
1
+ import { FileChunkPayload } from '../common/define/chunk';
2
+ import { EdgeQueryPayload, NodeQueryPayload } from './define';
3
+ export interface QueryContext {
4
+ nodes: NodeQueryPayload[];
5
+ edges: EdgeQueryPayload[];
6
+ chunks: FileChunkPayload[];
7
+ }
8
+ export type GraphSplitNodeInput = {
9
+ node: string;
10
+ list: string[];
11
+ };
@@ -0,0 +1,48 @@
1
+ import { GraphNodeAttr } from '../define/define';
2
+ export declare function getNodeType(list: GraphNodeAttr['list']): string;
3
+ export declare function formatNodeAttr2(list: {
4
+ data: any;
5
+ score: number;
6
+ }[]): {
7
+ list: {
8
+ kind: "node";
9
+ id: string;
10
+ chunkId: string;
11
+ fileName: string;
12
+ name: string;
13
+ description: string;
14
+ type: string;
15
+ }[];
16
+ name: string;
17
+ type: string;
18
+ degree: number;
19
+ };
20
+ export type FormatGraphNodeAttr = ReturnType<typeof formatNodeAttr2>;
21
+ export type QueryGraphNodeAttr = FormatGraphNodeAttr & {
22
+ degree: number;
23
+ };
24
+ export declare function formatEdgeAttr2(list: {
25
+ data: any;
26
+ score: number;
27
+ }[]): {
28
+ list: {
29
+ chunkId: string;
30
+ kind: "edge";
31
+ name: string;
32
+ fileName: string;
33
+ id: string;
34
+ source: string;
35
+ target: string;
36
+ description: string;
37
+ strength: number;
38
+ keywords?: string[] | undefined;
39
+ }[];
40
+ name: string;
41
+ source: string;
42
+ target: string;
43
+ degree: number;
44
+ };
45
+ export type FormatGraphEdgeAttr = ReturnType<typeof formatEdgeAttr2>;
46
+ export type QueryGraphEdgeAttr = FormatGraphEdgeAttr & {
47
+ degree: number;
48
+ };
@@ -0,0 +1,5 @@
1
+ import { QueryGraphEdgeAttr, QueryGraphNodeAttr } from './format-attr';
2
+ /** 用来计算权重 */
3
+ export declare function sigmoid(z: number): number;
4
+ export declare function getNodeStrList(item: QueryGraphNodeAttr, index: number): (string | number)[];
5
+ export declare function getEdgeStrList(item: QueryGraphEdgeAttr, i: number): (string | number)[];
@@ -0,0 +1 @@
1
+ export declare function getEdgeName(source: string, target: string): string;
@@ -0,0 +1,11 @@
1
+ export declare function edgeVectorString(options: {
2
+ description: string;
3
+ source: string;
4
+ target: string;
5
+ keywords?: string[];
6
+ }): string;
7
+ export declare function nodeVectorString(options: {
8
+ type: string;
9
+ name: string;
10
+ description: string;
11
+ }): string;
@@ -0,0 +1,17 @@
1
+ export * from './knowledge.manager.service';
2
+ export * from './normal/normal.knowledge.service';
3
+ export * from './dict/dict.knowledge.service';
4
+ export * from './graph/graph.handle.service';
5
+ export * from './graph/graph.knowledge.service';
6
+ export * from './graph/graph.local.service';
7
+ export * from './graph/graph.query.service';
8
+ export * from './graph/graph.service';
9
+ export * from './normal/define';
10
+ export * from './dict/define';
11
+ export * from './graph/define';
12
+ export * from './const';
13
+ export * from './graph/const';
14
+ export * from './type';
15
+ export * from './graph/type';
16
+ export * from './article';
17
+ export * from './common';
@@ -0,0 +1,42 @@
1
+ import { RootStaticInjectOptions } from 'static-injector';
2
+ import { ImportList, KnowledgeCollectionInput, KnowledgeConfig, KnowledgeType } from './type';
3
+ import { DictKnowledgeService } from './dict/dict.knowledge.service';
4
+ import { GraphKnolwdgeService } from './graph/graph.knowledge.service';
5
+ import type { Provider, R3Injector, Signal } from 'static-injector';
6
+ import { DictInput } from '@shenghuabi/knowledge/file-parser';
7
+ import { NormalKnowledgeService } from './normal/normal.knowledge.service';
8
+ import { GraphService } from './graph/graph.service';
9
+ import { ArticleKnowledgeService } from './article';
10
+ export declare class KnowledgeManagerService extends RootStaticInjectOptions {
11
+ #private;
12
+ getConfig(name: string): Promise<Signal<KnowledgeConfig>>;
13
+ protected getInjector(name: string, extraProviders?: Provider[]): Promise<R3Injector>;
14
+ create(name: string, collection: KnowledgeCollectionInput): Promise<void>;
15
+ /** 普通知识库和图谱知识库用 */
16
+ importFiles(name: string, filePathList: string[], signal?: AbortSignal): Promise<void>;
17
+ /** 字典专用 */
18
+ importDict(name: string, input: DictInput): Promise<number>;
19
+ get(name: string): Promise<ArticleKnowledgeService | NormalKnowledgeService | DictKnowledgeService | GraphKnolwdgeService>;
20
+ importTextFile(name: string, dir: string, filePathList: string[], signal?: AbortSignal): Promise<void>;
21
+ deleteItem(name: string, fileName: string): Promise<void>;
22
+ updateItem(name: string, fileName: string, content: string): Promise<void>;
23
+ /** 通用接口 */
24
+ addCollection(name: string, collection: KnowledgeCollectionInput): Promise<void>;
25
+ /** 通用接口 */
26
+ deleteCollection(name: string, collectionName: string): Promise<boolean>;
27
+ changeActivateCollection(name: string, collectionName: string): Promise<void>;
28
+ destroy(name: string): Promise<void>;
29
+ export(name: string): Promise<{
30
+ collection: string;
31
+ name?: string | undefined;
32
+ creation_time?: string | null | undefined;
33
+ size?: number | undefined;
34
+ checksum?: string | null | undefined;
35
+ }[]>;
36
+ import(name: string, options: {
37
+ snapshotList: ImportList;
38
+ activateCollection: string;
39
+ type: KnowledgeType;
40
+ }): Promise<void>;
41
+ getGraph(name: string): Promise<GraphService>;
42
+ }
@@ -0,0 +1,21 @@
1
+ import { RootStaticInjectOptions } from 'static-injector';
2
+ import { QdrantClient } from '@qdrant/qdrant-js';
3
+ import { CacheQueue } from '@shenghuabi/knowledge/util';
4
+ import { NormalizeFs } from '@cyia/vfs2';
5
+ export declare class KnowledgeUtilService extends RootStaticInjectOptions {
6
+ #private;
7
+ multiDelete(list: string[], filter: Parameters<QdrantClient['delete']>[1]): Promise<void[]>;
8
+ updatePointsQueue<Vector extends Record<string, number[]>, Payload extends Record<string, any>>(collectionName: string): CacheQueue<{
9
+ id: string | number;
10
+ vector: Vector;
11
+ payload: Payload;
12
+ }>;
13
+ destroyKnowledge(list: string[], vfs?: NormalizeFs): Promise<void>;
14
+ export(list: string[]): Promise<{
15
+ collection: string;
16
+ name?: string | undefined;
17
+ creation_time?: string | null | undefined;
18
+ size?: number | undefined;
19
+ checksum?: string | null | undefined;
20
+ }[]>;
21
+ }
@@ -0,0 +1,60 @@
1
+ import * as v from 'valibot';
2
+ export declare const NormalCollectionDefine: v.ObjectSchema<{
3
+ readonly collectionName: v.StringSchema<undefined>;
4
+ readonly embeddingTemplate: v.OptionalSchema<v.ObjectSchema<{
5
+ readonly entry: v.OptionalSchema<v.ObjectSchema<{
6
+ readonly enable: v.BooleanSchema<undefined>;
7
+ readonly value: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
8
+ }, undefined>, undefined>;
9
+ }, undefined>, undefined>;
10
+ readonly size: v.NumberSchema<undefined>;
11
+ }, undefined>;
12
+ export declare const NormalKnowledgeConfigDefine: v.SchemaWithPipe<readonly [v.ObjectSchema<{
13
+ readonly type: v.OptionalSchema<v.LiteralSchema<"normal", undefined>, "normal">;
14
+ readonly collectionList: v.ArraySchema<v.ObjectSchema<{
15
+ readonly collectionName: v.StringSchema<undefined>;
16
+ readonly embeddingTemplate: v.OptionalSchema<v.ObjectSchema<{
17
+ readonly entry: v.OptionalSchema<v.ObjectSchema<{
18
+ readonly enable: v.BooleanSchema<undefined>;
19
+ readonly value: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
20
+ }, undefined>, undefined>;
21
+ }, undefined>, undefined>;
22
+ readonly size: v.NumberSchema<undefined>;
23
+ }, undefined>, undefined>;
24
+ readonly name: v.StringSchema<undefined>;
25
+ readonly activateCollection: v.StringSchema<undefined>;
26
+ }, undefined>, v.TransformAction<{
27
+ type: "normal";
28
+ collectionList: {
29
+ collectionName: string;
30
+ embeddingTemplate?: {
31
+ entry?: {
32
+ enable: boolean;
33
+ value?: string | undefined;
34
+ } | undefined;
35
+ } | undefined;
36
+ size: number;
37
+ }[];
38
+ name: string;
39
+ activateCollection: string;
40
+ }, {
41
+ /** 激活的普通知识库(文件切片) */
42
+ activateName: string;
43
+ type: "normal";
44
+ collectionList: {
45
+ collectionName: string;
46
+ embeddingTemplate?: {
47
+ entry?: {
48
+ enable: boolean;
49
+ value?: string | undefined;
50
+ } | undefined;
51
+ } | undefined;
52
+ size: number;
53
+ }[];
54
+ name: string;
55
+ activateCollection: string;
56
+ }>]>;
57
+ export type NormalKnowledgeConfig = v.InferInput<typeof NormalKnowledgeConfigDefine>;
58
+ export type NormalKnowledgeConfigInline = v.InferOutput<typeof NormalKnowledgeConfigDefine>;
59
+ export type NormalCollectionInput = v.InferInput<typeof NormalCollectionDefine>;
60
+ export type NormalCollectionInlineType = v.InferOutput<typeof NormalCollectionDefine>;
@@ -0,0 +1 @@
1
+ export * from './config';
@@ -0,0 +1,49 @@
1
+ import { NormalCollectionInlineType } from './define/config';
2
+ import { FileChunkPayload } from '../common/define/chunk';
3
+ import { CommonKnowledgeService } from '../common/common.knowledge.service';
4
+ export declare class NormalKnowledgeService extends CommonKnowledgeService {
5
+ #private;
6
+ protected KeyWordIndex: string[];
7
+ protected getPayload(fileName: string, content: string): Record<string, any>;
8
+ formatCollection(input: any): {
9
+ collectionName: string;
10
+ embeddingTemplate?: {
11
+ entry?: {
12
+ enable: boolean;
13
+ value?: string | undefined;
14
+ } | undefined;
15
+ } | undefined;
16
+ size: number;
17
+ };
18
+ protected createCollection(collection: NormalCollectionInlineType): Promise<void>;
19
+ /** 创建知识库 */
20
+ create(collection: NormalCollectionInlineType): Promise<void>;
21
+ insertItemOnly(fileName: string, content: string, collectionList: NormalCollectionInlineType[]): Promise<{
22
+ id: string;
23
+ vector: {
24
+ chunk: number[];
25
+ };
26
+ payload: FileChunkPayload;
27
+ }[][]>;
28
+ protected _insertItem(fileName: string, content: string): Promise<false | {
29
+ id: string;
30
+ vector: {
31
+ chunk: number[];
32
+ };
33
+ payload: FileChunkPayload;
34
+ }[][]>;
35
+ insertItem(fileName: string, content: string, signal?: AbortSignal): Promise<void>;
36
+ deleteItem(fileName: string): Promise<void>;
37
+ updateItem(fileName: string, content: string): Promise<void>;
38
+ addCollection(collection: NormalCollectionInlineType): Promise<void>;
39
+ deleteCollection(collectionName: string): Promise<boolean>;
40
+ changeActivateCollection(collectionName: string): Promise<void>;
41
+ export(): Promise<{
42
+ collection: string;
43
+ name?: string | undefined;
44
+ creation_time?: string | null | undefined;
45
+ size?: number | undefined;
46
+ checksum?: string | null | undefined;
47
+ }[]>;
48
+ destroy(): Promise<void>;
49
+ }
@@ -0,0 +1,6 @@
1
+ export declare function interpolate(input: string, value: Record<string, any>): string;
2
+ /** 词条格式化 */
3
+ export declare function entryFormat(payload: Record<string, any>, knowledge: string, defaultContent: string, embedingTemplate?: {
4
+ value?: string;
5
+ enable: boolean;
6
+ }): string;
@@ -0,0 +1,28 @@
1
+ import { GraphCollectionInlineType, GraphCollectionInput, GraphKnowledgeConfig } from './graph/define/config';
2
+ import { NormalCollectionInlineType, NormalCollectionInput, NormalKnowledgeConfig } from './normal/define/config';
3
+ import { DictCollectionInlineType, DictCollectionInput, DictKnowledgeConfig } from './dict/define/config';
4
+ import * as v from 'valibot';
5
+ import { KnowledgeConfigDefine } from './define';
6
+ import { ArticleKnowledgeConfig } from './article';
7
+ export type KnowledgeConfigInput = NormalKnowledgeConfig | GraphKnowledgeConfig | DictKnowledgeConfig | ArticleKnowledgeConfig;
8
+ export type KnowledgeConfig = v.InferOutput<typeof KnowledgeConfigDefine>;
9
+ export type TextSplitter = (content: string, metadata: Record<string, any>, collectionName: string) => Promise<{
10
+ pageContent: string;
11
+ metadata: Record<string, any>;
12
+ }[]>;
13
+ export type OCR = (data: string) => Promise<string>;
14
+ export type Text2Vec = <T extends string | string[]>(value: T,
15
+ /** 集合名字 */ collectionName: string) => Promise<T extends string ? number[] : number[][]>;
16
+ export type Log = {
17
+ info: (...args: any) => void;
18
+ warn: (...args: any) => void;
19
+ error: (...args: any) => void;
20
+ };
21
+ export type KnowledgeCollection = NormalCollectionInlineType | DictCollectionInlineType | GraphCollectionInlineType;
22
+ export type KnowledgeCollectionInput = NormalCollectionInput | DictCollectionInput | GraphCollectionInput;
23
+ export type ImportList = {
24
+ collection: string;
25
+ checksum?: string | null;
26
+ filePath: string;
27
+ }[];
28
+ export type KnowledgeType = NonNullable<KnowledgeConfigInput['type']>;