Spaces:
Sleeping
Sleeping
| from typing import Any, TypedDict | |
| from langchain_core.documents import Document | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Conversation turn β stored in history | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| class Turn(TypedDict): | |
| role: str # "user" | "assistant" | |
| content: str | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| # Shared state that flows through every LangGraph node | |
| # βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| class AgentState(TypedDict): | |
| # ββ Input ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| question: str # raw user question (current turn) | |
| rewritten_query: str # query after rewriting for retrieval | |
| conversation_history: list[Turn] # last N turns (user + assistant pairs) | |
| # ββ Retrieval βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| documents: list[Document] # chunks returned by hybrid retriever | |
| # ββ Agent outputs βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| is_relevant: bool # set by relevance node | |
| draft_answer: str # set by research node | |
| citations: list[str] # source filenames extracted from docs | |
| verification_report: str # set by verification node | |
| # ββ Control βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| retriever: Any # HybridRetriever instance (passed through) | |
| iteration_count: int # tracks researchβverify loops | |
| enable_verification: bool # toggle slower verification path | |
| model_provider: str # "groq" | "gemini" | |
| model_name: str # selected model name | |