Files
modalDeploy/src/BowongModalFunctions/config/settings.py

124 lines
4.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding:utf-8 -*-
"""
File settings.py
Author silence
Date 2025/6/30 18:05
"""
from pydantic import Field
from pydantic_settings import BaseSettings
# 获取项目根目录(src/config/settings.py -> src/config -> src -> 项目根目录)
ENV_FILE = "/root/.env"
class AzureOpenAISettings(BaseSettings):
model: str = Field(default="gpt-4o", description="Azure OpenAI 模型名称")
endpoint: str = Field(description="Azure OpenAI 端点")
deployment: str = Field(default="gpt-4o", description="Azure OpenAI 部署名称")
api_version: str = Field(default="2024-02-15-preview", description="API 版本")
api_key: str = Field(description="Azure OpenAI API 密钥")
temperature: float = Field(default=0.7, description="生成温度")
max_tokens: int = Field(default=1000, description="最大令牌数")
class Config:
env_prefix = "AZURE_OPENAI_"
env_file = str(ENV_FILE)
extra = "ignore"
class DatabaseSettings(BaseSettings):
url: str = Field(default="", description="数据库连接URL")
host: str = Field(default="localhost", description="数据库主机")
port: int = Field(default=3306, description="数据库端口")
username: str = Field(default="root", description="数据库用户名")
password: str = Field(default="password", description="数据库密码")
database: str = Field(default="text2video", description="数据库名称")
class Config:
env_prefix = "DATABASE_"
env_file = str(ENV_FILE)
extra = "ignore"
@property
def database_url(self) -> str:
"""构建数据库连接URL"""
if self.url:
return self.url
return f"mysql+pymysql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}"
class COSSettings(BaseSettings):
bucket_name: str = Field(default="your-bucket-name", description="COS 存储桶名称")
secret_id: str = Field(default="your_secret_id", description="COS 密钥ID")
secret_key: str = Field(default="your_secret_key", description="COS 密钥")
region: str = Field(default="ap-shanghai", description="COS 区域")
class Config:
env_prefix = "COS_"
env_file = str(ENV_FILE)
extra = "ignore"
class LangfuseSettings(BaseSettings):
host: str = Field(default="https://cloud.langfuse.com", description="Langfuse 主机地址")
secret_key: str = Field(default="your_langfuse_secret_key", description="Langfuse 密钥")
public_key: str = Field(default="your_langfuse_public_key", description="Langfuse 公钥")
class Config:
env_prefix = "LANGFUSE_"
env_file = str(ENV_FILE)
extra = "ignore"
class MidjourneySettings(BaseSettings):
api_key: str = Field(default="your_midjourney_api_key", description="Midjourney API 密钥")
mode: str = Field(default="turbo", description="Midjourney 模式")
imagine_endpoint: str = Field(default="https://api.ttapi.io/midjourney/v1/imagine", description="Midjourney 生成端点")
fetch_endpoint: str = Field(default="https://api.ttapi.io/midjourney/v1/fetch", description="Midjourney 获取端点")
describe_endpoint: str = Field(default="https://api.ttapi.io/midjourney/v1/describe", description="Midjourney 描述端点")
class Config:
env_prefix = "MIDJOURNEY_"
env_file = str(ENV_FILE)
extra = "ignore"
@property
def base_url(self) -> str:
"""获取基础URL(用于兼容性)"""
return "https://api.ttapi.io/midjourney/v1"
class JimengSettings(BaseSettings):
api_key: str = Field(default="your_jimeng_api_key", description="极梦 API 密钥")
base_url: str = Field(default="https://ark.cn-beijing.volces.com/api/v3/contents/generations", description="极梦 API 基础URL")
class Config:
env_prefix = "JIMENG_"
env_file = str(ENV_FILE)
extra = "ignore"
class AWSSettings(BaseSettings):
access_key_id: str = Field(default="", description="AWS 访问密钥")
secret_access_key: str = Field(default="", description="AWS 密钥")
region: str = Field(default="ap-northeast-2", description="AWS 区域")
bucket_name: str = Field(default="", description="AWS 存储桶名称")
cnd_endpoint: str = Field(default="https://cdn.roasmax.cn", description="AWS 端点URL")
class Config:
env_prefix = "AWS_"
env_file = str(ENV_FILE)
extra = "ignore"
class MiniMaxSettings(BaseSettings):
api_key: str = Field(default="", description="MiniMax 访问密钥")
class Config:
env_prefix = "MINIMAX_"
env_file = str(ENV_FILE)
extra = "ignore"
midjourney_settings = MidjourneySettings()
cos_settings = COSSettings()
langfuse_settings = LangfuseSettings()
aws_settings = AWSSettings()
minimax_settings = MiniMaxSettings()