59 lines
2.3 KiB
Python
59 lines
2.3 KiB
Python
from typing import List
|
|
|
|
from pydantic_settings import BaseSettings
|
|
from pydantic import Field
|
|
from dotenv import load_dotenv
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
db_host: str = Field(..., env="DB_HOST")
|
|
db_port: str = Field(..., env="DB_PORT")
|
|
db_username: str = Field(..., env="DB_USERNAME")
|
|
db_password: str = Field(..., env="DB_PASSWORD")
|
|
db_database: str = Field(..., env="DB_DATABASE")
|
|
|
|
pg_db_host: str = Field(..., env="PG_DB_HOST")
|
|
pg_db_port: str = Field(..., env="PG_DB_PORT")
|
|
pg_db_username: str = Field(..., env="PG_DB_USERNAME")
|
|
pg_db_password: str = Field(..., env="PG_DB_PASSWORD")
|
|
pg_db_database: str = Field(..., env="PG_DB_DATABASE")
|
|
|
|
milvus_uri: str = Field(..., env="MILVUS_URI")
|
|
milvus_username: str = Field(..., env="MILVUS_USERNAME")
|
|
milvus_password: str = Field(..., env="MILVUS_PASSWORD")
|
|
llama_index_database: str = Field(..., env="LLAMA_INDEX_DATABASE")
|
|
llama_index_collection: str = Field(..., env="LLAMA_INDEX_COLLECTION")
|
|
llama_index_dimension: str = Field(..., env="LLAMA_INDEX_DIMENSION")
|
|
|
|
redis_host: str = Field(..., env="REDIS_HOST")
|
|
redis_port: str = Field(..., env="REDIS_PORT")
|
|
redis_password: str = Field(..., env="REDIS_PASSWORD")
|
|
redis_db: str = Field(..., env="REDIS_DB")
|
|
|
|
llm_key_local: str = Field(..., env="LLM_KEY_LOCAL")
|
|
llm_key_huoshan: str = Field(..., env="LLM_KEY_HUOSHAN")
|
|
llm_key_bailian: str = Field(..., env="LLM_KEY_BAILIAN")
|
|
llm_key_deepseek: str = Field(..., env="LLM_KEY_DEEPSEEK")
|
|
|
|
server_port: str = Field(..., env="SERVER_PORT")
|
|
server_domain: str = Field(..., env="SERVER_DOMAIN")
|
|
|
|
jwt_secret_key: str = Field(..., env="JWT_SECRET_KEY")
|
|
jwt_algorithm: str = Field(..., env="JWT_ALGORITHM")
|
|
jwt_access_token_expire_seconds: int = Field(..., env="JWT_ACCESS_TOKEN_EXPIRE_SECONDS")
|
|
jwt_refresh_token_expire_seconds: int = Field(..., env="JWT_REFRESH_TOKEN_EXPIRE_SECONDS")
|
|
jwt_global_enable: bool = Field(..., env="JWT_GLOBAL_ENABLE")
|
|
jwt_white_list: List[str] = Field(..., env="JWT_WHITE_LIST")
|
|
|
|
file_save_path: str = Field(..., env='FILE_SAVE_PATH')
|
|
file_public_path: str = Field(..., env='FILE_PUBLIC_PATH')
|
|
default_update_by_fields: bool = Field(..., env='DEFAULT_UPDATE_BY_FIELDS')
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
env_file_encoding = "utf-8"
|
|
|
|
|
|
load_dotenv(".env") # 先加载 .env 文件
|
|
env = Settings()
|