@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.
- package/.babelrc +5 -0
- package/.eslintrc.json +18 -0
- package/README.md +3 -1
- package/babel.config.json +1 -0
- package/jest.config.ts +16 -0
- package/package.json +5 -5
- package/project.json +46 -0
- package/src/agent/ai-model.ts +9 -0
- package/src/agent/graph.ts +272 -0
- package/src/agent/index.ts +5 -0
- package/src/agent/token.ts +23 -0
- package/src/agent/utils.spec.ts +283 -0
- package/src/agent/utils.ts +122 -0
- package/src/agent/variables.ts +21 -0
- package/src/ai/ai-model.model.ts +228 -0
- package/src/ai/ai-provider.model.ts +53 -0
- package/src/ai/ai.model.ts +87 -0
- package/src/ai/chat-message-feedback.model.ts +31 -0
- package/src/ai/chat-message.model.ts +277 -0
- package/src/ai/chat.model.ts +207 -0
- package/src/ai/copilot-checkpoint.model.ts +25 -0
- package/src/ai/copilot-example.model.ts +23 -0
- package/src/ai/copilot-model.model.ts +31 -0
- package/src/ai/copilot-organization.model.ts +21 -0
- package/src/ai/copilot-provider.model.ts +46 -0
- package/src/ai/copilot-role.model.ts +48 -0
- package/src/ai/copilot-store.model.ts +34 -0
- package/src/ai/copilot-user.model.ts +24 -0
- package/src/ai/copilot.model.ts +47 -0
- package/src/ai/environment.model.ts +18 -0
- package/src/ai/feature.model.ts +6 -0
- package/src/ai/index.ts +37 -0
- package/src/ai/knowledge-doc-page.model.ts +20 -0
- package/src/ai/knowledge-doc.model.ts +217 -0
- package/src/ai/knowledge-pipeline.ts +106 -0
- package/src/ai/knowledge-retrieval-log.model.ts +19 -0
- package/src/ai/knowledgebase-task.model.ts +42 -0
- package/src/ai/knowledgebase.model.ts +173 -0
- package/src/ai/rag-web.ts +54 -0
- package/src/ai/rag.ts +24 -0
- package/src/ai/role-permissions.ts +13 -0
- package/src/ai/types.ts +83 -0
- package/src/ai/xpert-agent-execution.model.ts +115 -0
- package/src/ai/xpert-agent.model.ts +258 -0
- package/src/ai/xpert-project.model.ts +103 -0
- package/src/ai/xpert-task.model.ts +32 -0
- package/src/ai/xpert-template.model.ts +53 -0
- package/src/ai/xpert-tool-mcp.model.ts +72 -0
- package/src/ai/xpert-tool.model.ts +211 -0
- package/src/ai/xpert-toolset.model.ts +220 -0
- package/src/ai/xpert-workflow-task.prompt.ts +71 -0
- package/src/ai/xpert-workflow.model.ts +449 -0
- package/src/ai/xpert-workspace.model.ts +42 -0
- package/src/ai/xpert.model.ts +781 -0
- package/src/analytics/ai.ts +79 -0
- package/src/analytics/approval-policy.model.ts +40 -0
- package/src/analytics/business-area-user.model.ts +43 -0
- package/src/analytics/business-area.ts +20 -0
- package/src/analytics/certification.model.ts +12 -0
- package/src/analytics/chatbi-conversation.model.ts +16 -0
- package/src/analytics/chatbi-model.model.ts +22 -0
- package/src/analytics/collection.model.ts +8 -0
- package/src/analytics/comment.model.ts +14 -0
- package/src/analytics/data-source-type.ts +19 -0
- package/src/analytics/data-source.ts +72 -0
- package/src/analytics/favorite.ts +18 -0
- package/src/analytics/features.ts +19 -0
- package/src/analytics/feed-model.ts +15 -0
- package/src/analytics/gateway.ts +30 -0
- package/src/analytics/index.ts +39 -0
- package/src/analytics/indicator-app.ts +49 -0
- package/{analytics/indicator-market.d.ts → src/analytics/indicator-market.ts} +8 -4
- package/src/analytics/indicator.ts +127 -0
- package/src/analytics/model-query-log.model.ts +46 -0
- package/src/analytics/model-query.ts +22 -0
- package/{analytics/notification-destination.d.ts → src/analytics/notification-destination.ts} +14 -10
- package/src/analytics/permission-approval-user.model.ts +12 -0
- package/src/analytics/permission-approval.model.ts +58 -0
- package/src/analytics/project.model.ts +56 -0
- package/src/analytics/role-permissions.ts +36 -0
- package/src/analytics/schema.ts +300 -0
- package/src/analytics/screenshot.model.ts +28 -0
- package/src/analytics/semantic-model-entity.ts +49 -0
- package/src/analytics/semantic-model-member.ts +45 -0
- package/src/analytics/semantic-model.ts +228 -0
- package/{analytics/story-point.d.ts → src/analytics/story-point.ts} +16 -10
- package/src/analytics/story-template.model.ts +34 -0
- package/src/analytics/story-widget.ts +15 -0
- package/src/analytics/story.ts +109 -0
- package/src/analytics/subscription.ts +43 -0
- package/src/analytics/visit.model.ts +39 -0
- package/src/analytics/webSocket.ts +53 -0
- package/src/api-key.model.ts +11 -0
- package/src/base-entity.model.ts +33 -0
- package/src/contact.model.ts +45 -0
- package/src/core.model.ts +103 -0
- package/{country.model.d.ts → src/country.model.ts} +6 -5
- package/src/currency.model.ts +582 -0
- package/src/custom-smtp.model.ts +27 -0
- package/src/date-picker.model.ts +5 -0
- package/src/email-template.model.ts +50 -0
- package/src/email.model.ts +46 -0
- package/src/employee.model.ts +199 -0
- package/src/entity-with-members.model.ts +16 -0
- package/src/feature.model.ts +108 -0
- package/src/file-provider.ts +37 -0
- package/src/help-center-article.model.ts +35 -0
- package/src/help-center.model.ts +33 -0
- package/src/http-status.enum.ts +58 -0
- package/src/import-export.model.ts +42 -0
- package/src/index.ts +60 -0
- package/src/integration/dify.ts +31 -0
- package/src/integration/dingtalk.ts +16 -0
- package/src/integration/fastgpt.ts +32 -0
- package/src/integration/firecrawl.ts +46 -0
- package/src/integration/github.ts +149 -0
- package/src/integration/index.ts +19 -0
- package/src/integration/lark.ts +79 -0
- package/src/integration/ragflow.ts +32 -0
- package/src/integration/wecom.ts +16 -0
- package/src/integration.model.ts +118 -0
- package/src/invite.model.ts +144 -0
- package/src/language.model.ts +22 -0
- package/src/organization-contact.model.ts +84 -0
- package/src/organization-department.model.ts +26 -0
- package/src/organization-language.model.ts +24 -0
- package/src/organization-projects.model.ts +99 -0
- package/src/organization-team-employee-model.ts +14 -0
- package/src/organization-team-model.ts +25 -0
- package/src/organization.model.ts +266 -0
- package/src/password-reset.model.ts +24 -0
- package/src/plain-object.model.ts +13 -0
- package/src/plugin.ts +15 -0
- package/src/role-permission.model.ts +123 -0
- package/src/role.model.ts +31 -0
- package/src/schedule.ts +71 -0
- package/src/secret-token.model.ts +15 -0
- package/src/seed.model.ts +50 -0
- package/src/storage-file.model.ts +46 -0
- package/src/tag-entity.model.ts +23 -0
- package/src/tenant.model.ts +52 -0
- package/src/tools/index.ts +1 -0
- package/src/tools/sandbox.ts +5 -0
- package/src/translation.model.ts +37 -0
- package/src/types.ts +276 -0
- package/src/user-organization.model.ts +31 -0
- package/src/user.model.ts +147 -0
- package/src/visibility.model.ts +6 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +10 -0
- package/tsconfig.spec.json +9 -0
- package/analytics/business-area-user.model.d.ts +0 -29
- package/analytics/business-area.d.ts +0 -16
- package/analytics/business-group.d.ts +0 -12
- package/analytics/data-source-type.d.ts +0 -12
- package/analytics/data-source.d.ts +0 -43
- package/analytics/favorite.d.ts +0 -14
- package/analytics/features.d.ts +0 -19
- package/analytics/feed-model.d.ts +0 -13
- package/analytics/index.d.ts +0 -20
- package/analytics/indicator.d.ts +0 -31
- package/analytics/insight-model.d.ts +0 -14
- package/analytics/model-query.d.ts +0 -12
- package/analytics/role-permissions.d.ts +0 -19
- package/analytics/semantic-model.d.ts +0 -42
- package/analytics/story-widget.d.ts +0 -11
- package/analytics/story.d.ts +0 -18
- package/analytics/subscription.d.ts +0 -38
- package/analytics/user-business-group.model.d.ts +0 -29
- package/analytics/visit.model.d.ts +0 -27
- package/analytics/webSocket.d.ts +0 -40
- package/base-entity.model.d.ts +0 -21
- package/contact.model.d.ts +0 -41
- package/core.model.d.ts +0 -25
- package/currency.model.d.ts +0 -579
- package/email-template.model.d.ts +0 -47
- package/email.model.d.ts +0 -36
- package/employee.model.d.ts +0 -128
- package/entity-with-members.model.d.ts +0 -13
- package/feature.model.d.ts +0 -134
- package/file-provider.d.ts +0 -31
- package/help-center-article.model.d.ts +0 -27
- package/help-center.model.d.ts +0 -28
- package/http-status.enum.d.ts +0 -57
- package/import-export.model.d.ts +0 -36
- package/index.cjs +0 -1283
- package/index.d.ts +0 -33
- package/index.js +0 -1272
- package/language.model.d.ts +0 -19
- package/organization-contact.model.d.ts +0 -73
- package/organization-department.model.d.ts +0 -20
- package/organization-language.model.d.ts +0 -18
- package/organization-team-employee-model.d.ts +0 -12
- package/organization-team-model.d.ts +0 -19
- package/organization.model.d.ts +0 -227
- package/role-permission.model.d.ts +0 -63
- package/role.model.d.ts +0 -21
- package/seed.model.d.ts +0 -38
- package/tag-entity.model.d.ts +0 -10
- package/tenant.model.d.ts +0 -24
- package/translation.model.d.ts +0 -20
- package/user-organization.model.d.ts +0 -24
- package/user.model.d.ts +0 -117
- 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
|
+
}
|
package/src/ai/index.ts
ADDED
|
@@ -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
|
+
}
|