Fix a bug in completions (#3632)

### What problem does this PR solve?

Fix a bug in completions

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

Co-authored-by: liuhua <10215101452@stu.ecun.edu.cn>
This commit is contained in:
liuhua 2024-11-25 16:21:28 +08:00 committed by GitHub
parent ddf01e0450
commit ce6b4c0e05
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,7 +15,7 @@
# #
import re import re
import json import json
from functools import partial from copy import deepcopy
from uuid import uuid4 from uuid import uuid4
from api.db import LLMType from api.db import LLMType
from flask import request, Response from flask import request, Response
@ -155,6 +155,14 @@ def completion(tenant_id, chat_id):
def fillin_conv(ans): def fillin_conv(ans):
reference = ans["reference"] reference = ans["reference"]
temp_reference = deepcopy(ans["reference"])
nonlocal conv, message_id
if not conv.reference:
conv.reference.append(temp_reference)
else:
conv.reference[-1] = temp_reference
conv.message[-1] = {"role": "assistant", "content": ans["answer"],
"id": message_id, "prompt": ans.get("prompt", "")}
if "chunks" in reference: if "chunks" in reference:
chunks = reference.get("chunks") chunks = reference.get("chunks")
chunk_list = [] chunk_list = []
@ -165,7 +173,7 @@ def completion(tenant_id, chat_id):
"document_id": chunk["doc_id"], "document_id": chunk["doc_id"],
"document_name": chunk["docnm_kwd"], "document_name": chunk["docnm_kwd"],
"dataset_id": chunk["kb_id"], "dataset_id": chunk["kb_id"],
"image_id": chunk.get("img_id", ""), "image_id": chunk.get("image_id", ""),
"similarity": chunk["similarity"], "similarity": chunk["similarity"],
"vector_similarity": chunk["vector_similarity"], "vector_similarity": chunk["vector_similarity"],
"term_similarity": chunk["term_similarity"], "term_similarity": chunk["term_similarity"],
@ -173,13 +181,6 @@ def completion(tenant_id, chat_id):
} }
chunk_list.append(new_chunk) chunk_list.append(new_chunk)
reference["chunks"] = chunk_list reference["chunks"] = chunk_list
nonlocal conv, message_id
if not conv.reference:
conv.reference.append(ans["reference"])
else:
conv.reference[-1] = ans["reference"]
conv.message[-1] = {"role": "assistant", "content": ans["answer"],
"id": message_id, "prompt": ans.get("prompt", "")}
ans["id"] = message_id ans["id"] = message_id
ans["session_id"]=session_id ans["session_id"]=session_id
@ -271,6 +272,13 @@ def agent_completion(tenant_id, agent_id):
def fillin_conv(ans): def fillin_conv(ans):
reference = ans["reference"] reference = ans["reference"]
temp_reference = deepcopy(ans["reference"])
nonlocal conv, message_id
if not conv.reference:
conv.reference.append(temp_reference)
else:
conv.reference[-1] = temp_reference
conv.message[-1] = {"role": "assistant", "content": ans["answer"], "id": message_id}
if "chunks" in reference: if "chunks" in reference:
chunks = reference.get("chunks") chunks = reference.get("chunks")
chunk_list = [] chunk_list = []
@ -281,7 +289,7 @@ def agent_completion(tenant_id, agent_id):
"document_id": chunk["doc_id"], "document_id": chunk["doc_id"],
"document_name": chunk["docnm_kwd"], "document_name": chunk["docnm_kwd"],
"dataset_id": chunk["kb_id"], "dataset_id": chunk["kb_id"],
"image_id": chunk["img_id"], "image_id": chunk["image_id"],
"similarity": chunk["similarity"], "similarity": chunk["similarity"],
"vector_similarity": chunk["vector_similarity"], "vector_similarity": chunk["vector_similarity"],
"term_similarity": chunk["term_similarity"], "term_similarity": chunk["term_similarity"],
@ -289,12 +297,6 @@ def agent_completion(tenant_id, agent_id):
} }
chunk_list.append(new_chunk) chunk_list.append(new_chunk)
reference["chunks"] = chunk_list reference["chunks"] = chunk_list
nonlocal conv, message_id
if not conv.reference:
conv.reference.append(ans["reference"])
else:
conv.reference[-1] = ans["reference"]
conv.message[-1] = {"role": "assistant", "content": ans["answer"], "id": message_id}
ans["id"] = message_id ans["id"] = message_id
ans["session_id"] = session_id ans["session_id"] = session_id