Files
NotesAgentic/backend/app/config.py
admin 36bc1022f1 fix(backend): 修复全面审阅发现的核心问题
修复索引首次失败回滚、Vault 扫描边界、Markdown 代码围栏和 UTF-16 Citation 偏移。

收紧 Plugin 权限与 JSON Schema 校验,补齐 Note Move、Task、Attachment 和 Transcript Tool。

接入 OpenAI SSE 与 Ollama JSONL 真流式输出,修正 Provider PATCH 语义并限制运行时内存保留。

新增对应回归测试,后端测试增至 62 项。
2026-08-28 09:56:07 +08:00

45 lines
1.4 KiB
Python

import os
from dataclasses import dataclass
from functools import lru_cache
from pathlib import Path
# backend 目录(本文件位于 backend/app/config.py,父目录的父目录即 backend)
BACKEND_DIR = Path(__file__).resolve().parent.parent
@dataclass(frozen=True)
class Settings:
"""应用基础配置;正式环境可通过 APP_* 环境变量覆盖。
数据目录默认落在 backend/data 下:app.db 保存 SQLite 索引,
vault/ 保存 Markdown 笔记。三者均可通过环境变量覆盖,便于测试与正式部署分离。
"""
name: str
version: str
environment: str
host: str
port: int
data_dir: Path
db_path: Path
vault_path: Path
attachments_path: Path
@lru_cache
def get_settings() -> Settings:
data_dir = Path(os.getenv("APP_DATA_DIR", str(BACKEND_DIR / "data")))
return Settings(
name=os.getenv("APP_NAME", "Notes Agent AI Core"),
version=os.getenv("APP_VERSION", "0.1.0"),
environment=os.getenv("APP_ENVIRONMENT", "development"),
host=os.getenv("APP_HOST", "127.0.0.1"),
port=int(os.getenv("APP_PORT", "8000")),
data_dir=data_dir,
db_path=Path(os.getenv("APP_DB_PATH", str(data_dir / "app.db"))),
vault_path=Path(os.getenv("APP_VAULT_PATH", str(data_dir / "vault"))),
attachments_path=Path(
os.getenv("APP_ATTACHMENTS_PATH", str(data_dir / "attachments"))
),
)