소스 검색

Fix chunk enable/disable issue (#3579)

### What problem does this PR solve?

#3576

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
tags/v0.14.0
Kevin Hu 11 달 전
부모
커밋
9f3141804f
No account linked to committer's email address
4개의 변경된 파일16개의 추가작업 그리고 7개의 파일을 삭제
  1. 6
    3
      api/apps/chunk_app.py
  2. 2
    2
      api/apps/user_app.py
  3. 1
    1
      rag/nlp/search.py
  4. 7
    1
      rag/utils/es_conn.py

+ 6
- 3
api/apps/chunk_app.py 파일 보기

@@ -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)

+ 2
- 2
api/apps/user_app.py 파일 보기

@@ -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
}
)


+ 1
- 1
rag/nlp/search.py 파일 보기

@@ -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

+ 7
- 1
rag/utils/es_conn.py 파일 보기

@@ -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):

Loading…
취소
저장