from dataclasses import dataclass from .prompts import ( MAPREDUCE_SYSTEM_PROMPT, QUERY_FORMAT_PROMPT, PLANNING_SYSTEM_PROMPT, MAP_PROMPT, REDUCE_PROMPT, COLLAPSE_PROMPT, SUMMARY_PROMPT, ) @dataclass class LongCepoConfig: temperature_plan: float = 0.7 # Temperature for planning stage temperature_map: float = 0.7 # Temperature for map stage temperature_collapse: float = 0.7 # Temperature for collapse stage temperature_reduce: float = 0.7 # Temperature for reduce stage chunk_size: int = 4096 # Max tokens per chunk when splitting context max_output_tokens: int = 1024 # Max output tokens per LLM API call (except for summary generation) max_context_window: int = 8192 # Total model context window available max_output_tokens_summary: int = 300 # Max output tokens per LLM API call (summary generation) num_neighbor_summaries: int = 5 # Number of adjacent summaries from before/after in the context included in mapping stage system_prompt: str = MAPREDUCE_SYSTEM_PROMPT # System prompt used in map/collapse/reduce stages summary_prompt: str = SUMMARY_PROMPT # Prompt template for generating summaries in map phase map_prompt: str = MAP_PROMPT # Prompt template for map stage collapse_prompt: str = COLLAPSE_PROMPT # Prompt template for collapse stage reduce_prompt: str = REDUCE_PROMPT # Prompt template for reduce stage query_format_prompt: str = QUERY_FORMAT_PROMPT # Query normalization step prompt planning_system_prompt: str = PLANNING_SYSTEM_PROMPT # Planning stage prompt context_query_delimiter: str = "" # Delimiter used to split initial input into context and query # tokenizer_name: str = "meta-llama/Llama-4-Maverick-17B-128E-Instruct" # Tokenizer to use to determine token lengths tokenizer_name: str = "meta-llama/Llama-3.1-8B-Instruct" # Tokenizer to use to determine token lengths