# ai-filename-vscode **Repository Path**: wscfan/ai-filename-vscode ## Basic Information - **Project Name**: ai-filename-vscode - **Description**: 输入中文/任意名称,用 AI 生成符合编程约定的英文目录名 / 文件名。OpenAI 兼容接口,默认使用硅基流动 GLM-4.5-Air。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Filename — VSCode 扩展 输入中文(或任意)名称,用 AI 生成符合编程约定的英文目录名 / 文件名,并**直接在 VSCode 资源管理器中创建**。 这是 `ai-filename` Python CLI 工具的 VSCode 扩展版本,命名逻辑、AI 提示词与请求格式与 CLI 版完全一致。默认使用 [硅基流动 SiliconFlow](https://siliconflow.cn) 的 `zai-org/GLM-4.5-Air` 模型。 ## 特性 - 🌐 **中文 → 英文命名**:输入「用户登录」,得到 `user-login`、`user-signin` 等候选 - 🔌 **OpenAI 兼容**:一个 `baseUrl` 切换任意模型服务(OpenAI / DeepSeek / Kimi / 智谱 / 本地 Ollama 等) - 🎨 **多种命名风格**:`kebab-case` / `snake_case` / `camelCase` / `PascalCase` / `CONSTANT_CASE` / `space` - 🗳️ **多候选选择**:一次生成多个候选,QuickPick 交互挑选,可自定义 / 重新生成 - 📁 **一步到位**:生成名后直接在工作区创建目录或文件 - 🔒 **安全存储**:API Key 存入 VSCode SecretStorage,不明文落在 settings.json ## 快速开始 ### 1. 安装依赖 & 构建 ```bash cd ai-filename-vscode npm install npm run build ``` ### 2. 在 VSCode 中调试运行 用 VSCode 打开本目录,按 `F5` 启动「扩展开发宿主」。在开发宿主窗口里即可使用全部命令。 ### 3. 配置 API Key 按 `Cmd/Ctrl + Shift + P` → 输入 **`AI Filename: Set API Key`**: 1. 选择服务商(默认第 1 项硅基流动,回车即可) 2. 粘贴 API Key 服务商预设会自动填好 `baseUrl` 与 `model`。 ### 4. 使用 - **命令面板**:`AI Filename: Generate File Name` / `Generate Folder Name` - **资源管理器右键菜单**:在文件树空白处或某文件夹上右键 → 「AI Filename: Generate File Name / Generate Folder Name」,基于右键位置创建 交互流程: ``` 输入中文/原始名称: 用户登录 正在生成文件名 (模型: zai-org/GLM-4.5-Air) ... user-login 候选 1 user-signin 候选 2 account-login 候选 3 ✏️ 自定义名称… 🔄 重新生成 ✓ 已创建文件:user-login.ts ``` ## 命令 | 命令 | 说明 | |------|------| | `AI Filename: Generate File Name` | 生成英文名并创建文件 | | `AI Filename: Generate Folder Name` | 生成英文名并创建目录 | | `AI Filename: Set API Key` | 选服务商并写入 API Key(存 SecretStorage) | | `AI Filename: Show Config` | 查看当前配置(API Key 自动打码) | ## 配置项 在 `settings.json` 中(命名空间 `aiFilename`): | 配置项 | 默认值 | 说明 | |--------|--------|------| | `aiFilename.baseUrl` | `https://api.siliconflow.cn/v1` | OpenAI 兼容接口 base URL | | `aiFilename.model` | `zai-org/GLM-4.5-Air` | 模型名 | | `aiFilename.style` | `kebab` | 命名风格:`kebab`/`snake`/`camel`/`pascal`/`constant`/`space` | | `aiFilename.language` | `英文` | 生成名称使用的语言 | | `aiFilename.candidates` | `3` | 候选数量(1-10) | | `aiFilename.temperature` | `0.4` | 采样温度(0-2) | | `aiFilename.maxTokens` | `256` | 单次请求最大 token 数 | | `aiFilename.timeout` | `60` | 请求超时(秒) | | `aiFilename.defaultExt` | `""` | 生成文件名时的默认扩展名(不带点,如 `ts`) | | `aiFilename.openAfterCreate` | `true` | 创建文件后是否自动打开 | 环境变量 **`AIFN_API_KEY`** 会覆盖 SecretStorage 中的 key,适合 CI / 容器场景。 ### 常见服务商 base_url | 服务商 | base_url | 示例 model | |--------|----------|-----------| | **硅基流动** (默认) | `https://api.siliconflow.cn/v1` | `zai-org/GLM-4.5-Air` | | OpenAI | `https://api.openai.com/v1` | `gpt-4o-mini` | | DeepSeek | `https://api.deepseek.cn/v1` | `deepseek-chat` | | Kimi | `https://api.moonshot.cn/v1` | `moonshot-v1-8k` | | 智谱 GLM | `https://open.bigmodel.cn/api/paas/v4` | `glm-4-flash` | | 本地 Ollama | `http://localhost:11434/v1` | `qwen2.5:7b` | > Ollama 的 key 任意非空字符串即可。 ## 本地 Ollama 示例 ```bash ollama pull qwen2.5:7b ollama serve # 默认监听 11434 ``` 执行 `AI Filename: Set API Key` → 选「本地 Ollama」→ key 随便填,即可全离线生成命名。 ## 项目结构 ``` ai-filename-vscode/ ├── src/ │ ├── extension.ts # activate/deactivate,注册命令 │ ├── ai.ts # OpenAI 兼容客户端 + 提示词 │ ├── commands.ts # 命令实现 + QuickPick 交互 + 文件/目录创建 │ ├── config.ts # 配置读写(workspace config + SecretStorage) │ └── naming.ts # 命名规范化(拆词、风格化、清洗) ├── package.json # 扩展清单:命令/配置/右键菜单 ├── tsconfig.json └── esbuild 配置见 package.json scripts ``` ## 开发 ```bash npm install npm run build # 单次构建 npm run watch # 监听重建 npm run typecheck # 仅类型检查 ``` 按 `F5` 在「扩展开发宿主」中调试。 ## 许可证 MIT