@metad/contracts 0.0.1 → 3.6.0-beta.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.
Files changed (204) hide show
  1. package/.babelrc +5 -0
  2. package/.eslintrc.json +18 -0
  3. package/README.md +3 -1
  4. package/babel.config.json +1 -0
  5. package/jest.config.ts +16 -0
  6. package/package.json +5 -5
  7. package/project.json +46 -0
  8. package/src/agent/ai-model.ts +9 -0
  9. package/src/agent/graph.ts +272 -0
  10. package/src/agent/index.ts +5 -0
  11. package/src/agent/token.ts +23 -0
  12. package/src/agent/utils.spec.ts +283 -0
  13. package/src/agent/utils.ts +122 -0
  14. package/src/agent/variables.ts +21 -0
  15. package/src/ai/ai-model.model.ts +228 -0
  16. package/src/ai/ai-provider.model.ts +53 -0
  17. package/src/ai/ai.model.ts +87 -0
  18. package/src/ai/chat-message-feedback.model.ts +31 -0
  19. package/src/ai/chat-message.model.ts +277 -0
  20. package/src/ai/chat.model.ts +207 -0
  21. package/src/ai/copilot-checkpoint.model.ts +25 -0
  22. package/src/ai/copilot-example.model.ts +23 -0
  23. package/src/ai/copilot-model.model.ts +31 -0
  24. package/src/ai/copilot-organization.model.ts +21 -0
  25. package/src/ai/copilot-provider.model.ts +46 -0
  26. package/src/ai/copilot-role.model.ts +48 -0
  27. package/src/ai/copilot-store.model.ts +34 -0
  28. package/src/ai/copilot-user.model.ts +24 -0
  29. package/src/ai/copilot.model.ts +47 -0
  30. package/src/ai/environment.model.ts +18 -0
  31. package/src/ai/feature.model.ts +6 -0
  32. package/src/ai/index.ts +37 -0
  33. package/src/ai/knowledge-doc-page.model.ts +20 -0
  34. package/src/ai/knowledge-doc.model.ts +217 -0
  35. package/src/ai/knowledge-pipeline.ts +106 -0
  36. package/src/ai/knowledge-retrieval-log.model.ts +19 -0
  37. package/src/ai/knowledgebase-task.model.ts +42 -0
  38. package/src/ai/knowledgebase.model.ts +173 -0
  39. package/src/ai/rag-web.ts +54 -0
  40. package/src/ai/rag.ts +24 -0
  41. package/src/ai/role-permissions.ts +13 -0
  42. package/src/ai/types.ts +83 -0
  43. package/src/ai/xpert-agent-execution.model.ts +115 -0
  44. package/src/ai/xpert-agent.model.ts +258 -0
  45. package/src/ai/xpert-project.model.ts +103 -0
  46. package/src/ai/xpert-task.model.ts +32 -0
  47. package/src/ai/xpert-template.model.ts +53 -0
  48. package/src/ai/xpert-tool-mcp.model.ts +72 -0
  49. package/src/ai/xpert-tool.model.ts +211 -0
  50. package/src/ai/xpert-toolset.model.ts +220 -0
  51. package/src/ai/xpert-workflow-task.prompt.ts +71 -0
  52. package/src/ai/xpert-workflow.model.ts +449 -0
  53. package/src/ai/xpert-workspace.model.ts +42 -0
  54. package/src/ai/xpert.model.ts +781 -0
  55. package/src/analytics/ai.ts +79 -0
  56. package/src/analytics/approval-policy.model.ts +40 -0
  57. package/src/analytics/business-area-user.model.ts +43 -0
  58. package/src/analytics/business-area.ts +20 -0
  59. package/src/analytics/certification.model.ts +12 -0
  60. package/src/analytics/chatbi-conversation.model.ts +16 -0
  61. package/src/analytics/chatbi-model.model.ts +22 -0
  62. package/src/analytics/collection.model.ts +8 -0
  63. package/src/analytics/comment.model.ts +14 -0
  64. package/src/analytics/data-source-type.ts +19 -0
  65. package/src/analytics/data-source.ts +72 -0
  66. package/src/analytics/favorite.ts +18 -0
  67. package/src/analytics/features.ts +19 -0
  68. package/src/analytics/feed-model.ts +15 -0
  69. package/src/analytics/gateway.ts +30 -0
  70. package/src/analytics/index.ts +39 -0
  71. package/src/analytics/indicator-app.ts +49 -0
  72. package/{analytics/indicator-market.d.ts → src/analytics/indicator-market.ts} +8 -4
  73. package/src/analytics/indicator.ts +127 -0
  74. package/src/analytics/model-query-log.model.ts +46 -0
  75. package/src/analytics/model-query.ts +22 -0
  76. package/{analytics/notification-destination.d.ts → src/analytics/notification-destination.ts} +14 -10
  77. package/src/analytics/permission-approval-user.model.ts +12 -0
  78. package/src/analytics/permission-approval.model.ts +58 -0
  79. package/src/analytics/project.model.ts +56 -0
  80. package/src/analytics/role-permissions.ts +36 -0
  81. package/src/analytics/schema.ts +300 -0
  82. package/src/analytics/screenshot.model.ts +28 -0
  83. package/src/analytics/semantic-model-entity.ts +49 -0
  84. package/src/analytics/semantic-model-member.ts +45 -0
  85. package/src/analytics/semantic-model.ts +228 -0
  86. package/{analytics/story-point.d.ts → src/analytics/story-point.ts} +16 -10
  87. package/src/analytics/story-template.model.ts +34 -0
  88. package/src/analytics/story-widget.ts +15 -0
  89. package/src/analytics/story.ts +109 -0
  90. package/src/analytics/subscription.ts +43 -0
  91. package/src/analytics/visit.model.ts +39 -0
  92. package/src/analytics/webSocket.ts +53 -0
  93. package/src/api-key.model.ts +11 -0
  94. package/src/base-entity.model.ts +33 -0
  95. package/src/contact.model.ts +45 -0
  96. package/src/core.model.ts +103 -0
  97. package/{country.model.d.ts → src/country.model.ts} +6 -5
  98. package/src/currency.model.ts +582 -0
  99. package/src/custom-smtp.model.ts +27 -0
  100. package/src/date-picker.model.ts +5 -0
  101. package/src/email-template.model.ts +50 -0
  102. package/src/email.model.ts +46 -0
  103. package/src/employee.model.ts +199 -0
  104. package/src/entity-with-members.model.ts +16 -0
  105. package/src/feature.model.ts +108 -0
  106. package/src/file-provider.ts +37 -0
  107. package/src/help-center-article.model.ts +35 -0
  108. package/src/help-center.model.ts +33 -0
  109. package/src/http-status.enum.ts +58 -0
  110. package/src/import-export.model.ts +42 -0
  111. package/src/index.ts +60 -0
  112. package/src/integration/dify.ts +31 -0
  113. package/src/integration/dingtalk.ts +16 -0
  114. package/src/integration/fastgpt.ts +32 -0
  115. package/src/integration/firecrawl.ts +46 -0
  116. package/src/integration/github.ts +149 -0
  117. package/src/integration/index.ts +19 -0
  118. package/src/integration/lark.ts +79 -0
  119. package/src/integration/ragflow.ts +32 -0
  120. package/src/integration/wecom.ts +16 -0
  121. package/src/integration.model.ts +118 -0
  122. package/src/invite.model.ts +144 -0
  123. package/src/language.model.ts +22 -0
  124. package/src/organization-contact.model.ts +84 -0
  125. package/src/organization-department.model.ts +26 -0
  126. package/src/organization-language.model.ts +24 -0
  127. package/src/organization-projects.model.ts +99 -0
  128. package/src/organization-team-employee-model.ts +14 -0
  129. package/src/organization-team-model.ts +25 -0
  130. package/src/organization.model.ts +266 -0
  131. package/src/password-reset.model.ts +24 -0
  132. package/src/plain-object.model.ts +13 -0
  133. package/src/plugin.ts +15 -0
  134. package/src/role-permission.model.ts +123 -0
  135. package/src/role.model.ts +31 -0
  136. package/src/schedule.ts +71 -0
  137. package/src/secret-token.model.ts +15 -0
  138. package/src/seed.model.ts +50 -0
  139. package/src/storage-file.model.ts +46 -0
  140. package/src/tag-entity.model.ts +23 -0
  141. package/src/tenant.model.ts +52 -0
  142. package/src/tools/index.ts +1 -0
  143. package/src/tools/sandbox.ts +5 -0
  144. package/src/translation.model.ts +37 -0
  145. package/src/types.ts +276 -0
  146. package/src/user-organization.model.ts +31 -0
  147. package/src/user.model.ts +147 -0
  148. package/src/visibility.model.ts +6 -0
  149. package/tsconfig.json +22 -0
  150. package/tsconfig.lib.json +10 -0
  151. package/tsconfig.spec.json +9 -0
  152. package/analytics/business-area-user.model.d.ts +0 -29
  153. package/analytics/business-area.d.ts +0 -16
  154. package/analytics/business-group.d.ts +0 -12
  155. package/analytics/data-source-type.d.ts +0 -12
  156. package/analytics/data-source.d.ts +0 -43
  157. package/analytics/favorite.d.ts +0 -14
  158. package/analytics/features.d.ts +0 -19
  159. package/analytics/feed-model.d.ts +0 -13
  160. package/analytics/index.d.ts +0 -20
  161. package/analytics/indicator.d.ts +0 -31
  162. package/analytics/insight-model.d.ts +0 -14
  163. package/analytics/model-query.d.ts +0 -12
  164. package/analytics/role-permissions.d.ts +0 -19
  165. package/analytics/semantic-model.d.ts +0 -42
  166. package/analytics/story-widget.d.ts +0 -11
  167. package/analytics/story.d.ts +0 -18
  168. package/analytics/subscription.d.ts +0 -38
  169. package/analytics/user-business-group.model.d.ts +0 -29
  170. package/analytics/visit.model.d.ts +0 -27
  171. package/analytics/webSocket.d.ts +0 -40
  172. package/base-entity.model.d.ts +0 -21
  173. package/contact.model.d.ts +0 -41
  174. package/core.model.d.ts +0 -25
  175. package/currency.model.d.ts +0 -579
  176. package/email-template.model.d.ts +0 -47
  177. package/email.model.d.ts +0 -36
  178. package/employee.model.d.ts +0 -128
  179. package/entity-with-members.model.d.ts +0 -13
  180. package/feature.model.d.ts +0 -134
  181. package/file-provider.d.ts +0 -31
  182. package/help-center-article.model.d.ts +0 -27
  183. package/help-center.model.d.ts +0 -28
  184. package/http-status.enum.d.ts +0 -57
  185. package/import-export.model.d.ts +0 -36
  186. package/index.cjs +0 -1283
  187. package/index.d.ts +0 -33
  188. package/index.js +0 -1272
  189. package/language.model.d.ts +0 -19
  190. package/organization-contact.model.d.ts +0 -73
  191. package/organization-department.model.d.ts +0 -20
  192. package/organization-language.model.d.ts +0 -18
  193. package/organization-team-employee-model.d.ts +0 -12
  194. package/organization-team-model.d.ts +0 -19
  195. package/organization.model.d.ts +0 -227
  196. package/role-permission.model.d.ts +0 -63
  197. package/role.model.d.ts +0 -21
  198. package/seed.model.d.ts +0 -38
  199. package/tag-entity.model.d.ts +0 -10
  200. package/tenant.model.d.ts +0 -24
  201. package/translation.model.d.ts +0 -20
  202. package/user-organization.model.d.ts +0 -24
  203. package/user.model.d.ts +0 -117
  204. package/visibility.model.d.ts +0 -5
@@ -0,0 +1,46 @@
1
+ import { AiModelTypeEnum } from '../agent'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { IAiProviderEntity } from './ai-model.model'
4
+ import { ICopilot } from './copilot.model'
5
+
6
+ export interface ICopilotProvider extends IBasePerTenantAndOrganizationEntityModel {
7
+ providerName?: string
8
+ providerType?: string
9
+ credentials?: Record<string, any>
10
+ // encryptedConfig?: Record<string, any>
11
+ isValid?: boolean
12
+ lastUsed?: Date
13
+ quotaType?: string
14
+ quotaLimit?: number
15
+ quotaUsed?: number
16
+
17
+ /**
18
+ */
19
+ options?: any
20
+
21
+ copilot?: ICopilot
22
+ copilotId?: string
23
+
24
+ models?: ICopilotProviderModel[]
25
+
26
+ // Temporary properties
27
+ provider?: IAiProviderEntity
28
+ }
29
+
30
+
31
+ export interface ICopilotProviderModel extends IBasePerTenantAndOrganizationEntityModel {
32
+ providerName?: string
33
+ modelName?: string
34
+ modelType?: AiModelTypeEnum
35
+ // encryptedConfig?: Record<string, any>
36
+ modelProperties?: Record<string, any>
37
+ isValid?: boolean
38
+
39
+ // Many to one
40
+ provider?: ICopilotProvider
41
+ providerId?: string
42
+
43
+ // Temporary properties
44
+ }
45
+
46
+ export type TCopilotProviderPublicDto = Omit<ICopilotProvider, 'credentials'>
@@ -0,0 +1,48 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IXpertToolset } from './xpert-toolset.model'
3
+ import { IKnowledgebase } from './knowledgebase.model'
4
+
5
+ /**
6
+ * @deprecated use Xpert
7
+ *
8
+ * Copilot role, business role for the copilot
9
+ */
10
+ export interface ICopilotRole extends IBasePerTenantAndOrganizationEntityModel {
11
+ name: string
12
+ title?: string
13
+ titleCN?: string
14
+ description?: string
15
+ /**
16
+ * 系统提示语
17
+ */
18
+ prompt?: string
19
+ /**
20
+ * 对话开场白
21
+ */
22
+ starters?: string[]
23
+ active?: boolean
24
+ avatar?: string
25
+
26
+ toolsets?: IXpertToolset[]
27
+ /**
28
+ * More configuration
29
+ */
30
+ options?: TCopilotRoleOptions
31
+
32
+ // Many to many relationship
33
+ knowledgebases?: IKnowledgebase[]
34
+ }
35
+
36
+ /**
37
+ * @deprecated use XpertRole
38
+ */
39
+ export type TCopilotRoleOptions = {
40
+ context?: Record<string, any>
41
+ toolsets: {
42
+ [id: string]: {
43
+ [tool: string]: {
44
+ defaultArgs: Record<string, any>
45
+ }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,34 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+
3
+ export interface ICopilotStore extends TCopilotStore, IBasePerTenantAndOrganizationEntityModel {}
4
+
5
+ export interface ICopilotStoreVector extends TCopilotStoreVector, IBasePerTenantAndOrganizationEntityModel {
6
+ }
7
+
8
+ export type TCopilotStore = {
9
+ prefix: string
10
+ key?: string
11
+ value: any
12
+ }
13
+
14
+ export type TCopilotStoreVector = {
15
+ prefix: string
16
+ key: string
17
+ field_name: any
18
+ embedding: number[]
19
+ }
20
+
21
+ export const MEMORY_QA_PROMPT = `Summarize the experience of the above conversation and output a short question and answer.`
22
+ export const MEMORY_PROFILE_PROMPT = `Extract new user profile information from the above conversation in one short sentence. If no new information is available, return nothing.`
23
+
24
+ export type TMemory = {
25
+ memoryId?: string
26
+ }
27
+ export type TMemoryUserProfile = TMemory & {
28
+ profile: string
29
+ context?: string
30
+ }
31
+ export type TMemoryQA = TMemory & {
32
+ question: string
33
+ answer: string
34
+ }
@@ -0,0 +1,24 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IOrganization } from '../organization.model'
3
+ import { IUser } from '../user.model'
4
+ import { AiProvider } from './ai.model'
5
+ import { ICopilot, TCopilotTokenUsage } from './copilot.model'
6
+
7
+ /**
8
+ *
9
+ */
10
+ export interface ICopilotUser extends IBasePerTenantAndOrganizationEntityModel, TCopilotTokenUsage {
11
+ orgId?: string
12
+ org?: IOrganization
13
+ copilotId?: string
14
+ copilot?: ICopilot
15
+ userId?: string
16
+ user?: IUser
17
+ // Associated AI Model provider
18
+ provider?: AiProvider | string
19
+ model?: string
20
+
21
+ // Total tokens used historically
22
+ tokenTotalUsed?: number
23
+ priceTotalUsed?: number
24
+ }
@@ -0,0 +1,47 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { ICopilotModel } from './copilot-model.model'
3
+ import { ICopilotProvider } from './copilot-provider.model'
4
+
5
+ export interface ICopilot extends IBasePerTenantAndOrganizationEntityModel {
6
+ name?: string
7
+ role: AiProviderRole
8
+ enabled?: boolean
9
+
10
+ showTokenizer?: boolean
11
+ /**
12
+ * Balance of Token
13
+ */
14
+ tokenBalance?: number
15
+
16
+ /**
17
+ * Details config for openai api
18
+ */
19
+ options?: any
20
+
21
+ modelProvider?: ICopilotProvider
22
+ copilotModel?: ICopilotModel
23
+
24
+ // Temporary properties
25
+ usage?: TCopilotTokenUsage
26
+ }
27
+
28
+ /**
29
+ * The order of priority is: `Embedding`, `Secondary`, `Primary`
30
+ */
31
+ export enum AiProviderRole {
32
+ Primary = 'primary',
33
+ Secondary = 'secondary',
34
+ Embedding = 'embedding',
35
+ Reasoning = 'reasoning'
36
+ }
37
+
38
+ export type TCopilotTokenUsage = {
39
+ // Token limit for the current period
40
+ tokenLimit?: number
41
+ priceLimit?: number
42
+ // Tokens used in the current period
43
+ tokenUsed?: number
44
+ priceUsed?: number
45
+
46
+ currency?: string
47
+ }
@@ -0,0 +1,18 @@
1
+ import { IBasePerWorkspaceEntityModel } from "./xpert-workspace.model"
2
+
3
+ export type TEnvironmentVariable = {
4
+ name: string
5
+ value: string
6
+ type: 'default' | 'secret'
7
+ /**
8
+ * Has owner, private variable
9
+ */
10
+ owner?: string
11
+ }
12
+
13
+ export interface IEnvironment extends IBasePerWorkspaceEntityModel {
14
+ name: string
15
+ isDefault?: boolean
16
+ isArchived?: boolean
17
+ variables: TEnvironmentVariable[]
18
+ }
@@ -0,0 +1,6 @@
1
+ export enum AiFeatureEnum {
2
+ FEATURE_COPILOT = 'FEATURE_COPILOT',
3
+ FEATURE_COPILOT_KNOWLEDGEBASE = 'FEATURE_COPILOT_KNOWLEDGEBASE',
4
+ FEATURE_COPILOT_CHAT = 'FEATURE_COPILOT_CHAT',
5
+ FEATURE_XPERT = 'FEATURE_XPERT',
6
+ }
@@ -0,0 +1,37 @@
1
+ export * from './ai-model.model'
2
+ export * from './ai.model'
3
+ export * from './chat.model'
4
+ export * from './chat-message.model'
5
+ export * from './chat-message-feedback.model'
6
+ export * from './copilot-checkpoint.model'
7
+ export * from './copilot-example.model'
8
+ export * from './copilot-model.model'
9
+ export * from './copilot-organization.model'
10
+ export * from './copilot-provider.model'
11
+ export * from './copilot-store.model'
12
+ export * from './copilot-user.model'
13
+ export * from './copilot.model'
14
+ export * from './feature.model'
15
+ export * from './rag'
16
+ export * from './rag-web'
17
+ export * from './knowledgebase.model'
18
+ export * from './knowledge-doc.model'
19
+ export * from './knowledge-doc-page.model'
20
+ export * from './role-permissions'
21
+ export * from './xpert-agent-execution.model'
22
+ export * from './xpert-agent.model'
23
+ export * from './xpert-tool.model'
24
+ export * from './xpert-toolset.model'
25
+ export * from './xpert-workspace.model'
26
+ export * from './xpert.model'
27
+ export * from './types'
28
+ export * from './xpert-template.model'
29
+ export * from './xpert-task.model'
30
+ export * from './xpert-workflow.model'
31
+ export * from './xpert-workflow-task.prompt'
32
+ export * from './xpert-tool-mcp.model'
33
+ export * from './xpert-project.model'
34
+ export * from './environment.model'
35
+ export * from './knowledgebase-task.model'
36
+ export * from './knowledge-pipeline'
37
+ export * from './knowledge-retrieval-log.model'
@@ -0,0 +1,20 @@
1
+ import { Document } from '@langchain/core/documents'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { IKnowledgeDocument } from './knowledge-doc.model'
4
+ import { DocumentMetadata, IKnowledgebase } from './knowledgebase.model'
5
+
6
+
7
+ /**
8
+ * Segmented page of a knowledge document
9
+ */
10
+ export interface IKnowledgeDocumentPage<Metadata extends DocumentMetadata = DocumentMetadata>
11
+ extends Document,
12
+ IBasePerTenantAndOrganizationEntityModel {
13
+ documentId?: string
14
+ document?: IKnowledgeDocument
15
+ knowledgebaseId?: string
16
+ knowledgebase?: IKnowledgebase
17
+
18
+ metadata: Metadata
19
+ pageContent: string
20
+ }
@@ -0,0 +1,217 @@
1
+ import { DocumentInterface } from '@langchain/core/documents'
2
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
3
+ import { IIntegration } from '../integration.model'
4
+ import { IStorageFile } from '../storage-file.model'
5
+ import { IKnowledgeDocumentPage } from './knowledge-doc-page.model'
6
+ import { IKnowledgebaseTask } from './knowledgebase-task.model'
7
+ import { DocumentMetadata, IKnowledgebase } from './knowledgebase.model'
8
+ import { TRagWebOptions } from './rag-web'
9
+
10
+
11
+ export type DocumentParserConfig = {
12
+ pages?: number[][]
13
+ replaceWhitespace?: boolean
14
+ removeSensitive?: boolean
15
+ textSplitterType?: string
16
+ textSplitter?: {
17
+ [key: string]: unknown
18
+ }
19
+ transformerType?: string
20
+ transformer?: {
21
+ [key: string]: unknown
22
+ }
23
+ imageUnderstandingType?: string
24
+ imageUnderstanding?: {
25
+ [key: string]: unknown
26
+ }
27
+ }
28
+
29
+ export type DocumentTextParserConfig = DocumentParserConfig & {
30
+ delimiter?: string
31
+ chunkSize?: number | null
32
+ chunkOverlap?: number | null
33
+ }
34
+
35
+ export type DocumentSheetParserConfig = DocumentParserConfig & {
36
+ fields?: string[]
37
+ indexedFields?: string[]
38
+ }
39
+
40
+ /**
41
+ * Import Type:
42
+ * - file: local file
43
+ * - web: web document
44
+ * - feishu
45
+ * - wechat
46
+ * - notion
47
+ * ...
48
+ */
49
+ export enum KDocumentSourceType {
50
+ /**
51
+ * Local files
52
+ */
53
+ FILE = 'file',
54
+ /**
55
+ * Remote files (FTP, SFTP, etc.)
56
+ */
57
+ REMOTE_FILE = 'remote-file',
58
+ /**
59
+ * Web documents
60
+ */
61
+ WEB = 'web',
62
+ /**
63
+ * Folder, parent of other documents
64
+ */
65
+ FOLDER = 'folder',
66
+ }
67
+
68
+ /**
69
+ * Document type category, determine how to process the document.
70
+ */
71
+ export enum KBDocumentCategoryEnum {
72
+ Text = 'text',
73
+ Image = 'image',
74
+ Audio = 'audio',
75
+ Video = 'video',
76
+ Sheet = 'sheet',
77
+ Other = 'other'
78
+ }
79
+
80
+ export enum KBDocumentStatusEnum {
81
+ WAITING = 'waiting',
82
+ VALIDATE = 'validate',
83
+ RUNNING = 'running',
84
+ CANCEL = 'cancel',
85
+ FINISH = 'finish',
86
+ ERROR = 'error'
87
+ }
88
+
89
+ export type TDocumentWebOptions = TRagWebOptions & {
90
+ //
91
+ }
92
+
93
+ export type TDocSourceConfig = {
94
+ key?: string
95
+ }
96
+
97
+ export type TKnowledgeDocument = {
98
+ disabled?: boolean
99
+
100
+ knowledgebaseId?: string
101
+ knowledgebase?: IKnowledgebase
102
+
103
+ /**
104
+ * @deprecated use fileUrl instead
105
+ */
106
+ storageFileId?: string
107
+ /**
108
+ * @deprecated use fileUrl instead
109
+ */
110
+ storageFile?: IStorageFile
111
+
112
+ /**
113
+ * thumbnail base64 string
114
+ */
115
+ thumbnail?: string
116
+
117
+ /**
118
+ * default parser ID
119
+ */
120
+ parserId: string
121
+ parserConfig: DocumentTextParserConfig
122
+ /**
123
+ * where dose this document come from
124
+ */
125
+ sourceType?: KDocumentSourceType | null
126
+ sourceConfig?: TDocSourceConfig
127
+ /**
128
+ * document type category
129
+ */
130
+ category?: KBDocumentCategoryEnum | null
131
+ /**
132
+ * Local file extension or Web doc provider
133
+ */
134
+ type: string
135
+ /**
136
+ * file name or web url
137
+ */
138
+ name: string
139
+ /**
140
+ * where does it store
141
+ */
142
+ filePath: string
143
+ fileUrl?: string
144
+
145
+ size: string
146
+
147
+ tokenNum?: number | null
148
+ chunkNum?: number | null
149
+
150
+ progress?: number | null
151
+ /**
152
+ * process message
153
+ */
154
+ processMsg?: string | null
155
+
156
+ processBeginAt?: Date | null
157
+
158
+ processDuation?: number | null
159
+
160
+ /**
161
+ * is it validate (0: wasted,1: validate)
162
+ */
163
+ status?: KBDocumentStatusEnum
164
+ /**
165
+ * The background job id
166
+ */
167
+ jobId?: string
168
+
169
+ options?: TDocumentWebOptions
170
+
171
+ integrationId?: string
172
+ integration?: IIntegration
173
+
174
+ pages?: IKnowledgeDocumentPage[]
175
+ tasks?: IKnowledgebaseTask[]
176
+ }
177
+
178
+ /**
179
+ * Document, include file, web pages, folder, virtual, etc.
180
+ */
181
+ export interface IKnowledgeDocument extends TKnowledgeDocument, IBasePerTenantAndOrganizationEntityModel {
182
+ // parentId?: string | null
183
+ parent?: IKnowledgeDocument | null
184
+ children?: IKnowledgeDocument[]
185
+
186
+ // Temp
187
+ chunks?: DocumentInterface[]
188
+ metadata?: Metadata
189
+ }
190
+
191
+ export interface IDocumentChunk<Metadata = DocumentMetadata> {
192
+ id: string
193
+ pageContent: string
194
+ metadata: Metadata & {
195
+ knowledgeId?: string
196
+ }
197
+ collection_id: string
198
+ }
199
+
200
+ export type Metadata = Record<string, any>
201
+
202
+ export interface IKnowledgeDocumentCreateInput
203
+ extends IKnowledgeDocument, IBasePerTenantAndOrganizationEntityModel {}
204
+
205
+ export interface IKnowledgeDocumentUpdateInput
206
+ extends Partial<IKnowledgeDocumentCreateInput> {
207
+ id?: string;
208
+ }
209
+
210
+ export interface IKnowledgeDocumentFindInput
211
+ extends IBasePerTenantAndOrganizationEntityModel,
212
+ IKnowledgeDocument {}
213
+
214
+
215
+ export function isDocumentSheet(type: string): boolean {
216
+ return ['csv', 'xls', 'xlsx', 'ods'].includes(type)
217
+ }
@@ -0,0 +1,106 @@
1
+ import { I18nObject, letterStartSUID } from '../types'
2
+ import { ICopilotModel } from './copilot-model.model'
3
+ import { KnowledgeStructureEnum } from './knowledgebase.model'
4
+ import { IWorkflowNode, WorkflowNodeTypeEnum } from './xpert-workflow.model'
5
+
6
+ export interface IDocumentNodeProvider {
7
+ name: string
8
+ label: I18nObject
9
+ icon?: {
10
+ svg?: string
11
+ color?: string
12
+ }
13
+ description?: I18nObject
14
+ helpUrl?: string
15
+ configSchema: any;
16
+ }
17
+
18
+ export enum DocumentSourceProviderCategoryEnum {
19
+ LocalFile = 'local-file',
20
+ RemoteFile = 'remote-file',
21
+ WebCrawl = 'web-crawl',
22
+ Database = 'database'
23
+ }
24
+
25
+ export interface IDocumentSourceProvider extends IDocumentNodeProvider {
26
+ category: DocumentSourceProviderCategoryEnum
27
+ }
28
+
29
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
30
+ export interface IDocumentProcessorProvider extends IDocumentNodeProvider {}
31
+
32
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
33
+ export interface IDocumentChunkerProvider extends IDocumentNodeProvider {}
34
+
35
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
36
+ export interface IDocumentUnderstandingProvider extends IDocumentNodeProvider {
37
+
38
+ }
39
+
40
+
41
+ /**
42
+ * Knowledge Pipeline Source Node
43
+ */
44
+ export interface IWFNSource extends IWorkflowNode {
45
+ type: WorkflowNodeTypeEnum.SOURCE,
46
+ provider: string
47
+ config: any;
48
+ integrationId?: string
49
+ }
50
+
51
+ export interface IWFNProcessor extends IWorkflowNode {
52
+ type: WorkflowNodeTypeEnum.PROCESSOR,
53
+ provider: string
54
+ config: any;
55
+ input: string
56
+ integrationId?: string
57
+ }
58
+
59
+ export interface IWFNChunker extends IWorkflowNode {
60
+ type: WorkflowNodeTypeEnum.CHUNKER,
61
+ provider: string
62
+ config: any;
63
+ input: string
64
+ }
65
+
66
+ export interface IWFNUnderstanding extends IWorkflowNode {
67
+ type: WorkflowNodeTypeEnum.UNDERSTANDING,
68
+ provider: string
69
+ config: any;
70
+ input: string
71
+ visionModel?: ICopilotModel
72
+ }
73
+
74
+ export interface IWFNKnowledgeBase extends IWorkflowNode {
75
+ type: WorkflowNodeTypeEnum.KNOWLEDGE_BASE,
76
+ structure?: KnowledgeStructureEnum
77
+ /**
78
+ * Documents input variables
79
+ */
80
+ inputs?: string[]
81
+ /**
82
+ * Embedding model
83
+ */
84
+ copilotModel?: ICopilotModel
85
+ /**
86
+ * (optional) Rerank model
87
+ */
88
+ rerankModel?: ICopilotModel
89
+ documents?: string[]
90
+ }
91
+
92
+ export function genPipelineSourceKey() {
93
+ return letterStartSUID('Source_')
94
+ }
95
+ export function genPipelineProcessorKey() {
96
+ return letterStartSUID('Processor_')
97
+ }
98
+ export function genPipelineChunkerKey() {
99
+ return letterStartSUID('Chunker_')
100
+ }
101
+ export function genPipelineUnderstandingKey() {
102
+ return letterStartSUID('Understanding_')
103
+ }
104
+ export function genPipelineKnowledgeBaseKey() {
105
+ return letterStartSUID('KnowledgeBase_')
106
+ }
@@ -0,0 +1,19 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from "../base-entity.model"
2
+ import { IKnowledgebase } from "./knowledgebase.model"
3
+
4
+ export interface IKnowledgeRetrievalLog extends IBasePerTenantAndOrganizationEntityModel {
5
+ // 检索触发的查询内容
6
+ query: string
7
+ // 检索来源,比如:ChatBI、ChatDB、API
8
+ source: string;
9
+
10
+ // 命中分段数
11
+ hitCount: number;
12
+
13
+ // 请求 ID(用于一次对话追踪)
14
+ requestId: string;
15
+
16
+ knowledgebaseId?: string
17
+ // 与知识库关联
18
+ knowledgebase?: IKnowledgebase
19
+ }
@@ -0,0 +1,42 @@
1
+ import { IBasePerTenantAndOrganizationEntityModel } from '../base-entity.model'
2
+ import { IChatConversation } from './chat.model';
3
+ import { IKnowledgeDocument } from './knowledge-doc.model';
4
+ import { IKnowledgebase } from './knowledgebase.model'
5
+
6
+ /**
7
+ * Task executions of a knowledgebase
8
+ */
9
+ export interface IKnowledgebaseTask extends IBasePerTenantAndOrganizationEntityModel {
10
+ knowledgebaseId?: string
11
+ knowledgebase?: IKnowledgebase
12
+
13
+ conversationId?: string;
14
+ conversation?: IChatConversation
15
+
16
+ taskType: string; // preprocess / re-embed / cleanup ...
17
+ status?: 'pending' | 'running' | 'success' | 'failed' | 'cancelled';
18
+ steps: TaskStep[];
19
+ error?: string;
20
+
21
+ /**
22
+ * Temporary content: Documents not actually processed in the task yet
23
+ */
24
+ context?: {
25
+ documents?: Partial<IKnowledgeDocument>[]
26
+ }
27
+
28
+ /**
29
+ * Many to Many of documents in task
30
+ */
31
+ documents?: IKnowledgeDocument[]
32
+ }
33
+
34
+ export interface TaskStep {
35
+ name: string; // step name: load, preprocess, split, embed, store
36
+ status: 'pending' | 'running' | 'success' | 'failed';
37
+ progress: number; // 0 - 100
38
+ log?: string; // optional logs
39
+ error_message?: string; // optional error
40
+ started_at?: Date;
41
+ finished_at?: Date;
42
+ }