0634fc4833
OSS_ENDPOINT 默认值中的域名拼写错误: - 错误:oss-cn-hangzhou.aliiyuncs.com(多了一个 i) - 正确:oss-cn-hangzhou.aliyuncs.com 同步修复: - apps/api/app/config.py - packages/shared/config.py - tests/unit/test_config_oss.py
68 lines
2.1 KiB
Python
Executable File
68 lines
2.1 KiB
Python
Executable File
"""Shared settings for API and Worker services."""
|
||
|
||
import os
|
||
from typing import Optional
|
||
|
||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||
|
||
|
||
class SharedSettings(BaseSettings):
|
||
"""Settings shared between API and Worker services."""
|
||
|
||
# Database
|
||
database_url: str = "postgresql+psycopg://postgres:postgres@localhost:5432/xiaoxia_saas"
|
||
database_pool_size: int = 20
|
||
database_max_overflow: int = 40
|
||
database_pool_timeout: int = 30
|
||
database_pool_recycle: int = 3600
|
||
|
||
# Redis
|
||
redis_url: str = "redis://localhost:6379/0"
|
||
|
||
# Celery
|
||
celery_broker_url: str = "redis://localhost:6379/0"
|
||
celery_result_backend: str = "redis://localhost:6379/1"
|
||
|
||
# OSS Aliyun
|
||
oss_endpoint: str = "oss-cn-hangzhou.aliyuncs.com"
|
||
oss_access_key_id: str = ""
|
||
oss_access_key_secret: str = ""
|
||
oss_bucket_name: str = "xiaoxia-autocut"
|
||
|
||
# CosyVoice (阿里云百炼语音合成)
|
||
cosyvoice_api_key: str = ""
|
||
cosyvoice_base_url: str = "https://dashscope.aliyuncs.com/api/v1"
|
||
cosyvoice_model: str = "cosyvoice-v3-flash"
|
||
cosyvoice_voice: str = "longxiaochun_v3" # 默认音色(v3 系列系统音色带 _v3 后缀)
|
||
cosyvoice_sample_rate: int = 22050
|
||
cosyvoice_format: str = "mp3" # 输出格式:mp3/wav/pcm
|
||
# 音色克隆模型名(固定为 voice-enrollment)
|
||
cosyvoice_clone_model: str = "voice-enrollment"
|
||
|
||
# Environment
|
||
environment: str = "development"
|
||
auto_create_schema: bool = False
|
||
|
||
model_config = SettingsConfigDict(
|
||
env_file=".env",
|
||
env_file_encoding="utf-8",
|
||
case_sensitive=False,
|
||
extra="ignore",
|
||
)
|
||
|
||
|
||
_settings: Optional[SharedSettings] = None
|
||
|
||
|
||
def get_shared_settings() -> SharedSettings:
|
||
"""Get shared settings instance (global singleton)."""
|
||
global _settings
|
||
if _settings is None:
|
||
env = os.getenv("APP_ENV", "development")
|
||
env_file = f".env.{env}" if env != "development" else ".env"
|
||
if os.path.exists(env_file):
|
||
_settings = SharedSettings(_env_file=env_file)
|
||
else:
|
||
_settings = SharedSettings()
|
||
return _settings
|