ChatWithData / src /config.py
niddijoris's picture
Upload Streamlit app
790e0e9
"""
Configuration management for Data Insights App
"""
import os
from pathlib import Path
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Base paths
BASE_DIR = Path(__file__).parent
DATA_DIR = BASE_DIR / "data"
DATABASE_DIR = BASE_DIR / "database"
# API Configuration
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
OPENAI_MODEL = "gpt-4-turbo-preview" # Model with function calling support
# GitHub Configuration (Optional)
GITHUB_TOKEN = os.getenv("GITHUB_TOKEN", "")
GITHUB_REPO = os.getenv("GITHUB_REPO", "")
GITHUB_FOLDER = os.getenv("GITHUB_FOLDER", "") # Optional folder/project prefix for issues
# Database Configuration
DATABASE_PATH = os.getenv("DATABASE_PATH", str(DATABASE_DIR / "car_prices.db"))
CSV_DATA_PATH = DATA_DIR / "car_prices.csv"
# Application Settings
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")
MAX_LOG_ENTRIES = 100 # Maximum number of log entries to keep in sidebar
# Sample queries for user guidance
SAMPLE_QUERIES = [
"What's the average selling price of BMW cars?",
"Show me the top 5 most expensive car models",
"How many cars were sold in California?",
"What's the price difference between automatic and manual transmission?",
"Show statistics about cars in excellent condition",
"Which seller has the most cars in the database?",
]
# Safety settings
ALLOWED_SQL_OPERATIONS = ["SELECT"]
DANGEROUS_SQL_KEYWORDS = [
"DELETE", "DROP", "TRUNCATE", "ALTER",
"UPDATE", "INSERT", "CREATE", "REPLACE"
]