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
425e162a
Commit
425e162a
authored
Mar 07, 2024
by
Joel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: knowledge support single run
parent
55b5d76e
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
75 additions
and
11 deletions
+75
-11
page.tsx
web/app/(commonLayout)/workflow/nodes/page.tsx
+1
-1
use-one-step-run.ts
...components/workflow/nodes/_base/hooks/use-one-step-run.ts
+9
-0
panel.tsx
...p/components/workflow/nodes/knowledge-retrieval/panel.tsx
+30
-1
use-config.ts
...mponents/workflow/nodes/knowledge-retrieval/use-config.ts
+33
-0
panel.tsx
web/app/components/workflow/nodes/llm/panel.tsx
+0
-1
use-config.ts
web/app/components/workflow/nodes/llm/use-config.ts
+2
-8
No files found.
web/app/(commonLayout)/workflow/nodes/page.tsx
View file @
425e162a
...
...
@@ -32,7 +32,7 @@ const allMockData = {
[
BlockEnum
.
End
]:
EndNodeMock
,
}
const
nodes
=
[
BlockEnum
.
LLM
/* 3 */
,
BlockEnum
.
Start
/* 1 */
,
BlockEnum
.
DirectAnswer
/* 2 */
,
BlockEnum
.
KnowledgeRetrieval
/* 4
*/
,
BlockEnum
.
QuestionClassifier
/* 5 */
,
BlockEnum
.
KnowledgeRetrieval
/* 4 */
,
BlockEnum
.
Start
/* 1 */
,
BlockEnum
.
DirectAnswer
/* 2 */
,
BlockEnum
.
LLM
/* 3
*/
,
BlockEnum
.
QuestionClassifier
/* 5 */
,
BlockEnum
.
IfElse
/* 6 */
,
BlockEnum
.
Code
/* 7 */
,
BlockEnum
.
TemplateTransform
/* 8 */
,
BlockEnum
.
HttpRequest
/* 9 */
,
BlockEnum
.
Tool
/* 10 */
,
BlockEnum
.
VariableAssigner
/* 11 */
,
BlockEnum
.
End
/* 12 */
,
].
map
((
item
,
i
)
=>
{
...
...
web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts
View file @
425e162a
...
...
@@ -23,6 +23,13 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => {
}
const
[
runningStatus
,
setRunningStatus
]
=
useState
(
'un started'
)
const
handleRun
=
()
=>
{
setRunningStatus
(
'running'
)
}
const
handleStop
=
()
=>
{
setRunningStatus
(
'not started'
)
}
// TODO: store to node
const
[
runInputData
,
setRunInputData
]
=
useState
<
Record
<
string
,
any
>>
(
defaultRunInputData
||
{})
...
...
@@ -50,6 +57,8 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => {
hideSingleRun
,
toVarInputs
,
runningStatus
,
handleRun
,
handleStop
,
setRunningStatus
,
runInputData
,
setRunInputData
,
...
...
web/app/components/workflow/nodes/knowledge-retrieval/panel.tsx
View file @
425e162a
...
...
@@ -10,7 +10,8 @@ import type { KnowledgeRetrievalNodeType } from './types'
import
Field
from
'@/app/components/workflow/nodes/_base/components/field'
import
Split
from
'@/app/components/workflow/nodes/_base/components/split'
import
OutputVars
,
{
VarItem
}
from
'@/app/components/workflow/nodes/_base/components/output-vars'
import
type
{
NodePanelProps
}
from
'@/app/components/workflow/types'
import
{
InputVarType
,
type
NodePanelProps
}
from
'@/app/components/workflow/types'
import
BeforeRunForm
from
'@/app/components/workflow/nodes/_base/components/before-run-form'
const
i18nPrefix
=
'workflow.nodes.knowledgeRetrieval'
...
...
@@ -28,6 +29,13 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
handleMultipleRetrievalConfigChange
,
selectedDatasets
,
handleOnDatasetsChange
,
isShowSingleRun
,
hideSingleRun
,
runningStatus
,
handleRun
,
handleStop
,
query
,
setQuery
,
}
=
useConfig
(
id
,
data
)
return
(
...
...
@@ -111,6 +119,27 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
</>
</
OutputVars
>
{
isShowSingleRun
&&
(
<
BeforeRunForm
nodeName=
{
inputs
.
title
}
onHide=
{
hideSingleRun
}
forms=
{
[
{
inputs
:
[{
label
:
t
(
`${i18nPrefix}.queryVariable`
)
!
,
variable
:
'query'
,
type
:
InputVarType
.
paragraph
,
required
:
true
,
}],
values
:
{
query
},
onChange
:
keyValue
=>
setQuery
((
keyValue
as
any
).
query
),
},
]
}
runningStatus=
{
runningStatus
}
onRun=
{
handleRun
}
onStop=
{
handleStop
}
/>
)
}
</
div
>
</
div
>
)
...
...
web/app/components/workflow/nodes/knowledge-retrieval/use-config.ts
View file @
425e162a
...
...
@@ -6,6 +6,7 @@ import type { RETRIEVE_TYPE } from '@/types/app'
import
type
{
DataSet
}
from
'@/models/datasets'
import
{
fetchDatasets
}
from
'@/service/datasets'
import
useNodeCrud
from
'@/app/components/workflow/nodes/_base/hooks/use-node-crud'
import
useOneStepRun
from
'@/app/components/workflow/nodes/_base/hooks/use-one-step-run'
const
useConfig
=
(
id
:
string
,
payload
:
KnowledgeRetrievalNodeType
)
=>
{
const
{
inputs
,
setInputs
}
=
useNodeCrud
<
KnowledgeRetrievalNodeType
>
(
id
,
payload
)
...
...
@@ -54,6 +55,31 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
setSelectedDatasets
(
newDatasets
)
},
[
inputs
,
setInputs
])
// single run
const
{
isShowSingleRun
,
hideSingleRun
,
runningStatus
,
handleRun
,
handleStop
,
runInputData
,
setRunInputData
,
}
=
useOneStepRun
<
KnowledgeRetrievalNodeType
>
({
id
,
data
:
inputs
,
defaultRunInputData
:
{
query
:
'What is the capital of France?'
,
},
})
const
query
=
runInputData
.
query
const
setQuery
=
useCallback
((
newQuery
:
string
)
=>
{
setRunInputData
({
...
runInputData
,
query
:
newQuery
,
})
},
[
runInputData
,
setRunInputData
])
return
{
inputs
,
handleQueryVarChange
,
...
...
@@ -61,6 +87,13 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
handleMultipleRetrievalConfigChange
,
selectedDatasets
,
handleOnDatasetsChange
,
isShowSingleRun
,
hideSingleRun
,
runningStatus
,
handleRun
,
handleStop
,
query
,
setQuery
,
}
}
...
...
web/app/components/workflow/nodes/llm/panel.tsx
View file @
425e162a
...
...
@@ -216,7 +216,6 @@ const Panel: FC<NodePanelProps<LLMNodeType>> = ({
onStop=
{
handleStop
}
/>
)
}
</
div
>
)
}
...
...
web/app/components/workflow/nodes/llm/use-config.ts
View file @
425e162a
...
...
@@ -95,7 +95,8 @@ const useConfig = (id: string, payload: LLMNodeType) => {
hideSingleRun
,
toVarInputs
,
runningStatus
,
setRunningStatus
,
handleRun
,
handleStop
,
runInputData
,
setRunInputData
,
}
=
useOneStepRun
<
LLMNodeType
>
({
...
...
@@ -145,13 +146,6 @@ const useConfig = (id: string, payload: LLMNodeType) => {
},
[
runInputData
,
setRunInputData
])
const
varInputs
=
toVarInputs
(
inputs
.
variables
)
const
handleRun
=
()
=>
{
setRunningStatus
(
'running'
)
}
const
handleStop
=
()
=>
{
setRunningStatus
(
'not started'
)
}
return
{
inputs
,
...
...
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