mirror of
http://112.124.100.131/huang.ze/ebiz-dify-ai.git
synced 2025-12-10 03:16:51 +08:00
Initial commit
This commit is contained in:
339
web/models/datasets.ts
Normal file
339
web/models/datasets.ts
Normal file
@@ -0,0 +1,339 @@
|
||||
import { AppMode } from './app'
|
||||
|
||||
export type DataSet = {
|
||||
id: string
|
||||
name: string
|
||||
description: string
|
||||
permission: 'only_me' | 'all_team_members'
|
||||
data_source_type: 'upload_file'
|
||||
indexing_technique: 'high_quality' | 'economy'
|
||||
created_by: string
|
||||
updated_by: string
|
||||
updated_at: number
|
||||
app_count: number
|
||||
document_count: number
|
||||
word_count: number
|
||||
}
|
||||
|
||||
export type File = {
|
||||
id: string
|
||||
name: string
|
||||
size: number
|
||||
extension: string
|
||||
mime_type: string
|
||||
created_by: string
|
||||
created_at: number
|
||||
}
|
||||
|
||||
export type DataSetListResponse = {
|
||||
data: DataSet[]
|
||||
}
|
||||
|
||||
export type IndexingEstimateResponse = {
|
||||
tokens: number
|
||||
total_price: number
|
||||
currency: string
|
||||
total_segments: number
|
||||
preview: string[]
|
||||
}
|
||||
|
||||
export interface FileIndexingEstimateResponse extends IndexingEstimateResponse {
|
||||
total_nodes: number
|
||||
}
|
||||
|
||||
export type IndexingStatusResponse = {
|
||||
id: string
|
||||
indexing_status: DocumentIndexingStatus
|
||||
processing_started_at: number
|
||||
parsing_completed_at: number
|
||||
cleaning_completed_at: number
|
||||
splitting_completed_at: number
|
||||
completed_at: any
|
||||
paused_at: any
|
||||
error: any
|
||||
stopped_at: any
|
||||
completed_segments: number
|
||||
total_segments: number
|
||||
}
|
||||
|
||||
export type ProcessMode = 'automatic' | 'custom'
|
||||
|
||||
export type ProcessRuleResponse = {
|
||||
mode: ProcessMode
|
||||
rules: Rules
|
||||
}
|
||||
|
||||
export type Rules = {
|
||||
pre_processing_rules: PreProcessingRule[]
|
||||
segmentation: Segmentation
|
||||
}
|
||||
|
||||
export type PreProcessingRule = {
|
||||
id: string
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
export type Segmentation = {
|
||||
separator: string
|
||||
max_tokens: number
|
||||
}
|
||||
|
||||
export const DocumentIndexingStatusList = [
|
||||
'waiting',
|
||||
'parsing',
|
||||
'cleaning',
|
||||
'splitting',
|
||||
'indexing',
|
||||
'paused',
|
||||
'error',
|
||||
'completed',
|
||||
] as const
|
||||
|
||||
export type DocumentIndexingStatus = typeof DocumentIndexingStatusList[number]
|
||||
|
||||
export const DisplayStatusList = [
|
||||
"queuing",
|
||||
"indexing",
|
||||
"paused",
|
||||
"error",
|
||||
"available",
|
||||
"enabled",
|
||||
"disabled",
|
||||
"archived",
|
||||
] as const;
|
||||
|
||||
export type DocumentDisplayStatus = typeof DisplayStatusList[number];
|
||||
|
||||
export type DataSourceInfo = {
|
||||
upload_file: {
|
||||
id: string
|
||||
name: string
|
||||
size: number
|
||||
mime_type: string
|
||||
created_at: number
|
||||
created_by: string
|
||||
extension: string
|
||||
}
|
||||
}
|
||||
|
||||
export type InitialDocumentDetail = {
|
||||
id: string
|
||||
position: number
|
||||
dataset_id: string
|
||||
data_source_type: 'upload_file'
|
||||
data_source_info: DataSourceInfo
|
||||
dataset_process_rule_id: string
|
||||
name: string
|
||||
created_from: 'api' | 'web'
|
||||
created_by: string
|
||||
created_at: number
|
||||
indexing_status: DocumentIndexingStatus
|
||||
display_status: DocumentDisplayStatus
|
||||
}
|
||||
|
||||
export type SimpleDocumentDetail = InitialDocumentDetail & {
|
||||
enabled: boolean
|
||||
word_count: number
|
||||
error?: string | null
|
||||
archived: boolean
|
||||
updated_at: number
|
||||
hit_count: number
|
||||
dataset_process_rule_id?: string
|
||||
}
|
||||
|
||||
export type DocumentListResponse = {
|
||||
data: SimpleDocumentDetail[]
|
||||
has_more: boolean
|
||||
total: number
|
||||
page: number
|
||||
limit: number
|
||||
}
|
||||
|
||||
export type CreateDocumentReq = {
|
||||
original_document_id?: string
|
||||
indexing_technique?: string;
|
||||
name: string
|
||||
data_source: DataSource
|
||||
process_rule: ProcessRule
|
||||
}
|
||||
|
||||
export type DataSource = {
|
||||
type: string
|
||||
info: string // upload_file_id
|
||||
name: string
|
||||
}
|
||||
|
||||
export type ProcessRule = {
|
||||
mode: string
|
||||
rules: Rules
|
||||
}
|
||||
|
||||
export type createDocumentResponse = {
|
||||
dataset?: DataSet
|
||||
document: InitialDocumentDetail
|
||||
}
|
||||
|
||||
export type FullDocumentDetail = SimpleDocumentDetail & {
|
||||
batch: string
|
||||
created_api_request_id: string
|
||||
processing_started_at: number
|
||||
parsing_completed_at: number
|
||||
cleaning_completed_at: number
|
||||
splitting_completed_at: number
|
||||
tokens: number
|
||||
indexing_latency: number
|
||||
completed_at: number
|
||||
paused_by: string
|
||||
paused_at: number
|
||||
stopped_at: number
|
||||
indexing_status: string
|
||||
disabled_at: number
|
||||
disabled_by: string
|
||||
archived_reason: 'rule_modified' | 're_upload'
|
||||
archived_by: string
|
||||
archived_at: number
|
||||
doc_type?: DocType | null
|
||||
doc_metadata?: DocMetadata | null
|
||||
segment_count: number
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
export type DocMetadata = {
|
||||
title: string
|
||||
language: string
|
||||
author: string
|
||||
publisher: string
|
||||
publicationDate: string
|
||||
ISBN: string
|
||||
category: string
|
||||
[key: string]: string
|
||||
}
|
||||
|
||||
export const CUSTOMIZABLE_DOC_TYPES = [
|
||||
"book",
|
||||
"web_page",
|
||||
"paper",
|
||||
"social_media_post",
|
||||
"personal_document",
|
||||
"business_document",
|
||||
"im_chat_log",
|
||||
] as const;
|
||||
|
||||
export const FIXED_DOC_TYPES = ["synced_from_github", "synced_from_notion", "wikipedia_entry"] as const;
|
||||
|
||||
export type CustomizableDocType = typeof CUSTOMIZABLE_DOC_TYPES[number];
|
||||
export type FixedDocType = typeof FIXED_DOC_TYPES[number];
|
||||
export type DocType = CustomizableDocType | FixedDocType;
|
||||
|
||||
export type DocumentDetailResponse = FullDocumentDetail
|
||||
|
||||
export const SEGMENT_STATUS_LIST = ['waiting', 'completed', 'error', 'indexing']
|
||||
export type SegmentStatus = typeof SEGMENT_STATUS_LIST[number]
|
||||
|
||||
export type SegmentsQuery = {
|
||||
last_id?: string
|
||||
limit: number
|
||||
// status?: SegmentStatus
|
||||
hit_count_gte?: number
|
||||
keyword?: string
|
||||
enabled?: boolean
|
||||
}
|
||||
|
||||
export type SegmentDetailModel = {
|
||||
id: string
|
||||
position: number
|
||||
document_id: string
|
||||
content: string
|
||||
word_count: number
|
||||
tokens: number
|
||||
keywords: string[]
|
||||
index_node_id: string
|
||||
index_node_hash: string
|
||||
hit_count: number
|
||||
enabled: boolean
|
||||
disabled_at: number
|
||||
disabled_by: string
|
||||
status: SegmentStatus
|
||||
created_by: string
|
||||
created_at: number
|
||||
indexing_at: number
|
||||
completed_at: number
|
||||
error: string | null
|
||||
stopped_at: number
|
||||
}
|
||||
|
||||
export type SegmentsResponse = {
|
||||
data: SegmentDetailModel[]
|
||||
has_more: boolean
|
||||
limit: number
|
||||
total: number
|
||||
}
|
||||
|
||||
export type HitTestingRecord = {
|
||||
id: string
|
||||
content: string
|
||||
source: 'app' | 'hit_testing' | 'plugin'
|
||||
source_app_id: string
|
||||
created_by_role: 'account' | 'end_user'
|
||||
created_by: string
|
||||
created_at: number
|
||||
}
|
||||
|
||||
export type HitTesting = {
|
||||
segment: Segment
|
||||
score: number
|
||||
tsne_position: TsnePosition
|
||||
}
|
||||
|
||||
export type Segment = {
|
||||
id: string
|
||||
document: Document
|
||||
content: string
|
||||
position: number
|
||||
word_count: number
|
||||
tokens: number
|
||||
keywords: string[]
|
||||
hit_count: number
|
||||
index_node_hash: string
|
||||
}
|
||||
|
||||
export type Document = {
|
||||
id: string
|
||||
data_source_type: string
|
||||
name: string
|
||||
doc_type: DocType
|
||||
}
|
||||
|
||||
export type HitTestingRecordsResponse = {
|
||||
data: HitTestingRecord[]
|
||||
has_more: boolean
|
||||
limit: number
|
||||
total: number
|
||||
page: number
|
||||
}
|
||||
|
||||
export type TsnePosition = {
|
||||
x: number
|
||||
y: number
|
||||
}
|
||||
|
||||
export type HitTestingResponse = {
|
||||
query: {
|
||||
content: string
|
||||
tsne_position: TsnePosition
|
||||
}
|
||||
records: Array<HitTesting>
|
||||
}
|
||||
|
||||
export type RelatedApp = {
|
||||
id: string
|
||||
name: string
|
||||
mode: AppMode
|
||||
icon: string
|
||||
icon_background: string
|
||||
}
|
||||
|
||||
export type RelatedAppResponse = {
|
||||
data: Array<RelatedApp>
|
||||
total: number
|
||||
}
|
||||
Reference in New Issue
Block a user