From d38f995ba603f0e4ca0334d0a9becbd8b8846613 Mon Sep 17 00:00:00 2001 From: Myth <3389772+iMyth@users.noreply.github.com> Date: Thu, 25 Jul 2024 14:14:42 +0800 Subject: [PATCH] fix: Fix for Empty Reference Array Causing Errors (#1652) ### What problem does this PR solve? This pull request addresses an issue where the reference is an empty array ([]) in specific cases, leading to errors in the application. When the reference is empty, the code attempts to call the get method on a list, resulting in the following error message: ``` json {"retcode": 500, "retmsg": "'list' object has no attribute 'get'", "data": {"answer": "**ERROR**: 'list' object has no attribute 'get'", "reference": []}} ``` ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) Co-authored-by: Kevin Hu --- api/apps/api_app.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/api/apps/api_app.py b/api/apps/api_app.py index dee7b857f..6676941df 100644 --- a/api/apps/api_app.py +++ b/api/apps/api_app.py @@ -199,8 +199,11 @@ def completion(): conv.message[-1] = {"role": "assistant", "content": ans["answer"]} def rename_field(ans): - for chunk in ans.get('reference', []): - for chunk_i in chunk.get('chunks', []): + reference = ans['reference'] + if not isinstance(reference, dict): + return + for chunk_i in reference.get('chunks', []): + if 'docnm_kwd' in chunk_i: chunk_i['doc_name'] = chunk_i['docnm_kwd'] chunk_i.pop('docnm_kwd')