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(
|