83 lines
1.6 KiB
Python
83 lines
1.6 KiB
Python
from pydantic_settings import BaseSettings
|
|
from pydantic import ConfigDict
|
|
import pathlib
|
|
|
|
APP_DIR = pathlib.Path(__file__).parent
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# LLM配置
|
|
model_name: str
|
|
api_key: str
|
|
base_url: str
|
|
dashscope_model_name:str
|
|
|
|
# 本地部署qwen3-14b模型配置
|
|
local_model_name: str
|
|
local_api_key: str
|
|
local_base_url: str
|
|
|
|
# 向量模型配置
|
|
bge_m3_model_name: str
|
|
bge_m3_base_url: str
|
|
bge_m3_api_key: str
|
|
|
|
# 排序模型配置
|
|
bge_reranker_model_name: str
|
|
bge_reranker_base_url: str
|
|
|
|
# Mysql配置
|
|
mysql_host: str
|
|
mysql_port: str
|
|
mysql_user: str
|
|
mysql_password: str
|
|
mysql_database: str
|
|
|
|
# ES配置
|
|
es_host: str
|
|
es_username: str
|
|
es_password: str
|
|
|
|
# ES配置
|
|
milvus_host: str
|
|
milvus_port: str
|
|
milvus_user: str
|
|
milvus_password: str
|
|
|
|
# Redis配置
|
|
redis_host: str
|
|
redis_port: str
|
|
redis_password: str
|
|
rag_cache_expire: int
|
|
|
|
# 其他配置
|
|
max_doc_length: int
|
|
faq_threshold: float
|
|
recall_threshold: float
|
|
|
|
# 日志配置
|
|
log_file: str = str(APP_DIR / 'logs' / 'app.log')
|
|
|
|
|
|
# 映射配置文件的配置
|
|
model_config = ConfigDict(
|
|
extra='allow',
|
|
env_file=str(APP_DIR / '.env'),
|
|
case_sensitive=False,
|
|
)
|
|
|
|
# @property
|
|
# def url(self):
|
|
# mysql_url = f"mysql+pymysql://{settings.mysql_user}:{self.mysql_password}@{self.mysql_host}:{self.mysql_port}/{self.mysql_database}"
|
|
# return mysql_url
|
|
|
|
|
|
settings = Settings()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print(APP_DIR)
|
|
print(settings.model_name)
|
|
print(settings.api_key)
|
|
print(settings.base_url)
|