diff --git a/requirements.txt b/requirements.txt index 9bd0c95..a5a3c35 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ fastapi uvicorn[standard] +pydantic python-dotenv pytest-asyncio pymupdf diff --git a/src/pipeline/config.py b/src/pipeline/config.py index 210f4e5..cf6c7e2 100644 --- a/src/pipeline/config.py +++ b/src/pipeline/config.py @@ -1,12 +1,13 @@ from mimetypes import init from typing import TypedDict from dotenv import load_dotenv -from src.pipeline.utils import logger import os +from pydantic_settings import BaseSettings load_dotenv() -class Config(TypedDict): + +class Settings(BaseSettings): logger_level: str version: str port: int @@ -26,28 +27,30 @@ class Config(TypedDict): es_user: str es_password: str + class Config: + env_file = ".env" -def _read_config() -> Config: - return { - "logger_level": os.getenv("LOGGER_LEVEL", "DEBUG"), - "host": os.getenv("HOST"), - "port": int(os.getenv("PORT")), - "version": os.getenv("VERSION"), - "llm_api_host": os.getenv("LLM_API_HOST"), - "llm_api_key": os.getenv("LLM_API_KEY"), - "llm_model": os.getenv("LLM_MODEL"), - "rerank_api_host": os.getenv("RERANK_API_HOST"), - "rerank_api_key": os.getenv("RERANK_API_KEY"), - "rerank_model": os.getenv("RERANK_MODEL"), - "embedding_api_host": os.getenv("EMBEDDING_API_HOST"), - "embedding_api_key": os.getenv("EMBEDDING_API_KEY"), - "embedding_model": os.getenv("EMBEDDING_MODEL"), - "embedding_dims": int(os.getenv("EMBEDDING_DIMS")), - "es_host": os.getenv("ES_HOST"), - "es_port": int(os.getenv("ES_PORT")), - "es_user": os.getenv("ES_USER") or "elastic", - "es_password": os.getenv("ES_PASSWORD") or "", - } -config = _read_config() -logger.debug("创建全局: config") +# def _read_config() -> Settings: +# return { +# "logger_level": os.getenv("LOGGER_LEVEL", "DEBUG"), +# "host": os.getenv("HOST"), +# "port": int(os.getenv("PORT")), +# "version": os.getenv("VERSION"), +# "llm_api_host": os.getenv("LLM_API_HOST"), +# "llm_api_key": os.getenv("LLM_API_KEY"), +# "llm_model": os.getenv("LLM_MODEL"), +# "rerank_api_host": os.getenv("RERANK_API_HOST"), +# "rerank_api_key": os.getenv("RERANK_API_KEY"), +# "rerank_model": os.getenv("RERANK_MODEL"), +# "embedding_api_host": os.getenv("EMBEDDING_API_HOST"), +# "embedding_api_key": os.getenv("EMBEDDING_API_KEY"), +# "embedding_model": os.getenv("EMBEDDING_MODEL"), +# "embedding_dims": int(os.getenv("EMBEDDING_DIMS")), +# "es_host": os.getenv("ES_HOST"), +# "es_port": int(os.getenv("ES_PORT")), +# "es_user": os.getenv("ES_USER") or "elastic", +# "es_password": os.getenv("ES_PASSWORD") or "", +# } + +config = Settings()