Files
2026-10-12 11:28:37 +08:00

49 lines
1.5 KiB
Python

import os
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
DATA_DIR = ROOT / "data"
STATIC_DIR = ROOT / "static"
EMBEDDING_MODEL = "BAAI/bge-small-zh-v1.5"
COLLECTION_NAME = "knowledge_bge_small_zh_v15"
CHUNK_SIZE = 360
CHUNK_OVERLAP = 60
DEFAULT_TOP_K = 4
LOW_SCORE = 0.45
os.environ.setdefault("ANONYMIZED_TELEMETRY", "False")
os.environ.setdefault("TOKENIZERS_PARALLELISM", "false")
def load_dotenv() -> None:
path = ROOT / ".env"
if not path.exists():
return
for raw in path.read_text(encoding="utf-8").splitlines():
line = raw.strip()
if not line or line.startswith("#") or "=" not in line:
continue
key, value = line.split("=", 1)
key = key.strip()
value = value.strip().strip('"').strip("'")
if key and key not in os.environ:
os.environ[key] = value
load_dotenv()
def llm_config() -> dict | None:
key = os.getenv("OPENAI_API_KEY", "").strip()
openai_base = os.getenv("OPENAI_BASE_URL", "").strip()
if key and openai_base:
model = os.getenv("OPENAI_MODEL", "gpt-4o-mini").strip() or "gpt-4o-mini"
return {"provider": "openai", "key": key, "base": openai_base.rstrip("/"), "model": model}
base = os.getenv("OLLAMA_BASE_URL", "http://10.7.9.3:11434").strip()
if not base:
return None
model = os.getenv("OLLAMA_MODEL", "qwen3-vl:4b").strip() or "qwen3-vl:4b"
return {"provider": "ollama", "key": "ollama", "base": base.rstrip("/"), "model": model}