mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-14 17:15:53 +08:00
### What problem does this PR solve? feat: call the reset api before opening the run drawer each time #918 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
parent
4122695a1a
commit
1d3e4844a5
@ -164,3 +164,20 @@ export const useRunFlow = () => {
|
|||||||
|
|
||||||
return { data, loading, runFlow: mutateAsync };
|
return { data, loading, runFlow: mutateAsync };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const useResetFlow = () => {
|
||||||
|
const { id } = useParams();
|
||||||
|
const {
|
||||||
|
data,
|
||||||
|
isPending: loading,
|
||||||
|
mutateAsync,
|
||||||
|
} = useMutation({
|
||||||
|
mutationKey: ['resetFlow'],
|
||||||
|
mutationFn: async () => {
|
||||||
|
const { data } = await flowService.resetCanvas({ id });
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return { data, loading, resetFlow: mutateAsync };
|
||||||
|
};
|
||||||
|
@ -39,7 +39,12 @@ export function RagNode({
|
|||||||
id="b"
|
id="b"
|
||||||
></Handle>
|
></Handle>
|
||||||
<Handle type="source" position={Position.Bottom} id="a" isConnectable />
|
<Handle type="source" position={Position.Bottom} id="a" isConnectable />
|
||||||
<Flex vertical align="center" justify={'center'} gap={6}>
|
<Flex
|
||||||
|
vertical
|
||||||
|
align="center"
|
||||||
|
justify={'center'}
|
||||||
|
gap={data.label === Operator.RewriteQuestion ? 0 : 6}
|
||||||
|
>
|
||||||
<OperatorIcon
|
<OperatorIcon
|
||||||
name={data.label as Operator}
|
name={data.label as Operator}
|
||||||
fontSize={style['iconFontSize'] ?? 24}
|
fontSize={style['iconFontSize'] ?? 24}
|
||||||
@ -48,7 +53,7 @@ export function RagNode({
|
|||||||
className={styles.type}
|
className={styles.type}
|
||||||
style={{ fontSize: style.fontSize ?? 14 }}
|
style={{ fontSize: style.fontSize ?? 14 }}
|
||||||
>
|
>
|
||||||
{data.label}
|
{data.label === Operator.RewriteQuestion ? 'Rewrite' : data.label}
|
||||||
</span>
|
</span>
|
||||||
<NodeDropdown id={id}></NodeDropdown>
|
<NodeDropdown id={id}></NodeDropdown>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { MessageType } from '@/constants/chat';
|
import { MessageType } from '@/constants/chat';
|
||||||
import { useFetchFlow } from '@/hooks/flow-hooks';
|
import { useFetchFlow, useResetFlow } from '@/hooks/flow-hooks';
|
||||||
import {
|
import {
|
||||||
useHandleMessageInputChange,
|
useHandleMessageInputChange,
|
||||||
useScrollToBottom,
|
useScrollToBottom,
|
||||||
@ -93,13 +93,13 @@ export const useSendMessage = (
|
|||||||
) => {
|
) => {
|
||||||
const { id: flowId } = useParams();
|
const { id: flowId } = useParams();
|
||||||
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
|
const { handleInputChange, value, setValue } = useHandleMessageInputChange();
|
||||||
const { data: flowDetail, refetch } = useFetchFlow();
|
const { refetch } = useFetchFlow();
|
||||||
const messages = flowDetail.dsl.messages;
|
const { resetFlow } = useResetFlow();
|
||||||
|
|
||||||
const { send, answer, done } = useSendMessageWithSse(api.runCanvas);
|
const { send, answer, done } = useSendMessageWithSse(api.runCanvas);
|
||||||
|
|
||||||
const sendMessage = useCallback(
|
const sendMessage = useCallback(
|
||||||
async (message: string, id?: string) => {
|
async (message: string) => {
|
||||||
const params: Record<string, unknown> = {
|
const params: Record<string, unknown> = {
|
||||||
id: flowId,
|
id: flowId,
|
||||||
};
|
};
|
||||||
@ -128,6 +128,18 @@ export const useSendMessage = (
|
|||||||
[sendMessage],
|
[sendMessage],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Call the reset api before opening the run drawer each time
|
||||||
|
*/
|
||||||
|
const resetFlowBeforeFetchingPrologue = useCallback(async () => {
|
||||||
|
// After resetting, all previous messages will be cleared.
|
||||||
|
const ret = await resetFlow();
|
||||||
|
if (ret.retcode === 0) {
|
||||||
|
// fetch prologue
|
||||||
|
sendMessage('');
|
||||||
|
}
|
||||||
|
}, [resetFlow, sendMessage]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (answer.answer) {
|
if (answer.answer) {
|
||||||
addNewestAnswer(answer);
|
addNewestAnswer(answer);
|
||||||
@ -135,11 +147,8 @@ export const useSendMessage = (
|
|||||||
}, [answer, addNewestAnswer]);
|
}, [answer, addNewestAnswer]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// fetch prologue
|
resetFlowBeforeFetchingPrologue();
|
||||||
if (messages.length === 0) {
|
}, [resetFlowBeforeFetchingPrologue]);
|
||||||
sendMessage('');
|
|
||||||
}
|
|
||||||
}, [sendMessage, messages]);
|
|
||||||
|
|
||||||
const handlePressEnter = useCallback(() => {
|
const handlePressEnter = useCallback(() => {
|
||||||
if (done) {
|
if (done) {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import {
|
import {
|
||||||
BranchesOutlined,
|
BranchesOutlined,
|
||||||
DatabaseOutlined,
|
DatabaseOutlined,
|
||||||
|
FormOutlined,
|
||||||
MergeCellsOutlined,
|
MergeCellsOutlined,
|
||||||
MessageOutlined,
|
MessageOutlined,
|
||||||
QuestionOutlined,
|
|
||||||
RocketOutlined,
|
RocketOutlined,
|
||||||
SendOutlined,
|
SendOutlined,
|
||||||
SlidersOutlined,
|
SlidersOutlined,
|
||||||
@ -28,7 +28,7 @@ export const operatorIconMap = {
|
|||||||
[Operator.Categorize]: DatabaseOutlined,
|
[Operator.Categorize]: DatabaseOutlined,
|
||||||
[Operator.Message]: MessageOutlined,
|
[Operator.Message]: MessageOutlined,
|
||||||
[Operator.Relevant]: BranchesOutlined,
|
[Operator.Relevant]: BranchesOutlined,
|
||||||
[Operator.RewriteQuestion]: QuestionOutlined,
|
[Operator.RewriteQuestion]: FormOutlined,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const operatorMap = {
|
export const operatorMap = {
|
||||||
@ -76,7 +76,12 @@ export const operatorMap = {
|
|||||||
},
|
},
|
||||||
[Operator.RewriteQuestion]: {
|
[Operator.RewriteQuestion]: {
|
||||||
description: 'RewriteQuestion description',
|
description: 'RewriteQuestion description',
|
||||||
backgroundColor: 'white',
|
backgroundColor: '#f8c7f8',
|
||||||
|
color: 'white',
|
||||||
|
width: 70,
|
||||||
|
height: 70,
|
||||||
|
fontSize: 12,
|
||||||
|
iconFontSize: 16,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ const FlowHeader = ({ showChatDrawer }: IProps) => {
|
|||||||
</Space>
|
</Space>
|
||||||
<Space size={'large'}>
|
<Space size={'large'}>
|
||||||
<Button onClick={showChatDrawer}>
|
<Button onClick={showChatDrawer}>
|
||||||
<b>Debug</b>
|
<b>Run</b>
|
||||||
</Button>
|
</Button>
|
||||||
<Button type="primary" onClick={saveGraph}>
|
<Button type="primary" onClick={saveGraph}>
|
||||||
<b>Save</b>
|
<b>Save</b>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user