From c9a85759fb4e8f6dad4ddc6ca0100ff84ed0bdf0 Mon Sep 17 00:00:00 2001 From: Passthem Date: Wed, 8 Apr 2026 14:11:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A9=20.env=20=E6=96=87=E4=BB=B6=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=9C=A8=E7=B3=BB=E7=BB=9F=20config=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E5=86=85=E7=9B=9B=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 +++++++++++++++++++++++++- scripts/common.py | 24 +++++++++++++++++++----- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cad0f2c..1b3537a 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,33 @@ ### 2. 配置 +API 配置从以下位置按优先级读取: +1. `scripts/.env` (本地) +2. `~/.config/phomework/.env` (全局) + +**方式一:全局配置(推荐)** +```bash +mkdir -p ~/.config/phomework +cp scripts/.env.example ~/.config/phomework/.env +# 编辑 ~/.config/phomework/.env +``` + +**方式二:本地配置** ```bash cp scripts/.env.example scripts/.env -# 编辑 .env,填入 API 配置 +# 编辑 scripts/.env +``` + +`.env` 文件内容: +```bash +# API 端点(OpenAI 兼容) +IMG2TYP_API_ENDPOINT=https://api.openai.com/v1/chat/completions + +# API 密钥 +IMG2TYP_API_KEY=your-api-key-here + +# 模型名称(默认 qwen-vl-plus) +IMG2TYP_MODEL=qwen-vl-plus ``` ### 3. 运行 diff --git a/scripts/common.py b/scripts/common.py index e8fe966..78109e0 100644 --- a/scripts/common.py +++ b/scripts/common.py @@ -15,7 +15,9 @@ console = Console( SCRIPT_DIR = Path(__file__).parent DATA_DIR = SCRIPT_DIR.parent / "data" -ENV_FILE = SCRIPT_DIR / ".env" +GLOBAL_ENV_DIR = Path.home() / ".config" / "phomework" +GLOBAL_ENV_FILE = GLOBAL_ENV_DIR / ".env" +LOCAL_ENV_FILE = SCRIPT_DIR / ".env" def setup_logging(name: str, verbose: bool) -> logging.Logger: @@ -31,11 +33,23 @@ def setup_logging(name: str, verbose: bool) -> logging.Logger: def load_env() -> dict[str, str]: - """Load environment variables from .env file.""" - if ENV_FILE.exists(): - load_dotenv(ENV_FILE) + """Load environment variables from .env file. + + Priority: scripts/.env > ~/.config/phomework/.env + """ + env_loaded = False + + if LOCAL_ENV_FILE.exists(): + load_dotenv(LOCAL_ENV_FILE) + env_loaded = True + elif GLOBAL_ENV_FILE.exists(): + load_dotenv(GLOBAL_ENV_FILE) + env_loaded = True + console.print(f"[dim]Using config from {GLOBAL_ENV_FILE}[/dim]") else: - console.print(f"[yellow]Warning: .env file not found at {ENV_FILE}[/yellow]") + console.print( + f"[yellow]Warning: .env not found at {LOCAL_ENV_FILE} or {GLOBAL_ENV_FILE}[/yellow]" + ) api_endpoint = os.environ.get("IMG2TYP_API_ENDPOINT", "") api_key = os.environ.get("IMG2TYP_API_KEY", "")