35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from strix.config import Config
|
|
from strix.config.config import resolve_llm_config
|
|
from strix.llm.utils import resolve_strix_model
|
|
|
|
|
|
class LLMConfig:
|
|
def __init__(
|
|
self,
|
|
model_name: str | None = None,
|
|
enable_prompt_caching: bool = True,
|
|
skills: list[str] | None = None,
|
|
timeout: int | None = None,
|
|
scan_mode: str = "deep",
|
|
is_whitebox: bool = False,
|
|
interactive: bool = False,
|
|
):
|
|
resolved_model, self.api_key, self.api_base = resolve_llm_config()
|
|
self.model_name = model_name or resolved_model
|
|
|
|
if not self.model_name:
|
|
raise ValueError("STRIX_LLM environment variable must be set and not empty")
|
|
|
|
api_model, canonical = resolve_strix_model(self.model_name)
|
|
self.litellm_model: str = api_model or self.model_name
|
|
self.canonical_model: str = canonical or self.model_name
|
|
|
|
self.enable_prompt_caching = enable_prompt_caching
|
|
self.skills = skills or []
|
|
|
|
self.timeout = timeout or int(Config.get("llm_timeout") or "300")
|
|
|
|
self.scan_mode = scan_mode if scan_mode in ["quick", "standard", "deep"] else "deep"
|
|
self.is_whitebox = is_whitebox
|
|
self.interactive = interactive
|