Kung Quang
commited on
Commit
·
b4bc2db
1
Parent(s):
199f5c8
Fix api reference empty bug (#1655)
Browse files### What problem does this PR solve?
fix api reference empty bug
```
for chunk_i in answer['reference'].get('chunks',[]):
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'list' object has no attribute 'get'
```
```
return np.array([d["relevance_score"] for d in res["results"]]), res["meta"]["tokens"]["input_tokens"]+res["meta"]["tokens"]["output_tokens"]
~~~^^^^^^^^^^^
KeyError: 'results'
```
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
- api/apps/api_app.py +7 -7
- rag/llm/rerank_model.py +2 -0
api/apps/api_app.py
CHANGED
@@ -199,9 +199,10 @@ def completion():
|
|
199 |
conv.message[-1] = {"role": "assistant", "content": ans["answer"]}
|
200 |
|
201 |
def rename_field(ans):
|
202 |
-
for
|
203 |
-
chunk_i
|
204 |
-
|
|
|
205 |
|
206 |
def stream():
|
207 |
nonlocal dia, msg, req, conv
|
@@ -232,10 +233,7 @@ def completion():
|
|
232 |
API4ConversationService.append_message(conv.id, conv.to_dict())
|
233 |
break
|
234 |
|
235 |
-
|
236 |
-
chunk_i['doc_name'] = chunk_i['docnm_kwd']
|
237 |
-
chunk_i.pop('docnm_kwd')
|
238 |
-
|
239 |
return get_json_result(data=answer)
|
240 |
|
241 |
except Exception as e:
|
@@ -252,6 +250,8 @@ def get(conversation_id):
|
|
252 |
|
253 |
conv = conv.to_dict()
|
254 |
for referenct_i in conv['reference']:
|
|
|
|
|
255 |
for chunk_i in referenct_i['chunks']:
|
256 |
if 'docnm_kwd' in chunk_i.keys():
|
257 |
chunk_i['doc_name'] = chunk_i['docnm_kwd']
|
|
|
199 |
conv.message[-1] = {"role": "assistant", "content": ans["answer"]}
|
200 |
|
201 |
def rename_field(ans):
|
202 |
+
for chunk in ans.get('reference', []):
|
203 |
+
for chunk_i in chunk.get('chunks', []):
|
204 |
+
chunk_i['doc_name'] = chunk_i['docnm_kwd']
|
205 |
+
chunk_i.pop('docnm_kwd')
|
206 |
|
207 |
def stream():
|
208 |
nonlocal dia, msg, req, conv
|
|
|
233 |
API4ConversationService.append_message(conv.id, conv.to_dict())
|
234 |
break
|
235 |
|
236 |
+
rename_field(answer)
|
|
|
|
|
|
|
237 |
return get_json_result(data=answer)
|
238 |
|
239 |
except Exception as e:
|
|
|
250 |
|
251 |
conv = conv.to_dict()
|
252 |
for referenct_i in conv['reference']:
|
253 |
+
if referenct_i is None or len(referenct_i) == 0:
|
254 |
+
continue
|
255 |
for chunk_i in referenct_i['chunks']:
|
256 |
if 'docnm_kwd' in chunk_i.keys():
|
257 |
chunk_i['doc_name'] = chunk_i['docnm_kwd']
|
rag/llm/rerank_model.py
CHANGED
@@ -147,6 +147,8 @@ class XInferenceRerank(Base):
|
|
147 |
}
|
148 |
|
149 |
def similarity(self, query: str, texts: list):
|
|
|
|
|
150 |
data = {
|
151 |
"model": self.model_name,
|
152 |
"query": query,
|
|
|
147 |
}
|
148 |
|
149 |
def similarity(self, query: str, texts: list):
|
150 |
+
if len(texts) == 0:
|
151 |
+
return np.array([]), 0
|
152 |
data = {
|
153 |
"model": self.model_name,
|
154 |
"query": query,
|