Files
workphone-sdk/sdk/app/config.py

73 lines
2.7 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.

"""
工作手机SDK v3.0 - 配置管理
"""
try:
from pydantic_settings import BaseSettings
except ImportError: # NAS / pydantic v1 降级
from pydantic import BaseSettings
from typing import Optional
class Settings(BaseSettings):
"""应用配置"""
# 环境
ENV: str = "development"
DEBUG: bool = True
# API密钥
API_KEY: str = "workphone-secret-key"
API_AUTH_ENABLED: bool = False
DEVICE_PAIRING_TOKEN: str = ""
# MongoDB
MONGO_URI: str = "mongodb://localhost:27017"
MONGO_DB: str = "workphone_sdk"
# Redis
REDIS_URL: str = "redis://localhost:6379/1"
# AI Agent
DEEPSEEK_API_KEY: Optional[str] = None
DEEPSEEK_BASE_URL: str = "https://api.deepseek.com/v1"
DEEPSEEK_MODEL: str = "deepseek-chat"
# WebSocket需求5s/10s 可配置)
WS_HEARTBEAT_INTERVAL: int = 10 # 秒,支持 5/10/30
WS_TIMEOUT: int = 120 # 秒;长任务(微信登录/u2期间配合 command_grace 防误踢
# 设备命令
COMMAND_TIMEOUT: int = 30 # 秒,通用指令等待
MESSAGE_SEND_TIMEOUT: int = 60 # 秒,发消息专用(可配置,避免无限挂起)
WECHAT_BACKEND_ONLY: bool = True # 微信动作仅允许后端 Hook不允许 UI 通道回退
WECHAT_WS_HOOK_ONLY: bool = True # 微信仅 WebSocket Agent + Frida禁止服务端 ADB 直连/ u2 降级
WORKPHONE_WS_FIRST: bool = True # 无线主控execute/probe 优先 WS Agent主机 ADB 仅运维/兜底
WORKPHONE_HOST_ADB_PROBE: bool = False # hook/probe 是否允许主机 adb+frida 探测(默认关,纯 WS
# 宝塔侧 Frida 反向隧道。手机仅负责维持隧道,微信 RPC 在 SDK 容器内执行。
SERVER_FRIDA_ENABLED: bool = False
SERVER_FRIDA_HOST: str = "172.18.0.1"
SERVER_FRIDA_PORT: int = 14538
SERVER_FRIDA_DEVICE_ID: str = "" # 留空表示接受任意在线设备;生产建议填写真机 ID
# AI 心跳任务队列0 表示无上限(每周期抽空队列 / 队列不截断)
AI_HEARTBEAT_TASK_BATCH: int = 0
AI_HEARTBEAT_QUEUE_MAXLEN: int = 0
# 设备连接方案 · 可切换驱动层Connection Provider
CONNECTION_ACTIVE_PROVIDER: str = "jiqing" # 全局默认方案jiqing/aochuang/legacy/custom_*
# 奥创工作手机007 私域HTTP 驱动
AOCHUANG_BASE_URL: Optional[str] = None # 如 https://007.siyuguanli.com/api
AOCHUANG_TOKEN: Optional[str] = None
# 现有连接形式S2/旧接口/自建工作手机)
LEGACY_PROVIDER_BASE_URL: Optional[str] = None
LEGACY_PROVIDER_TOKEN: Optional[str] = None
class Config:
env_file = ".env"
extra = "ignore"
settings = Settings()