feat: 调整配置入口

This commit is contained in:
李如威 2026-01-07 18:00:27 +08:00
parent 091c1a599c
commit 63d875bdc5
2 changed files with 29 additions and 25 deletions

View File

@ -1,5 +1,6 @@
fastapi
uvicorn[standard]
pydantic
python-dotenv
pytest-asyncio
pymupdf

View File

@ -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()