šŸ” Code Extractor

function demonstrate_sql_workflow_v1

Maturity: 44

Demonstrates the enhanced SQL workflow for the SmartStat system by loading configurations, initializing the SQL query generator, testing natural language to SQL conversion, and displaying schema analysis.

File:
/tf/active/vicechatdev/full_smartstat/demo_enhanced_sql_workflow.py
Lines:
16 - 120
Complexity:
moderate

Purpose

This function serves as a comprehensive demonstration and testing tool for the SmartStat Enhanced SQL Workflow. It showcases the system's capabilities including: loading database schema and connection configurations, generating SQL queries from natural language inputs, recognizing domain-specific patterns (particularly for Poulpharm LIMS veterinary laboratory), analyzing database schema structure, and displaying connection settings. It's designed for testing, validation, and educational purposes to demonstrate the system's features to users or developers.

Source Code

def demonstrate_sql_workflow():
    """Demonstrate the enhanced SQL workflow"""
    
    print("🧬 SmartStat Enhanced SQL Workflow Demo")
    print("=" * 50)
    
    # Load default configurations
    print("\n1. Loading default configurations...")
    try:
        schema_file = get_default_schema_file()
        schema = DatabaseSchema.from_json(schema_file)
        conn_config = get_default_connection_config()
        
        print(f"āœ… Database: {schema.database_name}")
        print(f"āœ… Description: {schema.description}")
        print(f"āœ… Total tables: {len(schema.complete_table_list)}")
        print(f"āœ… Connection: {conn_config.server}/{conn_config.database}")
    except Exception as e:
        print(f"āŒ Error loading configurations: {e}")
        return
    
    # Initialize SQL query generator
    print("\n2. Initializing SQL Query Generator...")
    query_generator = SQLQueryGenerator(schema)
    print(f"āœ… Poulpharm optimization: {query_generator.is_poulpharm}")
    
    # Test cases
    test_queries = [
        "Show me recent bacteriology results with antibiogram data",
        "Get customer statistics for the last 6 months",
        "Analyze PCR test results",
        "Check sample workflow status",
        "Show validation quality metrics",
        "Get recent laboratory requests"
    ]
    
    print("\n3. Testing SQL Generation...")
    print("-" * 40)
    
    for i, user_query in enumerate(test_queries, 1):
        print(f"\nšŸ“‹ Test {i}: {user_query}")
        try:
            sql_query, metadata = query_generator.generate_sql_query(user_query)
            
            print(f"āœ… Explanation: {metadata.get('explanation', 'Generated SQL query')}")
            print("šŸ“ Generated SQL:")
            print("```sql")
            # Show first few lines of SQL for brevity
            sql_lines = sql_query.split('\n')
            for line in sql_lines[:8]:
                print(f"  {line}")
            if len(sql_lines) > 8:
                print(f"  ... ({len(sql_lines) - 8} more lines)")
            print("```")
            
        except Exception as e:
            print(f"āŒ Error: {e}")
    
    # Show pattern recognition
    print("\n4. Pattern Recognition Demo...")
    print("-" * 40)
    
    patterns = {
        'Bacteriology': ['bacteria', 'antibiogram', 'sensitivity'],
        'Customer Analysis': ['customer', 'company', 'veterinarian'],
        'PCR Testing': ['pcr', 'molecular', 'genetic'],
        'Sample Workflow': ['sample', 'workflow', 'processing'],
        'Quality Control': ['quality', 'validation', 'validated']
    }
    
    for pattern_name, keywords in patterns.items():
        print(f"\nšŸ” {pattern_name} Pattern:")
        print(f"   Keywords: {', '.join(keywords)}")
        if hasattr(query_generator, 'common_patterns'):
            pattern_info = query_generator.common_patterns.get(pattern_name.lower().replace(' ', '_'))
            if pattern_info:
                print(f"   Tables: {pattern_info.get('tables', 'Dynamic')}")
    
    print("\n5. Database Schema Analysis...")
    print("-" * 40)
    
    print(f"šŸ“Š Key Table Categories:")
    for category, info in schema.table_categories.items():
        table_count = len(info.get('tables', [])) if 'tables' in info else info.get('table_count', 'N/A')
        print(f"   • {category}: {table_count} tables")
    
    print(f"\nšŸ”— Key Relationships:")
    for rel_name, rel_info in schema.key_relationships.items():
        flow = rel_info.get('flow', 'N/A')
        print(f"   • {rel_name}: {flow}")
    
    print("\n6. Connection Configuration...")
    print("-" * 40)
    print(f"šŸ–„ļø  Server: {conn_config.server}")
    print(f"šŸ—„ļø  Database: {conn_config.database}")
    print(f"šŸ‘¤ Username: {conn_config.username}")
    print(f"šŸ”Œ Driver: {conn_config.driver}")
    print(f"šŸ”— Connection String: {conn_config.to_connection_string()[:50]}...")
    
    print("\nāœ… Demo completed successfully!")
    print("\nšŸ’” Usage Tips:")
    print("   • Use natural language to describe your analysis needs")
    print("   • The system recognizes Poulpharm LIMS patterns automatically")
    print("   • SQL queries are optimized for the veterinary laboratory domain")
    print("   • Default configurations are loaded from sql_config.py and database_schema_20251003_120434.json")

Return Value

This function does not return any value (implicitly returns None). It performs side effects by printing demonstration output to the console, including configuration details, generated SQL queries, pattern recognition results, schema analysis, and connection information.

Dependencies

  • sys
  • os
  • sql_query_generator

Required Imports

import sys
import os
from sql_query_generator import SQLQueryGenerator
from sql_query_generator import DatabaseSchema
from sql_query_generator import ConnectionConfig
from sql_query_generator import get_default_connection_config
from sql_query_generator import get_default_schema_file

Usage Example

# Simple usage - just call the function to run the demo
from sql_query_generator import SQLQueryGenerator, DatabaseSchema, ConnectionConfig, get_default_connection_config, get_default_schema_file

# Run the complete demonstration
demonstrate_sql_workflow()

# The function will:
# 1. Load default configurations from sql_config.py and schema JSON
# 2. Initialize the SQL Query Generator
# 3. Test 6 different natural language queries
# 4. Display pattern recognition capabilities
# 5. Show database schema analysis
# 6. Display connection configuration details
# All output is printed to console with formatted sections

Best Practices

  • Ensure sql_config.py and database_schema_20251003_120434.json files exist and are properly configured before running
  • This function is designed for demonstration and testing purposes, not for production use
  • The function prints extensive output to console, so redirect output if needed for logging
  • Error handling is implemented for configuration loading, but individual test queries may fail if schema is incomplete
  • The function truncates SQL output to first 8 lines for readability - full queries are generated but not fully displayed
  • Use this function to validate that the SQL query generator is working correctly after configuration changes
  • The test queries are specifically designed for veterinary laboratory (Poulpharm LIMS) domain - modify them for other domains

Similar Components

AI-powered semantic similarity - components with related functionality:

  • function demonstrate_sql_workflow 99.5% similar

    Demonstrates the enhanced SQL workflow for the SmartStat system by loading configurations, initializing SQL query generator, testing natural language to SQL conversion, and displaying schema analysis.

    From: /tf/active/vicechatdev/smartstat/demo_enhanced_sql_workflow.py
  • function main_v62 88.2% similar

    Demonstrates the SmartStat SQL Workflow by loading a database schema, initializing a SQL query generator, and generating SQL queries from natural language requests for various laboratory data analysis scenarios.

    From: /tf/active/vicechatdev/smartstat/demo_sql_workflow.py
  • function main_v61 83.9% similar

    Demonstrates a SmartStat SQL workflow by loading a database schema, initializing a SQL query generator, and generating SQL queries from natural language requests with detailed output and metadata.

    From: /tf/active/vicechatdev/full_smartstat/demo_sql_workflow.py
  • function demo_analysis_workflow 76.9% similar

    Demonstrates a complete end-to-end statistical analysis workflow using the SmartStat system, including session creation, data loading, natural language query processing, analysis execution, and result interpretation.

    From: /tf/active/vicechatdev/full_smartstat/demo.py
  • function test_enhanced_workflow 68.7% similar

    A comprehensive test function that validates the EnhancedSQLWorkflow system by testing component initialization, request parsing, and data assessment capabilities.

    From: /tf/active/vicechatdev/full_smartstat/test_enhanced_workflow.py
← Back to Browse