Fix:Fail to get list_sessions (#7678)

### What problem does this PR solve?

Close #7655

Based on the codes atthe api_app, I think the reference is one-to-one
with the message
`
    def fillin_conv(ans):
        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
`



### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
Stephen Hu 2025-05-16 10:58:28 +08:00 committed by GitHub
parent 2777941b4e
commit deb2faf7aa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -464,12 +464,11 @@ def list_session(tenant_id, chat_id):
if conv["reference"]: if conv["reference"]:
messages = conv["messages"] messages = conv["messages"]
message_num = 0 message_num = 0
chunk_num = 0
while message_num < len(messages): while message_num < len(messages):
if message_num != 0 and messages[message_num]["role"] != "user": if message_num != 0 and messages[message_num]["role"] != "user":
chunk_list = [] chunk_list = []
if "chunks" in conv["reference"][chunk_num]: if "chunks" in conv["reference"][message_num]:
chunks = conv["reference"][chunk_num]["chunks"] chunks = conv["reference"][message_num]["chunks"]
for chunk in chunks: for chunk in chunks:
new_chunk = { new_chunk = {
"id": chunk.get("chunk_id", chunk.get("id")), "id": chunk.get("chunk_id", chunk.get("id")),
@ -482,7 +481,6 @@ def list_session(tenant_id, chat_id):
} }
chunk_list.append(new_chunk) chunk_list.append(new_chunk)
chunk_num += 1
messages[message_num]["reference"] = chunk_list messages[message_num]["reference"] = chunk_list
message_num += 1 message_num += 1
del conv["reference"] del conv["reference"]