Spaces:
No application file
No application file
Download src/agenticRAG/nodes/rag_node.py from Alamgirapi/Try: direct link, hf CLI and curl.
- Browser
- Download file 1.82 kB
-
https://huggingface.co/spaces/Alamgirapi/Try/resolve/main/src/agenticRAG/nodes/rag_node.py
- Command line
-
hf download hf://spaces/Alamgirapi/Try/src/agenticRAG/nodes/rag_node.py
-
curl -L -o rag_node.py https://huggingface.co/spaces/Alamgirapi/Try/resolve/main/src/agenticRAG/nodes/rag_node.py
1.82 kB
| from src.agenticRAG.models.state import AgentState | |
| from src.agenticRAG.components.llm_factory import LLMFactory | |
| from src.agenticRAG.components.vectorstore import VectorStoreManager | |
| from src.agenticRAG.prompt.prompts import Prompts | |
| class RAGNode: | |
| """Node for RAG processing""" | |
| def __init__(self): | |
| self.llm = LLMFactory.get_llm() | |
| self.vectorstore_manager = VectorStoreManager() | |
| self.prompt = Prompts.RAG_RESPONSE | |
| # Load vectorstore | |
| self.vectorstore_manager.load_vectorstore() | |
| def process_rag(self, state: AgentState) -> AgentState: | |
| """Process RAG path - retrieve from knowledge base""" | |
| try: | |
| # Retrieve documents | |
| docs = self.vectorstore_manager.search_documents(state.upgraded_query, k=3) | |
| state.retrieved_docs = docs | |
| # Generate response with retrieved context | |
| chain = self.prompt | self.llm | |
| context = "\n".join(docs) if docs else "No relevant documents found." | |
| response = chain.invoke({ | |
| "query": state.upgraded_query, | |
| "context": context | |
| }) | |
| state.final_response = response.content | |
| state.metadata["rag_success"] = True | |
| except Exception as e: | |
| state.final_response = "Sorry, I couldn't retrieve information from the knowledge base." | |
| state.metadata["rag_success"] = False | |
| state.metadata["rag_error"] = str(e) | |
| return state | |
| # Node function for LangGraph | |
| def rag_node(state: AgentState) -> AgentState: | |
| """Node function for RAG processing""" | |
| rag_processor = RAGNode() | |
| return rag_processor.process_rag(state) |