Spaces:
Sleeping
Sleeping
Commit History
-
perf(reporting, rag): optimize end-to-end latency and concurrent execution
- Implement dual-track concurrent execution in reporting engine for parallel quantitative analytics and qualitative RAG - Add fast-path concall transcript text extractor reducing transcript parse time from ~284s to <2s - Enable concurrent 5-pillar LLM synthesis via ThreadPoolExecutor(max_workers=5) - Optimize vector embedding batch sizes (64/128) and default Arctic-M 768-dim model configuration - Unify API cache storage in output/<TICKER>/api/ and enforce automatic build byproduct sweeping - Add automatic Google Drive report upload with link sharing - Document complete latency optimization architecture in SYSTEM_LATENCY_OPTIMIZATION_ARCHITECTURE.md2ac7dee
-
refactor!: hosted-model-only core, Drive report delivery, shared harnesses
Consolidates the platform onto one LLM path, one artifact layout and one verification harness, and removes the code that no longer has a caller. BREAKING: the Flask API is now search plus report delivery. The Self-RAG markdown report and DCF endpoints are gone with the services that produced them, and reports are addressed by their Google Drive link. core/ - llm_config.py talks to a single hosted OpenAI-compatible endpoint. The Ollama, Groq and Gemini branches and their environment variables are gone, along with create_client, create_content_part and read_file_content. A failure now raises LLMError: the previous fallback returned the prompt's own context, which a caller could not tell from real analysis. - config.py drops the hardcoded D:/Stock_Fundamental fallback and three unused dataclasses (FilePaths, WebsiteUrls, ApiEndpoints) that each carried a duplicate set of uppercase aliases. One artifact root per concern: REPORTS_DIR holds every finished PDF, OUTPUT_DIR hold…79cf149 -
feat(reporting): add PDF report engine foundation with denominator guardrail
Introduces the data and formatting layer for a typeset A4 equity research report built directly from the Financial Data Collector REST payloads, with no language model anywhere in the path. - tokens: single source for colour, type, page geometry and the display window, so a matplotlib figure and the Typst page around it read as one document rather than two. Typefaces are restricted to those shipping lining figures; Georgia and Constantia were rejected for defaulting to old-style digits, which read as broken in a column of financials. - client: typed, disk-cached wrapper over the fourteen collector endpoints, so iterating on layout re-reads one directory instead of issuing fourteen requests. - snapshot: normalised domain model that absorbs the provider's quirks once instead of in every table - the appended TTM row that is not a fiscal year, peer market caps denominated in rupee million where everything else is crore, and the growth annotations that restate an absolute…a2b1e2f