123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from __future__ import annotations
- from dataclasses import dataclass, field
- from typing import TypedDict
- from langgraph.graph import add_messages
- from typing_extensions import Annotated
- import operator
- class OverallState(TypedDict):
- messages: Annotated[list, add_messages]
- search_query: Annotated[list, operator.add]
- web_research_result: Annotated[list, operator.add]
- sources_gathered: Annotated[list, operator.add]
- initial_search_query_count: int
- max_research_loops: int
- research_loop_count: int
- reasoning_model: str
- class ReflectionState(TypedDict):
- is_sufficient: bool
- knowledge_gap: str
- follow_up_queries: Annotated[list, operator.add]
- research_loop_count: int
- number_of_ran_queries: int
- class Query(TypedDict):
- query: str
- rationale: str
- class QueryGenerationState(TypedDict):
- search_query: list[Query]
- class WebSearchState(TypedDict):
- search_query: str
- id: str
- @dataclass(kw_only=True)
- class SearchStateOutput:
- running_summary: str = field(default=None) # Final report
|