54 lines
1.5 KiB
Python
54 lines
1.5 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
|
|
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
|
|
qdrant_host: str
|
|
qdrant_port: int
|
|
qdrant_api_key: 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"),
|
|
"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 "",
|
|
"qdrant_host": os.getenv("QDRANT_HOST"),
|
|
"qdrant_port": int(os.getenv("QDRANT_PORT")),
|
|
"qdrant_api_key": os.getenv("QDRANT_API_KEY") or "",
|
|
}
|
|
|
|
config = _read_config()
|
|
logger.debug("创建全局: config")
|