feat(config): default to WebSocket and migrate saved HTTP settings
This commit is contained in:
1 parent
2a3f43fb60
commit
04022f2eaf
18 files changed
+244
-58
No files matched your search
@@ -19,6 +19,7 @@ from pathlib import Path
|
||||
from typing import Literal
|
||||
|
||||
from dotenv import load_dotenv
|
||||
from filelock import Timeout
|
||||
from pydantic import Field, SecretStr, model_validator
|
||||
from pydantic_settings import BaseSettings
|
||||
|
||||
@@ -32,6 +33,7 @@ from artemis.config.constants import (
|
||||
ENV_OPENAI_API_KEY,
|
||||
ENV_VISION_API_KEY,
|
||||
)
|
||||
from artemis.config.environment import migrate_transport_default
|
||||
from artemis.config.paths import (
|
||||
GLOBAL_APP_DIR,
|
||||
get_data_engine_db_path,
|
||||
@@ -43,13 +45,18 @@ from artemis.utils.logger import get_logger
|
||||
|
||||
# Installed wheels load .env from the user directory, outside site-packages.
|
||||
_canonical_env = get_env_file()
|
||||
logger = get_logger(__name__)
|
||||
try:
|
||||
if migrate_transport_default(_canonical_env):
|
||||
logger.info("已将全局模型传输协议迁移为 WebSocket;之后可在模型配置中切回 HTTP。")
|
||||
except (OSError, Timeout):
|
||||
os.environ["OPENAI_TRANSPORT"] = "websocket"
|
||||
logger.warning("无法保存 WebSocket 默认迁移;本次使用 WebSocket,下次启动重试。")
|
||||
load_dotenv(dotenv_path=_canonical_env, verbose=True)
|
||||
_global_env = GLOBAL_APP_DIR / ".env"
|
||||
if _global_env.exists() and _global_env.resolve() != _canonical_env.resolve():
|
||||
load_dotenv(dotenv_path=_global_env, verbose=True)
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
def is_placeholder_key(val: str | SecretStr | None) -> bool:
|
||||
"""Check if an API credential is empty or an unconfigured placeholder value."""
|
||||
@@ -110,7 +117,7 @@ class Settings(BaseSettings):
|
||||
OPENAI_BASE_URL: str | None = "https://api-n-cd.playones.com/v1"
|
||||
OPENAI_MODEL: str = Field(default=DEFAULT_MODEL, min_length=1)
|
||||
OPENAI_TIMEOUT_SECONDS: float = Field(default=300.0, gt=0)
|
||||
OPENAI_TRANSPORT: Literal["http", "websocket"] = "http"
|
||||
OPENAI_TRANSPORT: Literal["http", "websocket"] = "websocket"
|
||||
# Environment only; deliberately absent from the saved UI/task configuration.
|
||||
OPENAI_USE_SYSTEM_PROXY: bool = False
|
||||
OPENAI_MAX_RETRIES: int = Field(default=5, ge=0, le=10)
|
||||
|
||||
Reference in new issue
Block a user