Skip to content

Commit

Permalink
fix: Fixed the issue of error reporting when uploading files in the c…
Browse files Browse the repository at this point in the history
…hat box infiniflow#2897 (infiniflow#2898)

### What problem does this PR solve?

fix: Fixed the issue of error reporting when uploading files in the chat
box infiniflow#2897

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
- [ ] New Feature (non-breaking change which adds functionality)
- [ ] Documentation Update
- [ ] Refactoring
- [ ] Performance Improvement
- [ ] Other (please describe):
  • Loading branch information
cike8899 authored Oct 18, 2024
1 parent 35233b1 commit a832bb5
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 70 deletions.
27 changes: 7 additions & 20 deletions web/src/components/message-input/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,6 @@ const getFileIds = (fileList: UploadFile[]) => {
return ids;
};

const isUploadError = (file: UploadFile) => {
const retcode = get(file, 'response.retcode');
return typeof retcode === 'number' && retcode !== 0;
};

const isUploadSuccess = (file: UploadFile) => {
const retcode = get(file, 'response.retcode');
return typeof retcode === 'number' && retcode === 0;
Expand Down Expand Up @@ -121,7 +116,7 @@ const MessageInput = ({
const creatingRet = await createConversationBeforeUploadDocument(
file.name,
);
if (creatingRet.retcode === 0) {
if (creatingRet?.retcode === 0) {
nextConversationId = creatingRet.data.id;
}
}
Expand All @@ -133,6 +128,7 @@ const MessageInput = ({
});
return [...list];
});

const ret = await uploadAndParseDocument({
conversationId: nextConversationId,
fileList: [file],
Expand Down Expand Up @@ -217,18 +213,12 @@ const MessageInput = ({
<Space>
{showUploadIcon && (
<Upload
// action={uploadUrl}
// fileList={fileList}
onPreview={handlePreview}
onChange={handleChange}
multiple={false}
// headers={{ [Authorization]: getAuthorization() }}
// data={{ conversation_id: conversationId }}
// method="post"
onRemove={handleRemove}
showUploadList={false}
beforeUpload={(file, fileList) => {
console.log('🚀 ~ beforeUpload:', fileList);
beforeUpload={() => {
return false;
}}
>
Expand Down Expand Up @@ -283,17 +273,14 @@ const MessageInput = ({
<List.Item>
<Card className={styles.documentCard}>
<Flex gap={10} align="center">
{item.status === 'uploading' || !item.response ? (
{item.status === 'uploading' ? (
<Spin
indicator={
<LoadingOutlined style={{ fontSize: 24 }} spin />
}
/>
) : !getFileId(item) ? (
<InfoCircleOutlined
size={30}
// width={30}
></InfoCircleOutlined>
) : item.status === 'error' ? (
<InfoCircleOutlined size={30}></InfoCircleOutlined>
) : (
<FileIcon id={id} name={fileName}></FileIcon>
)}
Expand All @@ -304,7 +291,7 @@ const MessageInput = ({
>
<b> {fileName}</b>
</Text>
{isUploadError(item) ? (
{item.status === 'error' ? (
t('uploadFailed')
) : (
<>
Expand Down
22 changes: 13 additions & 9 deletions web/src/hooks/document-hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -422,17 +422,21 @@ export const useUploadAndParseDocument = (uploadMethod: string) => {
conversationId: string;
fileList: UploadFile[];
}) => {
const formData = new FormData();
formData.append('conversation_id', conversationId);
fileList.forEach((file: UploadFile) => {
formData.append('file', file as any);
});
if (uploadMethod === 'upload_and_parse') {
const data = await kbService.upload_and_parse(formData);
try {
const formData = new FormData();
formData.append('conversation_id', conversationId);
fileList.forEach((file: UploadFile) => {
formData.append('file', file as any);
});
if (uploadMethod === 'upload_and_parse') {
const data = await kbService.upload_and_parse(formData);
return data?.data;
}
const data = await chatService.uploadAndParseExternal(formData);
return data?.data;
} catch (error) {
console.log('🚀 ~ useUploadAndParseDocument ~ error:', error);
}
const data = await chatService.uploadAndParseExternal(formData);
return data?.data;
},
});

Expand Down
10 changes: 7 additions & 3 deletions web/src/pages/chat/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -582,14 +582,18 @@ export const useSendButtonDisabled = (value: string) => {
export const useCreateConversationBeforeUploadDocument = () => {
const { setConversation } = useSetConversation();
const { dialogId } = useGetChatSearchParams();
const { getConversationIsNew } = useSetChatRouteParams();

const createConversationBeforeUploadDocument = useCallback(
async (message: string) => {
const data = await setConversation(message, true);
const isNew = getConversationIsNew();
if (isNew === 'true') {
const data = await setConversation(message, true);

return data;
return data;
}
},
[setConversation],
[setConversation, getConversationIsNew],
);

return {
Expand Down
5 changes: 5 additions & 0 deletions web/src/pages/chat/markdown-content/index.less
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,8 @@
}
}
}

.fileThumbnail {
display: inline-block;
max-width: 40px;
}
6 changes: 5 additions & 1 deletion web/src/pages/chat/markdown-content/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,11 @@ const MarkdownContent = ({
{documentId && (
<Flex gap={'small'}>
{fileThumbnail ? (
<img src={fileThumbnail} alt="" />
<img
src={fileThumbnail}
alt=""
className={styles.fileThumbnail}
/>
) : (
<SvgIcon
name={`file-icon/${fileExtension}`}
Expand Down
37 changes: 0 additions & 37 deletions web/src/services/knowledge-service.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import api from '@/utils/api';
import registerServer from '@/utils/register-server';
import request from '@/utils/request';
import pureRequest from 'umi-request';

const {
create_kb,
Expand All @@ -25,7 +24,6 @@ const {
retrieval_test,
document_rename,
document_run,
get_document_file,
document_upload,
web_crawl,
knowledge_graph,
Expand Down Expand Up @@ -145,39 +143,4 @@ const methods = {

const kbService = registerServer<keyof typeof methods>(methods, request);

export const getDocumentFile = (documentId: string) => {
return pureRequest(get_document_file + '/' + documentId, {
responseType: 'blob',
method: 'get',
parseResponse: false,
// getResponse: true,
})
.then((res) => {
const x = res.headers.get('content-disposition');
console.info(res);
console.info(x);
return res.blob();
})
.then((res) => {
// const objectURL = URL.createObjectURL(res);

// let btn = document.createElement('a');

// btn.download = '文件名.pdf';

// btn.href = objectURL;

// btn.click();

// URL.revokeObjectURL(objectURL);

// btn = null;

return res;
})
.catch((err) => {
console.info(err);
});
};

export default kbService;

0 comments on commit a832bb5

Please sign in to comment.