| import os |
| from pathlib import Path |
|
|
| APP_TITLE = "MitrAnlil Yükseköğretim Mevzuatı AI Asistanı"
|
| APP_VERSION = "MitrAnlil Normative Runtime v1.3" |
| OFFICIAL_SOURCE_URL = (
|
| "https://www.mevzuat.gov.tr/"
|
| )
|
|
|
| ROOT_DIR = Path(__file__).resolve().parent |
| DATA_DIR = Path(os.getenv("MITRANLIL_DATA_DIR", str(ROOT_DIR / "data"))).resolve() |
| SOURCE_DIR = DATA_DIR / "source" |
| NORMALIZED_DIR = DATA_DIR / "normalized"
|
| STRUCTURAL_DIR = DATA_DIR / "structural"
|
| MCKF_DIR = DATA_DIR / "mckf"
|
| FEEDBACK_DIR = DATA_DIR / "feedback"
|
| ANALYTICS_DIR = DATA_DIR / "analytics"
|
| ADMIN_DIR = DATA_DIR / "admin"
|
| TEST_DATA_DIR = DATA_DIR / "tests"
|
| REGISTRY_DIR = DATA_DIR / "registry" |
| ONBOARDING_DIR = DATA_DIR / "onboarding" |
| INSTITUTION_REGISTRY_PATH = ONBOARDING_DIR / "institutions.json" |
| SUBMISSIONS_DIR = ONBOARDING_DIR / "submissions" |
| CANDIDATE_BUILDS_DIR = ONBOARDING_DIR / "builds" |
| PUBLISH_BACKUPS_DIR = ONBOARDING_DIR / "backups" |
|
|
| SOURCE_TEXT_PATH = SOURCE_DIR / "2547_clean.txt"
|
| LEGAL_DOCUMENT_REGISTRY_PATH = REGISTRY_DIR / "legal_documents.json" |
| DECISION_CONTRACT_REGISTRY_PATH = REGISTRY_DIR / "normative_decision_contracts.json" |
| MCKF_ONTOLOGY_PATH = MCKF_DIR / "2547_mckf_ontology.json"
|
| MCKF_SEMANTIC_FRAMES_PATH = MCKF_DIR / "2547_semantic_frames.jsonl"
|
| MCKF_RETRIEVAL_INDEX_PATH = MCKF_DIR / "2547_retrieval_index.json"
|
| CORPUS_MCKF_ONTOLOGY_PATH = MCKF_DIR / "corpus_mckf_ontology.json"
|
| CORPUS_SEMANTIC_FRAMES_PATH = MCKF_DIR / "corpus_semantic_frames.jsonl"
|
| CORPUS_RETRIEVAL_INDEX_PATH = MCKF_DIR / "corpus_retrieval_index.json"
|
| CROSS_DOCUMENT_EDGES_PATH = MCKF_DIR / "cross_document_edges.jsonl"
|
| RDFOX_PILOT_MANIFEST_PATH = MCKF_DIR / "rdfox_pilot_manifest.json"
|
| RDFOX_PILOT_TRIPLES_PATH = MCKF_DIR / "rdfox_pilot_triples.nt"
|
| RDFOX_PILOT_RULES_PATH = MCKF_DIR / "rdfox_pilot_rules.dlog"
|
| MCKF_SHAPES_PATH = MCKF_DIR / "mckf_shapes.ttl"
|
| MCKF_VALIDATION_REPORT_PATH = MCKF_DIR / "validation_report.json"
|
| RUNTIME_BUILD_MANIFEST_PATH = MCKF_DIR / "runtime_build_manifest.json"
|
| FEEDBACK_LOG_PATH = Path(os.getenv("FEEDBACK_LOG_PATH", str(FEEDBACK_DIR / "dialogue_feedback.jsonl")))
|
| USAGE_LOG_PATH = Path(os.getenv("USAGE_LOG_PATH", str(ANALYTICS_DIR / "usage_events.jsonl")))
|
| CLARIFICATION_LOG_PATH = Path(os.getenv("CLARIFICATION_LOG_PATH", str(ANALYTICS_DIR / "clarification_events.jsonl")))
|
| ADMIN_EXAMPLES_PATH = Path(os.getenv("ADMIN_EXAMPLES_PATH", str(ADMIN_DIR / "example_questions.json")))
|
|
|
| LLM_PROVIDER = os.getenv("LLM_PROVIDER", "auto").strip().lower()
|
| HF_MODEL = os.getenv("HF_MODEL") or os.getenv("GEN_MODEL", "Qwen/Qwen2.5-7B-Instruct")
|
| HF_TOKEN = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACEHUB_API_TOKEN")
|
|
|
| GROQ_API_KEY = os.getenv("GROQ_API_KEY")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| GROQ_MODEL = os.getenv("GROQ_MODEL", "openai/gpt-oss-120b")
|
|
|
| OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
| OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o-mini")
|
|
|
|
|
|
|
|
|
|
|
|
|
| MAX_NEW_TOKENS = int(os.getenv("MAX_NEW_TOKENS", "1500"))
|
| MAX_CONTEXT_CHARS = int(os.getenv("MAX_CONTEXT_CHARS", "3000"))
|
| CHATBOT_HEIGHT = int(os.getenv("CHATBOT_HEIGHT", "660")) |
| EVAL_CONTEXT_MAX_CHARS = int(os.getenv("EVAL_CONTEXT_MAX_CHARS", "6000")) |
|
|