### What problem does this PR solve? ### Type of change - [x] Performance Improvementtags/v0.10.0
| @@ -108,6 +108,9 @@ def chat(dialog, messages, stream=True, **kwargs): | |||
| attachments = kwargs["doc_ids"].split(",") if "doc_ids" in kwargs else None | |||
| if "doc_ids" in messages[-1]: | |||
| attachments = messages[-1]["doc_ids"] | |||
| for m in messages[:-1]: | |||
| if "doc_ids" in m: | |||
| attachments.extend(m["doc_ids"]) | |||
| embd_mdl = LLMBundle(dialog.tenant_id, LLMType.EMBEDDING, embd_nms[0]) | |||
| if llm_id2llm_type(dialog.llm_id) == "image2text": | |||
| @@ -138,6 +138,8 @@ class Dealer: | |||
| es_logger.info("TOTAL: {}".format(self.es.getTotal(res))) | |||
| if self.es.getTotal(res) == 0 and "knn" in s: | |||
| bqry, _ = self.qryr.question(qst, min_match="10%") | |||
| if req.get("doc_ids"): | |||
| bqry = Q("bool", must=[]) | |||
| bqry = self._add_filters(bqry, req) | |||
| s["query"] = bqry.to_dict() | |||
| s["knn"]["filter"] = bqry.to_dict() | |||