mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
Test APIs and fix bugs (#41)
This commit is contained in:
@ -214,7 +214,7 @@ def retrieval_test():
|
||||
question = req["question"]
|
||||
kb_id = req["kb_id"]
|
||||
doc_ids = req.get("doc_ids", [])
|
||||
similarity_threshold = float(req.get("similarity_threshold", 0.4))
|
||||
similarity_threshold = float(req.get("similarity_threshold", 0.2))
|
||||
vector_similarity_weight = float(req.get("vector_similarity_weight", 0.3))
|
||||
top = int(req.get("top", 1024))
|
||||
try:
|
||||
|
||||
@ -170,7 +170,7 @@ def chat(dialog, messages, **kwargs):
|
||||
if p["key"] not in kwargs:
|
||||
prompt_config["system"] = prompt_config["system"].replace("{%s}"%p["key"], " ")
|
||||
|
||||
model_config = TenantLLMService.get_api_key(dialog.tenant_id, LLMType.CHAT.value, dialog.llm_id)
|
||||
model_config = TenantLLMService.get_api_key(dialog.tenant_id, dialog.llm_id)
|
||||
if not model_config: raise LookupError("LLM({}) API key not found".format(dialog.llm_id))
|
||||
|
||||
question = messages[-1]["content"]
|
||||
@ -186,10 +186,10 @@ def chat(dialog, messages, **kwargs):
|
||||
kwargs["knowledge"] = "\n".join(knowledges)
|
||||
gen_conf = dialog.llm_setting[dialog.llm_setting_type]
|
||||
msg = [{"role": m["role"], "content": m["content"]} for m in messages if m["role"] != "system"]
|
||||
used_token_count = message_fit_in(msg, int(llm.max_tokens * 0.97))
|
||||
used_token_count, msg = message_fit_in(msg, int(llm.max_tokens * 0.97))
|
||||
if "max_tokens" in gen_conf:
|
||||
gen_conf["max_tokens"] = min(gen_conf["max_tokens"], llm.max_tokens - used_token_count)
|
||||
mdl = ChatModel[model_config.llm_factory](model_config["api_key"], dialog.llm_id)
|
||||
mdl = ChatModel[model_config.llm_factory](model_config.api_key, dialog.llm_id)
|
||||
answer = mdl.chat(prompt_config["system"].format(**kwargs), msg, gen_conf)
|
||||
|
||||
answer = retrievaler.insert_citations(answer,
|
||||
@ -198,4 +198,6 @@ def chat(dialog, messages, **kwargs):
|
||||
embd_mdl,
|
||||
tkweight=1-dialog.vector_similarity_weight,
|
||||
vtweight=dialog.vector_similarity_weight)
|
||||
for c in kbinfos["chunks"]:
|
||||
if c.get("vector"):del c["vector"]
|
||||
return {"answer": answer, "retrieval": kbinfos}
|
||||
@ -11,7 +11,8 @@
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# limitations under the License
|
||||
#
|
||||
#
|
||||
import base64
|
||||
import pathlib
|
||||
@ -65,7 +66,7 @@ def upload():
|
||||
while MINIO.obj_exist(kb_id, location):
|
||||
location += "_"
|
||||
blob = request.files['file'].read()
|
||||
MINIO.put(kb_id, filename, blob)
|
||||
MINIO.put(kb_id, location, blob)
|
||||
doc = DocumentService.insert({
|
||||
"id": get_uuid(),
|
||||
"kb_id": kb.id,
|
||||
@ -188,7 +189,10 @@ def rm():
|
||||
e, doc = DocumentService.get_by_id(req["doc_id"])
|
||||
if not e:
|
||||
return get_data_error_result(retmsg="Document not found!")
|
||||
ELASTICSEARCH.deleteByQuery(Q("match", doc_id=doc.id), idxnm=search.index_name(doc.kb_id))
|
||||
tenant_id = DocumentService.get_tenant_id(req["doc_id"])
|
||||
if not tenant_id:
|
||||
return get_data_error_result(retmsg="Tenant not found!")
|
||||
ELASTICSEARCH.deleteByQuery(Q("match", doc_id=doc.id), idxnm=search.index_name(tenant_id))
|
||||
|
||||
DocumentService.increment_chunk_num(doc.id, doc.kb_id, doc.token_num*-1, doc.chunk_num*-1, 0)
|
||||
if not DocumentService.delete_by_id(req["doc_id"]):
|
||||
|
||||
@ -75,7 +75,7 @@ def list():
|
||||
llms = LLMService.get_all()
|
||||
llms = [m.to_dict() for m in llms if m.status == StatusEnum.VALID.value]
|
||||
for m in llms:
|
||||
m["available"] = m.llm_name in mdlnms
|
||||
m["available"] = m["llm_name"] in mdlnms
|
||||
|
||||
res = {}
|
||||
for m in llms:
|
||||
|
||||
Reference in New Issue
Block a user