diff --git a/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py b/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py index 55326fd60..3678167f6 100644 --- a/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py +++ b/api/core/rag/datasource/vdb/tablestore/tablestore_vector.py @@ -296,12 +296,22 @@ class TableStoreVector(BaseVector): documents = [] for search_hit in search_response.search_hits: if search_hit.score > score_threshold: - metadata = json.loads(search_hit.row[1][0][1]) + ots_column_map = {} + for col in search_hit.row[1]: + ots_column_map[col[0]] = col[1] + + vector_str = ots_column_map.get(Field.VECTOR.value) + metadata_str = ots_column_map.get(Field.METADATA_KEY.value) + + vector = json.loads(vector_str) if vector_str else None + metadata = json.loads(metadata_str) if metadata_str else {} + metadata["score"] = search_hit.score + documents.append( Document( - page_content=search_hit.row[1][2][1], - vector=json.loads(search_hit.row[1][3][1]), + page_content=ots_column_map.get(Field.CONTENT_KEY.value) or "", + vector=vector, metadata=metadata, ) ) @@ -329,11 +339,20 @@ class TableStoreVector(BaseVector): documents = [] for search_hit in search_response.search_hits: + ots_column_map = {} + for col in search_hit.row[1]: + ots_column_map[col[0]] = col[1] + + vector_str = ots_column_map.get(Field.VECTOR.value) + metadata_str = ots_column_map.get(Field.METADATA_KEY.value) + vector = json.loads(vector_str) if vector_str else None + metadata = json.loads(metadata_str) if metadata_str else {} + documents.append( Document( - page_content=search_hit.row[1][2][1], - vector=json.loads(search_hit.row[1][3][1]), - metadata=json.loads(search_hit.row[1][0][1]), + page_content=ots_column_map.get(Field.CONTENT_KEY.value) or "", + vector=vector, + metadata=metadata, ) ) return documents