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
2597ae78
Commit
2597ae78
authored
Mar 12, 2024
by
crazywoola
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: add an api to get error tasks
parent
0c7680b1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
3 deletions
+37
-3
datasets.py
api/controllers/console/datasets/datasets.py
+17
-0
dataset_service.py
api/services/dataset_service.py
+9
-0
index.tsx
web/app/components/base/retry-button/index.tsx
+11
-3
No files found.
api/controllers/console/datasets/datasets.py
View file @
2597ae78
...
@@ -512,10 +512,27 @@ class DatasetRetrievalSettingMockApi(Resource):
...
@@ -512,10 +512,27 @@ class DatasetRetrievalSettingMockApi(Resource):
else
:
else
:
raise
ValueError
(
"Unsupported vector db type."
)
raise
ValueError
(
"Unsupported vector db type."
)
class
DatasetErrorDocs
(
Resource
):
@
setup_required
@
login_required
@
account_initialization_required
def
get
(
self
,
dataset_id
):
dataset_id_str
=
str
(
dataset_id
)
dataset
=
DatasetService
.
get_dataset
(
dataset_id_str
)
if
dataset
is
None
:
raise
NotFound
(
"Dataset not found."
)
results
=
DocumentService
.
get_error_documents_by_dataset_id
(
dataset_id_str
)
return
{
'data'
:
[
marshal
(
item
,
document_status_fields
)
for
item
in
results
],
'total'
:
len
(
results
)
},
200
api
.
add_resource
(
DatasetListApi
,
'/datasets'
)
api
.
add_resource
(
DatasetListApi
,
'/datasets'
)
api
.
add_resource
(
DatasetApi
,
'/datasets/<uuid:dataset_id>'
)
api
.
add_resource
(
DatasetApi
,
'/datasets/<uuid:dataset_id>'
)
api
.
add_resource
(
DatasetQueryApi
,
'/datasets/<uuid:dataset_id>/queries'
)
api
.
add_resource
(
DatasetQueryApi
,
'/datasets/<uuid:dataset_id>/queries'
)
api
.
add_resource
(
DatasetErrorDocs
,
'/datasets/<uuid:dataset_id>/error-docs'
)
api
.
add_resource
(
DatasetIndexingEstimateApi
,
'/datasets/indexing-estimate'
)
api
.
add_resource
(
DatasetIndexingEstimateApi
,
'/datasets/indexing-estimate'
)
api
.
add_resource
(
DatasetRelatedAppListApi
,
'/datasets/<uuid:dataset_id>/related-apps'
)
api
.
add_resource
(
DatasetRelatedAppListApi
,
'/datasets/<uuid:dataset_id>/related-apps'
)
api
.
add_resource
(
DatasetIndexingStatusApi
,
'/datasets/<uuid:dataset_id>/indexing-status'
)
api
.
add_resource
(
DatasetIndexingStatusApi
,
'/datasets/<uuid:dataset_id>/indexing-status'
)
...
...
api/services/dataset_service.py
View file @
2597ae78
...
@@ -407,6 +407,15 @@ class DocumentService:
...
@@ -407,6 +407,15 @@ class DocumentService:
return
documents
return
documents
@
staticmethod
def
get_error_documents_by_dataset_id
(
dataset_id
:
str
)
->
list
[
Document
]:
documents
=
db
.
session
.
query
(
Document
)
.
filter
(
Document
.
dataset_id
==
dataset_id
,
Document
.
indexing_status
==
'error'
)
.
all
()
return
documents
@
staticmethod
@
staticmethod
def
get_batch_documents
(
dataset_id
:
str
,
batch
:
str
)
->
list
[
Document
]:
def
get_batch_documents
(
dataset_id
:
str
,
batch
:
str
)
->
list
[
Document
]:
documents
=
db
.
session
.
query
(
Document
)
.
filter
(
documents
=
db
.
session
.
query
(
Document
)
.
filter
(
...
...
web/app/components/base/retry-button/index.tsx
View file @
2597ae78
'use client'
'use client'
import
type
{
FC
}
from
'react'
import
type
{
FC
}
from
'react'
import
React
from
'react'
import
React
,
{
useEffect
}
from
'react'
import
classNames
from
'classnames'
import
classNames
from
'classnames'
import
s
from
'./style.module.css'
import
s
from
'./style.module.css'
import
Divider
from
'@/app/components/base/divider'
import
Divider
from
'@/app/components/base/divider'
import
{
get
}
from
'@/service/base'
const
WarningIcon
=
()
=>
const
WarningIcon
=
()
=>
<
svg
width=
"12"
height=
"12"
viewBox=
"0 0 12 12"
fill=
"none"
xmlns=
"http://www.w3.org/2000 /svg"
>
<
svg
width=
"12"
height=
"12"
viewBox=
"0 0 12 12"
fill=
"none"
xmlns=
"http://www.w3.org/2000 /svg"
>
<
path
fillRule=
"evenodd"
clipRule=
"evenodd"
d=
"M6.40616 0.834307C6.14751 0.719294 5.85222 0.719294 5.59356 0.834307C5.3938 0.923133 5.26403 1.07959 5.17373 1.20708C5.08495 1.33242 4.9899 1.49664 4.88536 1.67723L0.751783 8.81705C0.646828 8.9983 0.551451 9.16302 0.486781 9.3028C0.421056 9.44487 0.349754 9.63584 0.372478 9.85381C0.401884 10.1359 0.549654 10.3922 0.779012 10.5589C0.956259 10.6878 1.15726 10.7218 1.31314 10.7361C1.46651 10.7501 1.65684 10.7501 1.86628 10.7501H10.1334C10.3429 10.7501 10.5332 10.7501 10.6866 10.7361C10.8425 10.7218 11.0435 10.6878 11.2207 10.5589C11.4501 10.3922 11.5978 10.1359 11.6272 9.85381C11.65 9.63584 11.5787 9.44487 11.5129 9.3028C11.4483 9.16303 11.3529 8.99833 11.248 8.81709L7.11436 1.67722C7.00983 1.49663 6.91477 1.33242 6.82599 1.20708C6.73569 1.07959 6.60593 0.923133 6.40616 0.834307ZM6.49988 4.50012C6.49988 4.22398 6.27602 4.00012 5.99988 4.00012C5.72374 4.00012 5.49988 4.22398 5.49988 4.50012V6.50012C5.49988 6.77626 5.72374 7.00012 5.99988 7.00012C6.27602 7.00012 6.49988 6.77626 6.49988 6.50012V4.50012ZM5.99988 8.00012C5.72374 8.00012 5.49988 8.22398 5.49988 8.50012C5.49988 8.77626 5.72374 9.00012 5.99988 9.00012H6.00488C6.28102 9.00012 6.50488 8.77626 6.50488 8.50012C6.50488 8.22398 6.28102 8.00012 6.00488 8.00012H5.99988Z"
fill=
"#F79009"
/>
<
path
fillRule=
"evenodd"
clipRule=
"evenodd"
d=
"M6.40616 0.834307C6.14751 0.719294 5.85222 0.719294 5.59356 0.834307C5.3938 0.923133 5.26403 1.07959 5.17373 1.20708C5.08495 1.33242 4.9899 1.49664 4.88536 1.67723L0.751783 8.81705C0.646828 8.9983 0.551451 9.16302 0.486781 9.3028C0.421056 9.44487 0.349754 9.63584 0.372478 9.85381C0.401884 10.1359 0.549654 10.3922 0.779012 10.5589C0.956259 10.6878 1.15726 10.7218 1.31314 10.7361C1.46651 10.7501 1.65684 10.7501 1.86628 10.7501H10.1334C10.3429 10.7501 10.5332 10.7501 10.6866 10.7361C10.8425 10.7218 11.0435 10.6878 11.2207 10.5589C11.4501 10.3922 11.5978 10.1359 11.6272 9.85381C11.65 9.63584 11.5787 9.44487 11.5129 9.3028C11.4483 9.16303 11.3529 8.99833 11.248 8.81709L7.11436 1.67722C7.00983 1.49663 6.91477 1.33242 6.82599 1.20708C6.73569 1.07959 6.60593 0.923133 6.40616 0.834307ZM6.49988 4.50012C6.49988 4.22398 6.27602 4.00012 5.99988 4.00012C5.72374 4.00012 5.49988 4.22398 5.49988 4.50012V6.50012C5.49988 6.77626 5.72374 7.00012 5.99988 7.00012C6.27602 7.00012 6.49988 6.77626 6.49988 6.50012V4.50012ZM5.99988 8.00012C5.72374 8.00012 5.49988 8.22398 5.49988 8.50012C5.49988 8.77626 5.72374 9.00012 5.99988 9.00012H6.00488C6.28102 9.00012 6.50488 8.77626 6.50488 8.50012C6.50488 8.22398 6.28102 8.00012 6.00488 8.00012H5.99988Z"
fill=
"#F79009"
/>
</
svg
>
</
svg
>
const
RetryButton
:
FC
<
{
type
Props
=
{
datasetId
:
string
datasetId
:
string
}
>
=
(
}
const
RetryButton
:
FC
<
Props
>
=
(
{
datasetId
},
)
=>
{
)
=>
{
useEffect
(()
=>
{
get
(
`/datasets/
${
datasetId
}
/error-docs`
).
then
((
res
)
=>
{
console
.
log
(
res
)
})
},
[])
return
<
div
className=
{
classNames
(
'inline-flex justify-center items-center gap-2'
,
s
.
retryBtn
)
}
>
return
<
div
className=
{
classNames
(
'inline-flex justify-center items-center gap-2'
,
s
.
retryBtn
)
}
>
<
WarningIcon
/>
<
WarningIcon
/>
<
span
className=
'flex shrink-0 text-sm text-gray-500'
>
3 docs embeddings failed
</
span
>
<
span
className=
'flex shrink-0 text-sm text-gray-500'
>
3 docs embeddings failed
</
span
>
...
...
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