Spaces:
Sleeping
Sleeping
Download mcp_tools/local_rag_tools.py from EnvironmentalAI/WaterScopeAI-Search: direct link, hf CLI and curl.
- Browser
- Download file 1.24 kB
-
https://huggingface.co/spaces/EnvironmentalAI/WaterScopeAI-Search/resolve/main/mcp_tools/local_rag_tools.py
- Command line
-
hf download hf://spaces/EnvironmentalAI/WaterScopeAI-Search/mcp_tools/local_rag_tools.py
-
curl -L -o local_rag_tools.py https://huggingface.co/spaces/EnvironmentalAI/WaterScopeAI-Search/resolve/main/mcp_tools/local_rag_tools.py
1.24 kB
| """Summary MCP tools for paper-grounded chat.""" | |
| from __future__ import annotations | |
| import json | |
| from backend.chat_settings import truncate_summary | |
| from local_rag.summaries import summaries_for_documents | |
| def get_paper_summaries_tool(document_ids: list[str]) -> str: | |
| return json.dumps({"sources": summaries_for_documents(document_ids)}, indent=2) | |
| def build_paper_context_tool(document_ids: list[str], question: str = "") -> str: | |
| sources = summaries_for_documents(document_ids) | |
| if not sources: | |
| return json.dumps({"error": "No summaries found for the selected papers."}, indent=2) | |
| n_papers = len(sources) | |
| parts: list[str] = [] | |
| for index, source in enumerate(sources, start=1): | |
| parts.append( | |
| f"Paper {index}: {source['title']}\n" | |
| f"File: {source['file_name']}\n\n" | |
| f"{truncate_summary(source['text'], n_papers=n_papers, question=question)}" | |
| ) | |
| context = "\n\n---\n\n".join(parts) | |
| return json.dumps( | |
| { | |
| "context": context, | |
| "sources": [{"document_id": s["document_id"], "title": s["title"]} for s in sources], | |
| "n_papers": n_papers, | |
| "question": question, | |
| }, | |
| indent=2, | |
| ) | |