From 63d875bdc52e8060784032a1ee905ec9ca189e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=A6=82=E5=A8=81?= Date: Wed, 7 Jan 2026 18:00:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 + src/pipeline/config.py | 53 ++++++++++++++++++++++-------------------- 2 files changed, 29 insertions(+), 25 deletions(-) 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()