File size: 1,495 Bytes
b196357
 
 
 
babc153
b196357
86c3e08
 
b196357
 
 
 
 
 
 
babc153
b196357
babc153
 
b196357
 
 
 
86c3e08
babc153
902cd29
babc153
b196357
 
ade7c8d
b196357
902cd29
 
 
 
babc153
b196357
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from __future__ import annotations

import os
from dataclasses import dataclass
from pathlib import Path

from env.env_loader import load_env_file


@dataclass(frozen=True)
class RuntimeConfig:
    llm_provider: str
    llm_base_url: str
    llm_api_key: str
    llm_model_agent: str
    llm_model_training: str
    llm_model_judge: str
    llm_model_agent_path: str
    llm_weight_manifest_dir: str
    max_steps_per_episode: int


def load_runtime_config() -> RuntimeConfig:
    load_env_file()
    default_model_path = str(
        (Path(__file__).resolve().parents[2] / "Models" / "gemma-4-E4B-it-Q6_K.gguf").resolve()
    )
    return RuntimeConfig(
        llm_provider=os.getenv("GRAPHREVIEW_LLM_PROVIDER", "ollama_openai_compat"),
        llm_base_url=os.getenv("GRAPHREVIEW_LLM_BASE_URL", os.getenv("API_BASE_URL", "http://localhost:11434/v1")),
        llm_api_key=os.getenv("GRAPHREVIEW_LLM_API_KEY", "ollama"),
        llm_model_agent=os.getenv("GRAPHREVIEW_LLM_MODEL_AGENT", "unsloth/gemma-4-E4B-it-GGUF"),
        llm_model_training=os.getenv("GRAPHREVIEW_LLM_MODEL_TRAINING", "unsloth/gemma-4-E4B-it"),
        llm_model_judge=os.getenv("GRAPHREVIEW_LLM_MODEL_JUDGE", "Qwen/Qwen2.5-7B-Instruct"),
        llm_model_agent_path=os.getenv("GRAPHREVIEW_GEMMA_GGUF_PATH", default_model_path),
        llm_weight_manifest_dir=os.getenv("GRAPHREVIEW_WEIGHT_MANIFEST_DIR", "outputs/weights"),
        max_steps_per_episode=int(os.getenv("GRAPHREVIEW_MAX_STEPS_PER_EPISODE", "80")),
    )