Spaces:
Sleeping
Sleeping
| """Summariser tool — condenses large chunk sets using Gemini Flash.""" | |
| from __future__ import annotations | |
| import logging | |
| from agent.config import settings | |
| from agent.models import RetrievedChunk | |
| from agent.prompts import build_summariser_prompt | |
| logger = logging.getLogger(__name__) | |
| async def run_summariser(chunks: list[RetrievedChunk], query: str) -> str: | |
| from agent.agents._gemini import call_gemini_text | |
| if not chunks: | |
| return "" | |
| chunks_text = "\n\n".join( | |
| f"[{c.source}] {c.text}" for c in chunks | |
| ) | |
| prompt = build_summariser_prompt(chunks_text, query) | |
| summary = await call_gemini_text( | |
| model_name=settings.summariser_model, | |
| system_prompt="You are a concise technical summariser. Summarise only what is in the provided text.", | |
| user_message=prompt, | |
| ) | |
| logger.info("summariser: produced %d-char summary", len(summary)) | |
| return summary | |