mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 21:27:20 +00:00
feat(server): workspace file embedding & ignored docs model impl (#11804)
fix AI-30 fix AI-31
This commit is contained in:
@@ -114,11 +114,13 @@ model Workspace {
|
||||
name String? @db.VarChar
|
||||
avatarKey String? @map("avatar_key") @db.VarChar
|
||||
|
||||
features WorkspaceFeature[]
|
||||
docs WorkspaceDoc[]
|
||||
permissions WorkspaceUserRole[]
|
||||
docPermissions WorkspaceDocUserRole[]
|
||||
blobs Blob[]
|
||||
features WorkspaceFeature[]
|
||||
docs WorkspaceDoc[]
|
||||
permissions WorkspaceUserRole[]
|
||||
docPermissions WorkspaceDocUserRole[]
|
||||
blobs Blob[]
|
||||
AiWorkspaceIgnoredDocs AiWorkspaceIgnoredDocs[]
|
||||
AiWorkspaceFiles AiWorkspaceFiles[]
|
||||
|
||||
@@map("workspaces")
|
||||
}
|
||||
@@ -481,6 +483,53 @@ model AiWorkspaceEmbedding {
|
||||
@@map("ai_workspace_embeddings")
|
||||
}
|
||||
|
||||
model AiWorkspaceIgnoredDocs {
|
||||
workspaceId String @map("workspace_id") @db.VarChar
|
||||
docId String @map("doc_id") @db.VarChar
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
|
||||
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@id([workspaceId, docId])
|
||||
@@map("ai_workspace_ignored_docs")
|
||||
}
|
||||
|
||||
model AiWorkspaceFiles {
|
||||
workspaceId String @map("workspace_id") @db.VarChar
|
||||
fileId String @map("file_id") @db.VarChar
|
||||
fileName String @map("file_name") @db.VarChar
|
||||
mimeType String @map("mime_type") @db.VarChar
|
||||
size Int @db.Integer
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
|
||||
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
|
||||
|
||||
embeddings AiWorkspaceFileEmbedding[]
|
||||
|
||||
@@id([workspaceId, fileId])
|
||||
@@map("ai_workspace_files")
|
||||
}
|
||||
|
||||
model AiWorkspaceFileEmbedding {
|
||||
workspaceId String @map("workspace_id") @db.VarChar
|
||||
fileId String @map("file_id") @db.VarChar
|
||||
// a file can be divided into multiple chunks and embedded separately.
|
||||
chunk Int @db.Integer
|
||||
content String @db.VarChar
|
||||
embedding Unsupported("vector(1024)")
|
||||
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
|
||||
file AiWorkspaceFiles @relation(fields: [workspaceId, fileId], references: [workspaceId, fileId], onDelete: Cascade)
|
||||
|
||||
@@id([workspaceId, fileId])
|
||||
@@unique([workspaceId, fileId, chunk])
|
||||
@@index([embedding], map: "ai_workspace_file_embeddings_idx")
|
||||
@@map("ai_workspace_file_embeddings")
|
||||
}
|
||||
|
||||
enum AiJobStatus {
|
||||
pending
|
||||
running
|
||||
|
||||
Reference in New Issue
Block a user