This commit is contained in:
Daniel
2026-04-28 11:50:55 +08:00
parent 1bbabc2a78
commit 2724e69b4f
20 changed files with 3881 additions and 554 deletions

View File

@@ -5,7 +5,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
app_name: str = "X2WeChat Studio"
app_name: str = "AI发糕"
openai_api_key: str | None = Field(default=None, alias="OPENAI_API_KEY")
openai_base_url: str | None = Field(default=None, alias="OPENAI_BASE_URL")
openai_model: str = Field(default="gpt-4.1-mini", alias="OPENAI_MODEL")
@@ -24,6 +24,11 @@ class Settings(BaseSettings):
alias="OPENAI_MAX_OUTPUT_TOKENS",
description="单次模型输出 token 上限;通义等长文 JSON 需足够大",
)
openai_image_model: str = Field(
default="gpt-image-1",
alias="OPENAI_IMAGE_MODEL",
description="用于海报生成的图像模型",
)
openai_source_max_chars: int = Field(default=5000, alias="OPENAI_SOURCE_MAX_CHARS")
ai_soft_accept: bool = Field(
default=True,
@@ -44,6 +49,21 @@ class Settings(BaseSettings):
alias="WECHAT_THUMB_IMAGE_PATH",
description="本地封面图路径(容器内),将自动上传为永久素材;不配则使用内置灰底图上传",
)
poster_image_size: str = Field(
default="1024x1536",
alias="POSTER_IMAGE_SIZE",
description="AI 海报生成尺寸OpenAI images.generate size",
)
poster_max_images: int = Field(
default=6,
alias="POSTER_MAX_IMAGES",
description="单次自动生成海报上限(首段跳过后生效)",
)
poster_upload_max_bytes: int = Field(
default=950000,
alias="POSTER_UPLOAD_MAX_BYTES",
description="上传微信 uploadimg 前压缩目标字节数,预留余量避免超 1MB 限制",
)
im_webhook_url: str | None = Field(default=None, alias="IM_WEBHOOK_URL")
im_secret: str | None = Field(default=None, alias="IM_SECRET")