From 88be0c94dda7029aef980da1f433f3348a219423 Mon Sep 17 00:00:00 2001 From: natoromano Date: Tue, 24 Feb 2026 17:39:36 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(tests)=20fix=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/chat/agents/translate.py | 4 ++++ src/backend/chat/tools/document_summarize.py | 10 +--------- src/backend/chat/tools/document_translate.py | 3 +-- src/backend/chat/tools/utils.py | 10 ++++++++++ 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/backend/chat/agents/translate.py b/src/backend/chat/agents/translate.py index 9d7f64c..3644b7f 100644 --- a/src/backend/chat/agents/translate.py +++ b/src/backend/chat/agents/translate.py @@ -21,3 +21,7 @@ class TranslationAgent(BaseAgent): output_type=str, **kwargs, ) + + def get_tools(self) -> list: + """Translation does not need any tools.""" + return [] diff --git a/src/backend/chat/tools/document_summarize.py b/src/backend/chat/tools/document_summarize.py index 83faca7..5b81557 100644 --- a/src/backend/chat/tools/document_summarize.py +++ b/src/backend/chat/tools/document_summarize.py @@ -4,7 +4,6 @@ import asyncio import logging from django.conf import settings -from django.core.files.storage import default_storage import semchunk from asgiref.sync import sync_to_async @@ -14,18 +13,11 @@ from pydantic_ai.messages import ToolReturn from chat.agents.summarize import SummarizationAgent from chat.tools.exceptions import ModelCannotRetry -from chat.tools.utils import last_model_retry_soft_fail +from chat.tools.utils import last_model_retry_soft_fail, read_document_content logger = logging.getLogger(__name__) -@sync_to_async -def read_document_content(doc): - """Read document content asynchronously.""" - with default_storage.open(doc.key) as f: - return doc.file_name, f.read().decode("utf-8") - - async def summarize_chunk(idx, chunk, total_chunks, summarization_agent, ctx): """Summarize a single chunk of text.""" sum_prompt = ( diff --git a/src/backend/chat/tools/document_translate.py b/src/backend/chat/tools/document_translate.py index 9704336..1b27874 100644 --- a/src/backend/chat/tools/document_translate.py +++ b/src/backend/chat/tools/document_translate.py @@ -9,9 +9,8 @@ from pydantic_ai.exceptions import ModelRetry from pydantic_ai.messages import ToolReturn from chat.agents.translate import TranslationAgent -from chat.tools.document_summarize import read_document_content from chat.tools.exceptions import ModelCannotRetry -from chat.tools.utils import last_model_retry_soft_fail +from chat.tools.utils import last_model_retry_soft_fail, read_document_content logger = logging.getLogger(__name__) diff --git a/src/backend/chat/tools/utils.py b/src/backend/chat/tools/utils.py index eafe7e2..38eb1ba 100644 --- a/src/backend/chat/tools/utils.py +++ b/src/backend/chat/tools/utils.py @@ -4,6 +4,9 @@ import functools import logging from typing import Any, Callable +from django.core.files.storage import default_storage + +from asgiref.sync import sync_to_async from pydantic_ai import ModelRetry, RunContext from chat.tools.exceptions import ModelCannotRetry @@ -48,3 +51,10 @@ def last_model_retry_soft_fail( raise # Re-raise to allow retrying return wrapper + + +@sync_to_async +def read_document_content(doc): + """Read document content asynchronously.""" + with default_storage.open(doc.key) as f: + return doc.file_name, f.read().decode("utf-8")