ai-renamer
一个 Node.js 的 CLI 工具,使用 Ollama 和 LM Studio 模型(Llava、Gemma、Llama 等)通过文件内容智能地重命名文件
预览
重命名视频
https://github.com/user-attachments/assets/502aedba-044e-4ed5-a1c7-bca84af2f3ce
重命名图片
https://github.com/ozgrozer/ai-renamer/assets/651938/0d229179-8385-4f17-a9fb-44d40c79d1e9
重命名文件
https://github.com/user-attachments/assets/f8b37c3a-9cc0-48fc-aaea-f25f7b6ee4cc
使用方法
你需要在系统中安装 Ollama 或 LM Studio 以及至少一个 LLM(Llava、Gemma、Llama 等)。你需要安装 ffmpeg 来重命名视频文件。
使用 NPX 运行
npx ai-renamer /path
使用 NPM 运行
# 全局安装
npm install -g ai-renamer
# 运行
ai-renamer /path
Ollama 使用方法
Ollama 是默认的提供者,因此你不需要做任何额外设置。你只需运行 npx ai-renamer /images
。在第一次启动时,它将尝试自动选择 Llava 模型,但如果未能自动选择,你可以指定模型。
npx ai-renamer /path --provider=ollama --model=llava:13b
LM Studio 使用方法
你需要将提供者设置为 lm-studio
,它将自动选择 LM Studio 中加载的模型。
npx ai-renamer /path --provider=lm-studio
OpenAI 使用方法
你需要将提供者设置为 openai
,并通过 API key 设置你的 API 密钥,它将自动选择 gpt-4o 模型。不过你也可以使用 --model
参数指定任何模型。
npx ai-renamer /path --provider=openai --api-key=OPENAI_API_KEY
自定义端口
如果你在 Ollama 或 LM Studio 中使用了不同的端口,可以简单地指定基础 URL。
npx ai-renamer /path --provider=ollama --base-url=http://127.0.0.1:11434
npx ai-renamer /path --provider=lm-studio --base-url=http://127.0.0.1:1234
参数
使用这些标志的值将会保存在你的磁盘上。你可以在 ~/ai-renamer.json
找到配置文件。如果你使用的是 Mac,文件路径是 /Users/your-user-name/ai-renamer.json
。此外,当你设置了某个标志后,不需要再次使用该标志。脚本会从配置文件中获取值。
npx ai-renamer --help
Options:
-h, --help 显示帮助信息 [boolean]
--version 显示版本号 [boolean]
-p, --provider 设置提供者 (例如 ollama, openai,
lm-studio) [string]
-a, --api-key 设置 API 密钥(如果你使用 openai 作为
提供者) [string]
-u, --base-url 设置 API 基础 URL (例如:
http://127.0.0.1:11434 用于 ollama) [string]
-m, --model 设置使用的模型 (例如 gemma2, llama3,
gpt-4o) [string]
-f, --frames 设置从视频中提取的最大帧数 (例如 3, 5, 10)
[number]
-c, --case 设置命名风格 (例如 camelCase, pascalCase,
snakeCase, kebabCase) [string]
-x, --chars 设置新文件名的最大字符数 (例如 25) [number]
-l, --language 设置输出语言 (例如 English, Turkish) [string]
-s, --include-subdirectories 处理时包括子目录中的文件
(例如: true, false) [string]
-r, --custom-prompt 为 LLM 添加自定义提示 (例如 "仅描述背景")
[string]
ai-renamer
使用 change-case
库来进行命名风格转换
# 值: 结果
camelCase: twoWords
capitalCase: Two Words
constantCase: TWO_WORDS
dotCase: two.words
kebabCase: two-words
noCase: two words
pascalCase: TwoWords
pascalSnakeCase: Two_Words
pathCase: two/words
sentenceCase: Two words
snakeCase: two_words
trainCase: Two-Words
贡献
欢迎贡献。你可以新建一个 issue,或者提交一个 pull request。