Procházet zdrojové kódy

Fix api reference empty bug (#1655)

### 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)
tags/v0.9.0
Kung Quang před 1 rokem
rodič
revize
32d5885b68
Žádný účet není propojen s e-mailovou adresou tvůrce revize
2 změnil soubory, kde provedl 9 přidání a 7 odebrání
  1. 7
    7
      api/apps/api_app.py
  2. 2
    0
      rag/llm/rerank_model.py

+ 7
- 7
api/apps/api_app.py Zobrazit soubor

conv.message[-1] = {"role": "assistant", "content": ans["answer"]} conv.message[-1] = {"role": "assistant", "content": ans["answer"]}
def rename_field(ans): def rename_field(ans):
for chunk_i in ans['reference'].get('chunks', []):
chunk_i['doc_name'] = chunk_i['docnm_kwd']
chunk_i.pop('docnm_kwd')
for chunk in ans.get('reference', []):
for chunk_i in chunk.get('chunks', []):
chunk_i['doc_name'] = chunk_i['docnm_kwd']
chunk_i.pop('docnm_kwd')
def stream(): def stream():
nonlocal dia, msg, req, conv nonlocal dia, msg, req, conv
API4ConversationService.append_message(conv.id, conv.to_dict()) API4ConversationService.append_message(conv.id, conv.to_dict())
break break
for chunk_i in answer['reference'].get('chunks',[]):
chunk_i['doc_name'] = chunk_i['docnm_kwd']
chunk_i.pop('docnm_kwd')
rename_field(answer)
return get_json_result(data=answer) return get_json_result(data=answer)
except Exception as e: except Exception as e:
conv = conv.to_dict() conv = conv.to_dict()
for referenct_i in conv['reference']: for referenct_i in conv['reference']:
if referenct_i is None or len(referenct_i) == 0:
continue
for chunk_i in referenct_i['chunks']: for chunk_i in referenct_i['chunks']:
if 'docnm_kwd' in chunk_i.keys(): if 'docnm_kwd' in chunk_i.keys():
chunk_i['doc_name'] = chunk_i['docnm_kwd'] chunk_i['doc_name'] = chunk_i['docnm_kwd']

+ 2
- 0
rag/llm/rerank_model.py Zobrazit soubor

} }


def similarity(self, query: str, texts: list): def similarity(self, query: str, texts: list):
if len(texts) == 0:
return np.array([]), 0
data = { data = {
"model": self.model_name, "model": self.model_name,
"query": query, "query": query,

Načítá se…
Zrušit
Uložit