Spaces:
Running
Running
| import logging | |
| from utils.asyncHandler import asyncHandler | |
| from src.MultiRag.models.worker_model import State | |
| from src.MultiRag.tools.web_search import WebSearch | |
| async def search_node(state: State) -> State: | |
| logging.info("Starting Search worker node...") | |
| query = state.plan_to_retrieve | |
| logging.info(f"Searching for: {query}") | |
| search_tool = WebSearch().search | |
| results = await search_tool.ainvoke(query) | |
| logging.info(f"Search completed. Found {len(results) if isinstance(results, list) else 'some'} results.") | |
| from langchain_core.documents import Document | |
| docs = [] | |
| if isinstance(results, list): | |
| for r in results: | |
| content = r.get('content', str(r)) | |
| url = r.get('url', 'Web Search') | |
| docs.append(Document(page_content=content, metadata={"source": url, "type": "web"})) | |
| else: | |
| docs.append(Document(page_content=str(results), metadata={"source": "Web Search", "type": "web"})) | |
| return {"worker_result": docs} | |