ai_pipeline/src/pipeline/config.py

54 lines
1.6 KiB
Python

from mimetypes import init
from typing import TypedDict
from dotenv import load_dotenv
from src.pipeline.core.utils import logger
import os
load_dotenv()
class Config(TypedDict):
logger_level: str
version: str
port: int
host: str
llm_api_key: str
llm_api_host: str
llm_model: str
rerank_api_key: str
rerank_api_host: str
rerank_model: str
embedding_api_key: str
embedding_api_host: str
embedding_model: str
embedding_dims: int
es_host: str
es_port: int
es_user: str
es_password: str
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")