Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
dify
Commits
cb3a55da
Unverified
Commit
cb3a55da
authored
Dec 05, 2023
by
zxhlyh
Committed by
GitHub
Dec 05, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: remove documents limit (#1697)
parent
5789d765
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
4 additions
and
42 deletions
+4
-42
base.tsx
web/app/components/base/notion-page-selector/base.tsx
+1
-13
index.tsx
web/app/components/datasets/create/file-uploader/index.tsx
+1
-8
index.tsx
web/app/components/datasets/create/step-one/index.tsx
+2
-9
dataset-creation.en.ts
web/i18n/lang/dataset-creation.en.ts
+0
-1
dataset-creation.zh.ts
web/i18n/lang/dataset-creation.zh.ts
+0
-1
common.ts
web/models/common.ts
+0
-5
common.ts
web/service/common.ts
+0
-5
No files found.
web/app/components/base/notion-page-selector/base.tsx
View file @
cb3a55da
import
{
useCallback
,
useEffect
,
useMemo
,
useState
}
from
'react'
import
{
useCallback
,
useEffect
,
useMemo
,
useState
}
from
'react'
import
{
useTranslation
}
from
'react-i18next'
import
{
useContext
}
from
'use-context-selector'
import
useSWR
from
'swr'
import
useSWR
from
'swr'
import
cn
from
'classnames'
import
cn
from
'classnames'
import
s
from
'./base.module.css'
import
s
from
'./base.module.css'
...
@@ -10,7 +8,6 @@ import PageSelector from './page-selector'
...
@@ -10,7 +8,6 @@ import PageSelector from './page-selector'
import
{
preImportNotionPages
}
from
'@/service/datasets'
import
{
preImportNotionPages
}
from
'@/service/datasets'
import
{
NotionConnector
}
from
'@/app/components/datasets/create/step-one'
import
{
NotionConnector
}
from
'@/app/components/datasets/create/step-one'
import
type
{
DataSourceNotionPageMap
,
DataSourceNotionWorkspace
,
NotionPage
}
from
'@/models/common'
import
type
{
DataSourceNotionPageMap
,
DataSourceNotionWorkspace
,
NotionPage
}
from
'@/models/common'
import
{
ToastContext
}
from
'@/app/components/base/toast'
import
{
useModalContext
}
from
'@/context/modal-context'
import
{
useModalContext
}
from
'@/context/modal-context'
type
NotionPageSelectorProps
=
{
type
NotionPageSelectorProps
=
{
...
@@ -20,8 +17,6 @@ type NotionPageSelectorProps = {
...
@@ -20,8 +17,6 @@ type NotionPageSelectorProps = {
previewPageId
?:
string
previewPageId
?:
string
onPreview
?:
(
selectedPage
:
NotionPage
)
=>
void
onPreview
?:
(
selectedPage
:
NotionPage
)
=>
void
datasetId
?:
string
datasetId
?:
string
countLimit
:
number
countUsed
:
number
}
}
const
NotionPageSelector
=
({
const
NotionPageSelector
=
({
...
@@ -31,11 +26,7 @@ const NotionPageSelector = ({
...
@@ -31,11 +26,7 @@ const NotionPageSelector = ({
previewPageId
,
previewPageId
,
onPreview
,
onPreview
,
datasetId
=
''
,
datasetId
=
''
,
countLimit
,
countUsed
,
}:
NotionPageSelectorProps
)
=>
{
}:
NotionPageSelectorProps
)
=>
{
const
{
t
}
=
useTranslation
()
const
{
notify
}
=
useContext
(
ToastContext
)
const
{
data
,
mutate
}
=
useSWR
({
url
:
'/notion/pre-import/pages'
,
datasetId
},
preImportNotionPages
)
const
{
data
,
mutate
}
=
useSWR
({
url
:
'/notion/pre-import/pages'
,
datasetId
},
preImportNotionPages
)
const
[
prevData
,
setPrevData
]
=
useState
(
data
)
const
[
prevData
,
setPrevData
]
=
useState
(
data
)
const
[
searchValue
,
setSearchValue
]
=
useState
(
''
)
const
[
searchValue
,
setSearchValue
]
=
useState
(
''
)
...
@@ -80,10 +71,7 @@ const NotionPageSelector = ({
...
@@ -80,10 +71,7 @@ const NotionPageSelector = ({
},
[])
},
[])
const
handleSelecPages
=
(
newSelectedPagesId
:
Set
<
string
>
)
=>
{
const
handleSelecPages
=
(
newSelectedPagesId
:
Set
<
string
>
)
=>
{
const
selectedPages
=
Array
.
from
(
newSelectedPagesId
).
map
(
pageId
=>
getPagesMapAndSelectedPagesId
[
0
][
pageId
])
const
selectedPages
=
Array
.
from
(
newSelectedPagesId
).
map
(
pageId
=>
getPagesMapAndSelectedPagesId
[
0
][
pageId
])
if
(
selectedPages
.
length
>
countLimit
-
countUsed
)
{
notify
({
type
:
'error'
,
message
:
t
(
'datasetCreation.stepOne.overCountLimit'
,
{
countLimit
})
})
return
false
}
setSelectedPagesId
(
new
Set
(
Array
.
from
(
newSelectedPagesId
)))
setSelectedPagesId
(
new
Set
(
Array
.
from
(
newSelectedPagesId
)))
onSelect
(
selectedPages
)
onSelect
(
selectedPages
)
}
}
...
...
web/app/components/datasets/create/file-uploader/index.tsx
View file @
cb3a55da
...
@@ -18,8 +18,6 @@ type IFileUploaderProps = {
...
@@ -18,8 +18,6 @@ type IFileUploaderProps = {
onFileUpdate
:
(
fileItem
:
FileItem
,
progress
:
number
,
list
:
FileItem
[])
=>
void
onFileUpdate
:
(
fileItem
:
FileItem
,
progress
:
number
,
list
:
FileItem
[])
=>
void
onFileListUpdate
?:
(
files
:
FileItem
[])
=>
void
onFileListUpdate
?:
(
files
:
FileItem
[])
=>
void
onPreview
:
(
file
:
File
)
=>
void
onPreview
:
(
file
:
File
)
=>
void
countLimit
:
number
countUsed
:
number
}
}
const
ACCEPTS
=
[
const
ACCEPTS
=
[
...
@@ -41,8 +39,6 @@ const FileUploader = ({
...
@@ -41,8 +39,6 @@ const FileUploader = ({
onFileUpdate
,
onFileUpdate
,
onFileListUpdate
,
onFileListUpdate
,
onPreview
,
onPreview
,
countLimit
,
countUsed
,
}:
IFileUploaderProps
)
=>
{
}:
IFileUploaderProps
)
=>
{
const
{
t
}
=
useTranslation
()
const
{
t
}
=
useTranslation
()
const
{
notify
}
=
useContext
(
ToastContext
)
const
{
notify
}
=
useContext
(
ToastContext
)
...
@@ -149,10 +145,7 @@ const FileUploader = ({
...
@@ -149,10 +145,7 @@ const FileUploader = ({
const
initialUpload
=
useCallback
((
files
:
File
[])
=>
{
const
initialUpload
=
useCallback
((
files
:
File
[])
=>
{
if
(
!
files
.
length
)
if
(
!
files
.
length
)
return
false
return
false
if
(
files
.
length
>
countLimit
-
countUsed
)
{
notify
({
type
:
'error'
,
message
:
t
(
'datasetCreation.stepOne.overCountLimit'
,
{
countLimit
})
})
return
false
}
const
preparedFiles
=
files
.
map
((
file
,
index
)
=>
({
const
preparedFiles
=
files
.
map
((
file
,
index
)
=>
({
fileID
:
`file
${
index
}
-
${
Date
.
now
()}
`
,
fileID
:
`file
${
index
}
-
${
Date
.
now
()}
`
,
file
,
file
,
...
...
web/app/components/datasets/create/step-one/index.tsx
View file @
cb3a55da
'use client'
'use client'
import
React
,
{
useMemo
,
useState
}
from
'react'
import
React
,
{
useMemo
,
useState
}
from
'react'
import
useSWR
from
'swr'
import
{
useTranslation
}
from
'react-i18next'
import
{
useTranslation
}
from
'react-i18next'
import
cn
from
'classnames'
import
cn
from
'classnames'
import
FilePreview
from
'../file-preview'
import
FilePreview
from
'../file-preview'
...
@@ -14,7 +13,6 @@ import { DataSourceType } from '@/models/datasets'
...
@@ -14,7 +13,6 @@ import { DataSourceType } from '@/models/datasets'
import
Button
from
'@/app/components/base/button'
import
Button
from
'@/app/components/base/button'
import
{
NotionPageSelector
}
from
'@/app/components/base/notion-page-selector'
import
{
NotionPageSelector
}
from
'@/app/components/base/notion-page-selector'
import
{
useDatasetDetailContext
}
from
'@/context/dataset-detail'
import
{
useDatasetDetailContext
}
from
'@/context/dataset-detail'
import
{
fetchDocumentsLimit
}
from
'@/service/common'
import
{
useProviderContext
}
from
'@/context/provider-context'
import
{
useProviderContext
}
from
'@/context/provider-context'
import
VectorSpaceFull
from
'@/app/components/billing/vector-space-full'
import
VectorSpaceFull
from
'@/app/components/billing/vector-space-full'
...
@@ -63,7 +61,6 @@ const StepOne = ({
...
@@ -63,7 +61,6 @@ const StepOne = ({
notionPages
=
[],
notionPages
=
[],
updateNotionPages
,
updateNotionPages
,
}:
IStepOneProps
)
=>
{
}:
IStepOneProps
)
=>
{
const
{
data
:
limitsData
}
=
useSWR
(
'/datasets/limit'
,
fetchDocumentsLimit
)
const
{
dataset
}
=
useDatasetDetailContext
()
const
{
dataset
}
=
useDatasetDetailContext
()
const
[
showModal
,
setShowModal
]
=
useState
(
false
)
const
[
showModal
,
setShowModal
]
=
useState
(
false
)
const
[
currentFile
,
setCurrentFile
]
=
useState
<
File
|
undefined
>
()
const
[
currentFile
,
setCurrentFile
]
=
useState
<
File
|
undefined
>
()
...
@@ -163,7 +160,7 @@ const StepOne = ({
...
@@ -163,7 +160,7 @@ const StepOne = ({
</
div
>
</
div
>
)
)
}
}
{
dataSourceType
===
DataSourceType
.
FILE
&&
limitsData
&&
(
{
dataSourceType
===
DataSourceType
.
FILE
&&
(
<>
<>
<
FileUploader
<
FileUploader
fileList=
{
files
}
fileList=
{
files
}
...
@@ -172,8 +169,6 @@ const StepOne = ({
...
@@ -172,8 +169,6 @@ const StepOne = ({
onFileListUpdate=
{
updateFileList
}
onFileListUpdate=
{
updateFileList
}
onFileUpdate=
{
updateFile
}
onFileUpdate=
{
updateFile
}
onPreview=
{
updateCurrentFile
}
onPreview=
{
updateCurrentFile
}
countLimit=
{
limitsData
.
documents_limit
}
countUsed=
{
limitsData
.
documents_count
}
/>
/>
{
isShowVectorSpaceFull
&&
(
{
isShowVectorSpaceFull
&&
(
<
div
className=
'max-w-[640px] mb-4'
>
<
div
className=
'max-w-[640px] mb-4'
>
...
@@ -186,15 +181,13 @@ const StepOne = ({
...
@@ -186,15 +181,13 @@ const StepOne = ({
{
dataSourceType
===
DataSourceType
.
NOTION
&&
(
{
dataSourceType
===
DataSourceType
.
NOTION
&&
(
<>
<>
{
!
hasConnection
&&
<
NotionConnector
onSetting=
{
onSetting
}
/>
}
{
!
hasConnection
&&
<
NotionConnector
onSetting=
{
onSetting
}
/>
}
{
hasConnection
&&
limitsData
&&
(
{
hasConnection
&&
(
<>
<>
<
div
className=
'mb-8 w-[640px]'
>
<
div
className=
'mb-8 w-[640px]'
>
<
NotionPageSelector
<
NotionPageSelector
value=
{
notionPages
.
map
(
page
=>
page
.
page_id
)
}
value=
{
notionPages
.
map
(
page
=>
page
.
page_id
)
}
onSelect=
{
updateNotionPages
}
onSelect=
{
updateNotionPages
}
onPreview=
{
updateCurrentPage
}
onPreview=
{
updateCurrentPage
}
countLimit=
{
limitsData
.
documents_limit
}
countUsed=
{
limitsData
.
documents_count
}
/>
/>
</
div
>
</
div
>
{
isShowVectorSpaceFull
&&
(
{
isShowVectorSpaceFull
&&
(
...
...
web/i18n/lang/dataset-creation.en.ts
View file @
cb3a55da
...
@@ -49,7 +49,6 @@ const translation = {
...
@@ -49,7 +49,6 @@ const translation = {
confirmButton
:
'Create'
,
confirmButton
:
'Create'
,
failed
:
'Creation failed'
,
failed
:
'Creation failed'
,
},
},
overCountLimit
:
'All your documents have overed limit {{countLimit}}.'
,
},
},
stepTwo
:
{
stepTwo
:
{
segmentation
:
'Chunk settings'
,
segmentation
:
'Chunk settings'
,
...
...
web/i18n/lang/dataset-creation.zh.ts
View file @
cb3a55da
...
@@ -49,7 +49,6 @@ const translation = {
...
@@ -49,7 +49,6 @@ const translation = {
confirmButton
:
'创建'
,
confirmButton
:
'创建'
,
failed
:
'创建失败'
,
failed
:
'创建失败'
,
},
},
overCountLimit
:
'您的文件总数已超出限制 {{countLimit}}。'
,
},
},
stepTwo
:
{
stepTwo
:
{
segmentation
:
'分段设置'
,
segmentation
:
'分段设置'
,
...
...
web/models/common.ts
View file @
cb3a55da
...
@@ -179,11 +179,6 @@ export type FileUploadConfigResponse = {
...
@@ -179,11 +179,6 @@ export type FileUploadConfigResponse = {
image_file_size_limit
?:
number
|
string
image_file_size_limit
?:
number
|
string
}
}
export
type
DocumentsLimitResponse
=
{
documents_count
:
number
documents_limit
:
number
}
export
type
InvitationResult
=
{
export
type
InvitationResult
=
{
status
:
'success'
status
:
'success'
email
:
string
email
:
string
...
...
web/service/common.ts
View file @
cb3a55da
...
@@ -6,7 +6,6 @@ import type {
...
@@ -6,7 +6,6 @@ import type {
CodeBasedExtension
,
CodeBasedExtension
,
CommonResponse
,
CommonResponse
,
DataSourceNotion
,
DataSourceNotion
,
DocumentsLimitResponse
,
FileUploadConfigResponse
,
FileUploadConfigResponse
,
ICurrentWorkspace
,
ICurrentWorkspace
,
IWorkspace
,
IWorkspace
,
...
@@ -195,10 +194,6 @@ export const fetchFileUploadConfig: Fetcher<FileUploadConfigResponse, { url: str
...
@@ -195,10 +194,6 @@ export const fetchFileUploadConfig: Fetcher<FileUploadConfigResponse, { url: str
return
get
<
FileUploadConfigResponse
>
(
url
)
return
get
<
FileUploadConfigResponse
>
(
url
)
}
}
export
const
fetchDocumentsLimit
:
Fetcher
<
DocumentsLimitResponse
,
string
>
=
(
url
)
=>
{
return
get
<
DocumentsLimitResponse
>
(
url
)
}
export
const
fetchFreeQuotaVerify
:
Fetcher
<
{
result
:
string
;
flag
:
boolean
;
reason
:
string
},
string
>
=
(
url
)
=>
{
export
const
fetchFreeQuotaVerify
:
Fetcher
<
{
result
:
string
;
flag
:
boolean
;
reason
:
string
},
string
>
=
(
url
)
=>
{
return
get
(
url
)
as
Promise
<
{
result
:
string
;
flag
:
boolean
;
reason
:
string
}
>
return
get
(
url
)
as
Promise
<
{
result
:
string
;
flag
:
boolean
;
reason
:
string
}
>
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment