### What problem does this PR solve? #3576 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)tags/v0.14.0
| @@ -170,9 +170,12 @@ def switch(): | |||
| e, doc = DocumentService.get_by_id(req["doc_id"]) | |||
| if not e: | |||
| return get_data_error_result(message="Document not found!") | |||
| if not settings.docStoreConn.update({"id": req["chunk_ids"]}, {"available_int": int(req["available_int"])}, | |||
| search.index_name(doc.tenant_id), doc.kb_id): | |||
| return get_data_error_result(message="Index updating failure") | |||
| for cid in req["chunk_ids"]: | |||
| if not settings.docStoreConn.update({"id": cid}, | |||
| {"available_int": int(req["available_int"])}, | |||
| search.index_name(DocumentService.get_tenant_id(req["doc_id"])), | |||
| doc.kb_id): | |||
| return get_data_error_result(message="Index updating failure") | |||
| return get_json_result(data=True) | |||
| except Exception as e: | |||
| return server_error_response(e) | |||
| @@ -517,8 +517,8 @@ def user_register(user_id, user): | |||
| "llm_name": llm.llm_name, | |||
| "model_type": llm.model_type, | |||
| "api_key": settings.API_KEY, | |||
| "api_base": settings.LLM_BASE_URL | |||
| #"max_tokens": llm.max_tokens if llm.max_tokens else 8192 | |||
| "api_base": settings.LLM_BASE_URL, | |||
| "max_tokens": llm.max_tokens if llm.max_tokens else 8192 | |||
| } | |||
| ) | |||
| @@ -56,7 +56,7 @@ class Dealer: | |||
| if key in req and req[key] is not None: | |||
| condition[field] = req[key] | |||
| # TODO(yzc): `available_int` is nullable however infinity doesn't support nullable columns. | |||
| for key in ["knowledge_graph_kwd"]: | |||
| for key in ["knowledge_graph_kwd", "available_int"]: | |||
| if key in req and req[key] is not None: | |||
| condition[key] = req[key] | |||
| return condition | |||
| @@ -121,8 +121,14 @@ class ESConnection(DocStoreConnection): | |||
| bqry = Q("bool", must=[]) | |||
| condition["kb_id"] = knowledgebaseIds | |||
| for k, v in condition.items(): | |||
| if not isinstance(k, str) or not v: | |||
| if k == "available_int": | |||
| if v == 0: | |||
| bqry.filter.append(Q("range", available_int={"lt": 1})) | |||
| else: | |||
| bqry.filter.append( | |||
| Q("bool", must_not=Q("range", available_int={"lt": 1}))) | |||
| continue | |||
| if not v: continue | |||
| if isinstance(v, list): | |||
| bqry.filter.append(Q("terms", **{k: v})) | |||
| elif isinstance(v, str) or isinstance(v, int): | |||