fix chat and thumbnail bug (#2803)
Browse files### What problem does this PR solve?
1. fix white screen issue when chat response
2. thumbnail bug when document not support
### 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):
---------
Co-authored-by: chongchuanbing <[email protected]>
    	
        api/apps/document_app.py
    CHANGED
    
    | @@ -238,6 +238,11 @@ def thumbnails(): | |
| 238 |  | 
| 239 | 
             
                try:
         | 
| 240 | 
             
                    docs = DocumentService.get_thumbnails(doc_ids)
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
| 241 | 
             
                    return get_json_result(data={d["id"]: d["thumbnail"] for d in docs})
         | 
| 242 | 
             
                except Exception as e:
         | 
| 243 | 
             
                    return server_error_response(e)
         | 
|  | |
| 238 |  | 
| 239 | 
             
                try:
         | 
| 240 | 
             
                    docs = DocumentService.get_thumbnails(doc_ids)
         | 
| 241 | 
            +
             | 
| 242 | 
            +
                    for doc_item in docs:
         | 
| 243 | 
            +
                        if doc_item['thumbnail'] and not doc_item['thumbnail'].startswith(IMG_BASE64_PREFIX):
         | 
| 244 | 
            +
                            doc_item['thumbnail'] = f"/v1/document/image/{doc_item['kb_id']}-{doc_item['thumbnail']}"
         | 
| 245 | 
            +
             | 
| 246 | 
             
                    return get_json_result(data={d["id"]: d["thumbnail"] for d in docs})
         | 
| 247 | 
             
                except Exception as e:
         | 
| 248 | 
             
                    return server_error_response(e)
         | 
    	
        api/db/services/document_service.py
    CHANGED
    
    | @@ -268,7 +268,7 @@ class DocumentService(CommonService): | |
| 268 | 
             
                @classmethod
         | 
| 269 | 
             
                @DB.connection_context()
         | 
| 270 | 
             
                def get_thumbnails(cls, docids):
         | 
| 271 | 
            -
                    fields = [cls.model.id, cls.model.thumbnail]
         | 
| 272 | 
             
                    return list(cls.model.select(
         | 
| 273 | 
             
                        *fields).where(cls.model.id.in_(docids)).dicts())
         | 
| 274 |  | 
|  | |
| 268 | 
             
                @classmethod
         | 
| 269 | 
             
                @DB.connection_context()
         | 
| 270 | 
             
                def get_thumbnails(cls, docids):
         | 
| 271 | 
            +
                    fields = [cls.model.id, cls.model.kb_id, cls.model.thumbnail]
         | 
| 272 | 
             
                    return list(cls.model.select(
         | 
| 273 | 
             
                        *fields).where(cls.model.id.in_(docids)).dicts())
         | 
| 274 |  | 
    	
        api/db/services/file_service.py
    CHANGED
    
    | @@ -358,8 +358,10 @@ class FileService(CommonService): | |
| 358 | 
             
                            doc_id = get_uuid()
         | 
| 359 |  | 
| 360 | 
             
                            img = thumbnail_img(filename, blob)
         | 
| 361 | 
            -
                            thumbnail_location =  | 
| 362 | 
            -
                             | 
|  | |
|  | |
| 363 |  | 
| 364 | 
             
                            doc = {
         | 
| 365 | 
             
                                "id": doc_id,
         | 
|  | |
| 358 | 
             
                            doc_id = get_uuid()
         | 
| 359 |  | 
| 360 | 
             
                            img = thumbnail_img(filename, blob)
         | 
| 361 | 
            +
                            thumbnail_location = ''
         | 
| 362 | 
            +
                            if img is not None:
         | 
| 363 | 
            +
                                thumbnail_location = f'thumbnail_{doc_id}.png'
         | 
| 364 | 
            +
                                STORAGE_IMPL.put(kb.id, thumbnail_location, img)
         | 
| 365 |  | 
| 366 | 
             
                            doc = {
         | 
| 367 | 
             
                                "id": doc_id,
         | 
    	
        web/src/pages/chat/markdown-content/index.tsx
    CHANGED
    
    | @@ -45,7 +45,7 @@ const MarkdownContent = ({ | |
| 45 | 
             
              }, [content, loading, t]);
         | 
| 46 |  | 
| 47 | 
             
              useEffect(() => {
         | 
| 48 | 
            -
                setDocumentIds(reference?.doc_aggs | 
| 49 | 
             
              }, [reference, setDocumentIds]);
         | 
| 50 |  | 
| 51 | 
             
              const handleDocumentButtonClick = useCallback(
         | 
|  | |
| 45 | 
             
              }, [content, loading, t]);
         | 
| 46 |  | 
| 47 | 
             
              useEffect(() => {
         | 
| 48 | 
            +
                setDocumentIds(reference?.doc_aggs?.map((x) => x.doc_id) ?? []);
         | 
| 49 | 
             
              }, [reference, setDocumentIds]);
         | 
| 50 |  | 
| 51 | 
             
              const handleDocumentButtonClick = useCallback(
         |