Files
linshen 31b807ba0b feat: 重构核心服务以支持Electron环境,并增强历史管理器功能
- 核心服务:
    - 移除单例导出,引入工厂函数模式以提升灵活性和可测试性。
    - 显式接收依赖并处理重构中的依赖问题,更新文档以反映新的服务创建方式和依赖注入策略。
    - 添加相应的代理和管理器工厂函数,优化服务初始化逻辑,确保在Electron环境下的配置同步。
- 历史管理器:引入 `IModelManager` 支持模型管理,修改构造函数并恢复模型名称获取逻辑。
- 构建配置:
    - 更新 `.gitignore` 文件,添加桌面应用相关构建和分发文件的忽略规则。
    - 在 `package.json` 中新增桌面应用构建和开发命令。
    - 更新 `pnpm-lock.yaml` 以包含新依赖。
- 重构计划文档:移除循环依赖描述,增加重构反思与后续决策,优化 `ensureInitialized()` 调用,修正错误处理行为并提升测试代码严谨性。
2025-06-28 11:21:33 +08:00

2.7 KiB
Raw Permalink Blame History

桌面应用环境变量配置指南

环境变量加载顺序

桌面应用会按以下顺序加载环境变量:

  1. 项目根目录的 .env.local (推荐) - 与测试环境保持一致
  2. 桌面应用目录的 .env - 桌面应用专用配置
  3. 系统环境变量 - 手动设置的环境变量

推荐配置方法

方法1:使用项目根目录的 .env.local(推荐)

在项目根目录 prompt-optimizer/.env.local 文件中添加:

# OpenAI
VITE_OPENAI_API_KEY=your_openai_key_here

# Google Gemini
VITE_GEMINI_API_KEY=your_gemini_key_here

# DeepSeek
VITE_DEEPSEEK_API_KEY=your_deepseek_key_here

# SiliconFlow
VITE_SILICONFLOW_API_KEY=your_siliconflow_key_here

# Zhipu AI
VITE_ZHIPU_API_KEY=your_zhipu_key_here

# 自定义API
VITE_CUSTOM_API_KEY=your_custom_key_here
VITE_CUSTOM_API_BASE_URL=your_custom_base_url
VITE_CUSTOM_API_MODEL=your_custom_model

优点:

  • 与Web版本和测试环境共享同一配置
  • 只需维护一个配置文件
  • 自动被.gitignore排除,不会泄露密钥

方法2:桌面应用专用配置

在 packages/desktop/.env 文件中添加相同的环境变量。

优点:

  • 桌面应用独立配置
  • 可以与Web版本使用不同的API密钥

方法3:系统环境变量

Windows用户:

set VITE_OPENAI_API_KEY=your_openai_key_here
set VITE_GEMINI_API_KEY=your_gemini_key_here
npm start

macOS/Linux用户:

export VITE_OPENAI_API_KEY=your_openai_key_here
export VITE_GEMINI_API_KEY=your_gemini_key_here
npm start

验证配置

启动桌面应用时,主进程控制台会显示:

[Main Process] .env.local file loaded from project root
[Main Process] .env file loaded from desktop directory
[Main Process] Checking environment variables...
[Main Process] Found VITE_OPENAI_API_KEY: sk-1234567...
[Main Process] Found VITE_GEMINI_API_KEY: AIzaSyA...

如果看到 Missing VITE_XXX_API_KEY,说明对应的环境变量未设置。

常见问题

Q: 我的.env.local文件有效吗?

A: 有效! 桌面应用现在会自动加载项目根目录的.env.local文件。

Q: 为什么UI显示有API密钥,但测试连接失败?

A: 这是因为UI进程和主进程环境隔离。确保:

  1. 环境变量正确设置在.env.local文件中
  2. 重启桌面应用以重新加载环境变量
  3. 检查主进程控制台确认环境变量被正确读取

Q: 可以同时使用多种配置方法吗?

A: 可以。dotenv会按加载顺序合并配置,后加载的不会覆盖已存在的变量。

安全提醒

  • 永远不要将包含API密钥的文件提交到Git仓库
  • .env.local已在.gitignore中排除
  • 如果使用.env文件,请手动添加到.gitignore