Spaces:
Runtime error
Runtime error
| """Static configuration and shared dataclasses for QueryQuest. | |
| Author: mohamedgamal04 | |
| """ | |
| from dataclasses import dataclass | |
| from pathlib import Path | |
| class ProviderConfig: | |
| """Provider connection settings used to initialize an OpenAI-compatible client.""" | |
| name: str | |
| base_url: str | |
| default_model: str | |
| env_key_names: tuple[str, ...] | |
| class CliOptions: | |
| """Normalized CLI options parsed from command-line or interactive input.""" | |
| setup: bool | |
| prompt: str | None | |
| PROVIDERS = { | |
| "1": ProviderConfig( | |
| name="gemini", | |
| base_url="https://generativelanguage.googleapis.com/v1beta/openai/", | |
| default_model="gemini-2.0-flash", | |
| env_key_names=("GOOGLE_API_KEY", "GEMINI_API_KEY"), | |
| ), | |
| "2": ProviderConfig( | |
| name="groq", | |
| base_url="https://api.groq.com/openai/v1", | |
| default_model="llama-3.3-70b-versatile", | |
| env_key_names=("GROQ_API_KEY",), | |
| ), | |
| "3": ProviderConfig( | |
| name="nvidia", | |
| base_url="https://integrate.api.nvidia.com/v1", | |
| default_model="meta/llama-3.3-70b-instruct", | |
| env_key_names=("NVIDIA_API_KEY",), | |
| ), | |
| "4": ProviderConfig( | |
| name="ollama", | |
| base_url="http://localhost:11434/v1", | |
| default_model="llama3.2", | |
| env_key_names=("OLLAMA_API_KEY",), | |
| ), | |
| } | |
| PROVIDERS_BY_NAME = {config.name: config for config in PROVIDERS.values()} | |
| ROOT_DIR = Path(__file__).resolve().parents[2] | |
| STATE_FILE = ROOT_DIR / ".provider.json" | |
| EXCEL_DIR = ROOT_DIR / "excel_files" | |
| LOG_FILE = ROOT_DIR / "logs.txt" | |
| EXCEL_INFO_FORMAT_VERSION = "2" | |
| SYSTEM_PROMPT = """Role: QueryQuest, a Data Engineering Assistant. | |
| Operations: | |
| Read: SELECT [columns] FROM [table] WHERE [condition] | |
| Read across sheets: SELECT ... FROM [table_a] JOIN [table_b] ON [table_a.col] = [table_b.col] | |
| Insert rows: INSERT INTO [table] VALUES (...) | |
| Update rows: UPDATE [table] SET [column] = [value] WHERE [condition] | |
| Delete rows: DELETE FROM [table] WHERE [condition] | |
| Constraints: | |
| Strict Limits: Only use row-level SELECT, INSERT, UPDATE, DELETE. | |
| JOIN is allowed for SELECT reads only; INSERT, UPDATE, and DELETE must target a single `workbook__sheet` table with no JOIN. | |
| Never use CREATE, ALTER, DROP, TRUNCATE, PRAGMA, ATTACH, DETACH, COPY, MERGE, read_csv/read_parquet/glob, or any schema-changing or file-reading SQL. | |
| Table naming: Each workbook sheet is available as table `workbook__sheet` (normalized with underscores). | |
| Scope: Use ONLY available local data. | |
| Format: Output a JSON object only: {"sql_statements": ["..."], "explanation": "..."}. No prose outside the JSON.""" |