diff --git a/surfsense_backend/app/tasks/chat/stream_new_chat.py b/surfsense_backend/app/tasks/chat/stream_new_chat.py index 23c3daee2..2038e85dc 100644 --- a/surfsense_backend/app/tasks/chat/stream_new_chat.py +++ b/surfsense_backend/app/tasks/chat/stream_new_chat.py @@ -52,41 +52,21 @@ def format_mentioned_documents_as_context(documents: list[Document]) -> str: """Format mentioned documents as context for the agent.""" if not documents: return "" - import json - parts = [] - for doc in documents: - metadata = doc.document_metadata or {} - chunks = ( - [ - {"chunk_id": c.id, "content": c.content} - for c in getattr(doc, "chunks", []) - ] - if hasattr(doc, "chunks") and doc.chunks - else [{"chunk_id": doc.id, "content": doc.content}] + context_parts = [""] + context_parts.append( + "The user has explicitly mentioned the following documents from their knowledge base. " + "These documents are directly relevant to the query and should be prioritized as primary sources." + ) + for i, doc in enumerate(documents, 1): + context_parts.append( + f"" ) - metadata_json = json.dumps(metadata, ensure_ascii=False) - parts.append("") - parts.append("") - parts.append(f" {doc.id}") - parts.append(f" {doc.document_type.value}") - parts.append(f" <![CDATA[{doc.title}]]>") - parts.append(" ") - parts.append(f" ") - parts.append("") - parts.append("") - parts.append("") - for ch in chunks: - ch_content = ch["content"] - ch_id = ch["chunk_id"] - if ch_id is None: - parts.append(f" ") - else: - parts.append(f" ") - parts.append("") - parts.append("") - parts.append("") - return "\n".join(parts).strip() + context_parts.append(f"") + context_parts.append("") + context_parts.append("") + + return "\n".join(context_parts) async def stream_new_chat(