29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
import os
|
|||
|
|
from functools import lru_cache
|
||
|
|
from pydantic import BaseSettings, Field
|
||
|
|
|
||
|
|
|
||
|
|
class Settings(BaseSettings):
|
||
|
|
"""FastAPI 配置,统一读取 .env 或系统环境变量"""
|
||
|
|
|
||
|
|
app_name: str = Field("AIMNOTE Ingest Service", env="INGEST_APP_NAME")
|
||
|
|
environment: str = Field("development", env="INGEST_ENV")
|
||
|
|
api_prefix: str = "/api"
|
||
|
|
supabase_url: str = Field("http://127.0.0.1:54321", env="SUPABASE_URL")
|
||
|
|
supabase_key: str = Field("", env="SUPABASE_SERVICE_ROLE_KEY")
|
||
|
|
lightrag_url: str = Field("http://127.0.0.1:7777", env="LIGHTRAG_URL")
|
||
|
|
ollama_base_url: str = Field("http://127.0.0.1:11434/v1", env="OLLAMA_BASE_URL")
|
||
|
|
ollama_api_key: str = Field("ollama", env="OLLAMA_API_KEY")
|
||
|
|
embeddings_model: str = Field("qwen3-embedding:8b", env="EMBEDDING_MODEL")
|
||
|
|
llm_model: str = Field("qwen3:32b", env="DEFAULT_LLM_MODEL")
|
||
|
|
rerank_model: str = Field("qwen3-reranker-4b", env="RERANK_MODEL")
|
||
|
|
|
||
|
|
class Config:
|
||
|
|
env_file = ".env"
|
||
|
|
case_sensitive = False
|
||
|
|
|
||
|
|
|
||
|
|
@lru_cache()
|
||
|
|
def get_settings() -> Settings:
|
||
|
|
return Settings()
|