diff --git a/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.less b/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.less
new file mode 100644
index 0000000000000000000000000000000000000000..6353670fab6f8f4583b83c398f0274e596317180
--- /dev/null
+++ b/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.less
@@ -0,0 +1,3 @@
+.iconButton {
+  padding: 4px 8px;
+}
diff --git a/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx b/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx
index 4db9d398bdb5e1e2e3697a7252d64eec69b6e71b..186cc28c4155988e687bc6af960467ac4edeb447 100644
--- a/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx
+++ b/web/src/pages/add-knowledge/components/knowledge-file/parsing-action-cell/index.tsx
@@ -3,6 +3,9 @@ import { IKnowledgeFile } from '@/interfaces/database/knowledge';
 import { DeleteOutlined, EditOutlined, ToolOutlined } from '@ant-design/icons';
 import { Button, Dropdown, MenuProps, Space, Tooltip } from 'antd';
 import { useDispatch } from 'umi';
+import { isParserRunning } from '../utils';
+
+import styles from './index.less';
 
 interface IProps {
   knowledgeBaseId: string;
@@ -17,6 +20,7 @@ const ParsingActionCell = ({
 }: IProps) => {
   const dispatch = useDispatch();
   const documentId = record.id;
+  const isRunning = isParserRunning(record.run);
 
   const removeDocument = () => {
     dispatch({
@@ -29,7 +33,9 @@ const ParsingActionCell = ({
   };
 
   const onRmDocument = () => {
-    showDeleteConfirm({ onOk: removeDocument });
+    if (!isRunning) {
+      showDeleteConfirm({ onOk: removeDocument });
+    }
   };
 
   const setCurrentRecord = () => {
@@ -49,11 +55,13 @@ const ParsingActionCell = ({
   };
 
   const showRenameModal = () => {
-    setCurrentRecord();
-    dispatch({
-      type: 'kFModel/setIsShowRenameModal',
-      payload: true,
-    });
+    if (!isRunning) {
+      setCurrentRecord();
+      dispatch({
+        type: 'kFModel/setIsShowRenameModal',
+        payload: true,
+      });
+    }
   };
 
   const chunkItems: MenuProps['items'] = [
@@ -70,14 +78,38 @@ const ParsingActionCell = ({
   ];
 
   return (
-    <Space size={'middle'}>
-      <Dropdown menu={{ items: chunkItems }} trigger={['click']}>
-        <ToolOutlined size={20} onClick={setDocumentAndParserId} />
+    <Space size={0}>
+      <Dropdown
+        menu={{ items: chunkItems }}
+        trigger={['click']}
+        disabled={isRunning}
+      >
+        <Button
+          type="text"
+          onClick={setDocumentAndParserId}
+          className={styles.iconButton}
+        >
+          <ToolOutlined size={20} />
+        </Button>
       </Dropdown>
       <Tooltip title="Rename">
-        <EditOutlined size={20} onClick={showRenameModal} />
+        <Button
+          type="text"
+          disabled={isRunning}
+          onClick={showRenameModal}
+          className={styles.iconButton}
+        >
+          <EditOutlined size={20} />
+        </Button>
       </Tooltip>
-      <DeleteOutlined size={20} onClick={onRmDocument} />
+      <Button
+        type="text"
+        disabled={isRunning}
+        onClick={onRmDocument}
+        className={styles.iconButton}
+      >
+        <DeleteOutlined size={20} />
+      </Button>
     </Space>
   );
 };
diff --git a/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx b/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx
index 6f216551cfa3958e586418e50267eaa8543b8579..82b5ae3dfa027a1e742dd7760175789f14012abb 100644
--- a/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx
+++ b/web/src/pages/add-knowledge/components/knowledge-file/parsing-status-cell/index.tsx
@@ -6,6 +6,7 @@ import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd';
 import reactStringReplace from 'react-string-replace';
 import { useDispatch } from 'umi';
 import { RunningStatus, RunningStatusMap } from '../constant';
+import { isParserRunning } from '../utils';
 import styles from './index.less';
 
 const iconMap = {
@@ -77,7 +78,7 @@ export const ParsingStatusCell = ({ record }: IProps) => {
   const text = record.run;
   const runningStatus = RunningStatusMap[text];
 
-  const isRunning = text === RunningStatus.RUNNING;
+  const isRunning = isParserRunning(text);
 
   const OperationIcon = iconMap[text];
 
diff --git a/web/src/pages/add-knowledge/components/knowledge-file/utils.ts b/web/src/pages/add-knowledge/components/knowledge-file/utils.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0965ffdb9e8cf8242bc9f28494c8347c33ff2eb6
--- /dev/null
+++ b/web/src/pages/add-knowledge/components/knowledge-file/utils.ts
@@ -0,0 +1,6 @@
+import { RunningStatus } from './constant';
+
+export const isParserRunning = (text: RunningStatus) => {
+  const isRunning = text === RunningStatus.RUNNING;
+  return isRunning;
+};
diff --git a/web/src/pages/chat/chat-container/index.less b/web/src/pages/chat/chat-container/index.less
index 7a840f4ce5af8173da72ccb8f9ea57d7150fde2c..f74051bd575dd61d09532ab22715774769de2c3f 100644
--- a/web/src/pages/chat/chat-container/index.less
+++ b/web/src/pages/chat/chat-container/index.less
@@ -25,6 +25,7 @@
     flex-direction: row-reverse;
   }
   .messageText {
+    .chunkText();
     padding: 0 14px;
     background-color: rgba(249, 250, 251, 1);
     word-break: break-all;
diff --git a/web/src/pages/chat/chat-container/index.tsx b/web/src/pages/chat/chat-container/index.tsx
index 575f06bf3c46e5728049ad7d7b92147e1bbad8ec..b0a3ca8543b94c9a2bc0e1ea697aee695d19b129 100644
--- a/web/src/pages/chat/chat-container/index.tsx
+++ b/web/src/pages/chat/chat-container/index.tsx
@@ -262,12 +262,12 @@ const ChatContainer = () => {
     if (!loading) {
       setValue('');
       addNewestConversation(value);
-      sendMessage(value);
+      sendMessage(value.trim());
     }
   };
 
   const handleInputChange: ChangeEventHandler<HTMLInputElement> = (e) => {
-    const value = e.target.value.trim();
+    const value = e.target.value;
     const nextValue = value.replaceAll('\\n', '\n').replaceAll('\\t', '\t');
     setValue(nextValue);
   };