32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
"""Configuration from environment variables — no file parsing required for basic use."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
DATA_DIR = Path(os.environ.get("PAGEPIPER_DATA_DIR", "data"))
|
|
DB_PATH = str(DATA_DIR / "pagepiper.db")
|
|
VEC_DB_PATH = str(DATA_DIR / "pagepiper_vecs.db")
|
|
WATCH_DIR = Path(os.environ.get("PAGEPIPER_WATCH_DIR", "books"))
|
|
|
|
|
|
def get_llm_config() -> dict | None:
|
|
"""Build LLMRouter config from env vars. Returns None if PAGEPIPER_OLLAMA_URL is unset."""
|
|
url = os.environ.get("PAGEPIPER_OLLAMA_URL", "").strip()
|
|
if not url:
|
|
return None
|
|
return {
|
|
"fallback_order": ["ollama"],
|
|
"backends": {
|
|
"ollama": {
|
|
"type": "openai_compat",
|
|
"base_url": url.rstrip("/") + "/v1",
|
|
"model": os.environ.get("PAGEPIPER_CHAT_MODEL", "mistral:7b"),
|
|
"embedding_model": os.environ.get(
|
|
"PAGEPIPER_EMBED_MODEL", "nomic-embed-text"
|
|
),
|
|
"supports_images": False,
|
|
}
|
|
},
|
|
}
|