Commit History
-
feat: add rolling stats, K-Means clustering, and hypothesis testing
Nolan Zandi +1: Claude Sonnet 4.6- Add rolling_stats_func: overlays rolling mean/std/min/max on a time series using plotly.graph_objects; supports optional category grouping - Add kmeans_clustering_func: StandardScaler + KMeans (sklearn), scatter plot coloured by cluster, centroid summary table - Add hypothesis_test_func: independent/one-sample t-test (scipy) and chi-square test of independence; returns styled HTML results table - Register all three in tool schemas, __init__.py, available_functions, and system message; add scipy and scikit-learn to requirements.txt - Refactor chart_tools.py: extract _LAYOUT_PARAM and _TRACE_STYLE_PARAM constants to eliminate ~8x copy-paste; remove layout from required arrays on line/bar/pie; fix hardcoded 'SQLite' references; standardise all tool descriptions to consistent what/when/returns format - Refactor stats_tools.py: same description standardisation - Shorten tools_desc in system message from 13 lines to 2 sentences (LLM already receives full schema descriptions…7afc8ec -
feat: add box plot, correlation heatmap, and descriptive statistics
Nolan Zandi +1: Claude Sonnet 4.6New analysis functions: - box_chart_generation_func: distribution and outlier visualisation, optional x-axis grouping and colour category (px.box) - correlation_heatmap_func: pairwise Pearson correlation heatmap for numeric columns using RdBu_r scale (px.imshow); defaults to all numeric columns if none specified - descriptive_stats_func: inline summary statistics table (count, mean, std, min, 25/50/75%, max) styled to match the app theme Supporting changes: - Tool schemas added to chart_tools.py and stats_tools.py - All three functions exported from functions/__init__.py - All three wired into available_functions in chatbot_func - system_message refactored: removed repetition across 4 data-source variants via shared tools_desc string; fixed longstanding bug where bar_chart_generation_func was referred to as line_chart_generation_func in the doc_db and graphql system prompts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>c007902
-
fix: resolve ModuleNotFoundError for tools.tools
Nolan Zandi +1: Claude Sonnet 4.6Root causes: - tools/__init__.py was missing; created empty file to make tools/ a proper Python package - chart_tools.py and stats_tools.py had top-level `from haystack.tools import Tool` imports, causing the entire module to fail to load if that import path is unavailable, which surfaced as ModuleNotFoundError: No module named 'tools.tools' - Fixed by removing all Haystack imports from chart_tools.py and stats_tools.py — they now export plain schema dicts only - tools.py does the `from haystack.tools import Tool` import lazily inside tools_call(), so any ImportError surfaces clearly at call time rather than at module load - Pinned haystack-ai>=2.7.0 in requirements.txt to ensure Tool is available Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>70b0712 -
feat: user-supplied API keys, model selector, and Anthropic support
Nolan Zandi +1: Claude Sonnet 4.6- Replace hardwired OpenAI key with a per-session API key form at the top of the UI; key is stored in memory only and cleared on page unload - Add model dropdown that dynamically switches between OpenAI and Anthropic model lists based on detected key prefix (sk-ant- vs sk-) - Add anthropic-haystack dependency for AnthropicChatGenerator support - Refactor tools/chart_tools.py, tools/stats_tools.py, and tools/tools.py to use Haystack's provider-agnostic Tool class instead of raw OpenAI-format dicts, enabling tool calling to work with both OpenAI and Anthropic models - Fix invalid JSON Schema (items field on non-array properties) in tool parameter definitions for stricter Anthropic compatibility - Pass tools via tools= parameter to chat_generator.run() rather than generation_kwargs so both generators handle format conversion natively Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>4ac9bc4
-
updates to queries and tools for fewer errors
Nolan Zandi0fe0734
-
condense query functions
Nolan Zandi9dfb507
-
refactor chat functions
Nolan Zandib1d71ae
-
add secondary query function
Nolan Zandibe3a88a -
first version of graphql integration
Nolan Zandif907f2a
-
integration mongodb
Nolan Zandi18b1006
-
review updates
Nolan Zandi35107b6 -
first draft of sql integration
Nolan Zandi8310dd0
-
more refactor updates
Nolan Zandi8a82b49
-
refactor and visual updates
Nolan Zandia7f0a50