LLM: 构建本地翻译工具

2 分钟阅读
237 字
Huxulm

详细介绍

llm 是一个由 Simon Willison 开发的强大的命令行工具,它旨在提供一个统一、简洁的接口,让开发者和普通用户能够在终端中与各种大型语言模型(LLM)进行交互。通过结合 llm 工具与本地运行的开源模型(如 Llama 3、Qwen、Mistral 等),我们可以轻松地在本地计算机上搭建一个高效、私密、完全离线的翻译系统。这种方法不仅避免了将敏感数据发送到第三方云服务,还能节省 API 调用费用,特别适合处理大量文档、代码或个人数据翻译的场景。 本文将深入探讨如何利用 llm 的灵活性和本地模型的强大能力,构建一个属于你自己的命令行翻译工具,从而将 AI 的强大能力无缝集成到你的日常工作流中。

主要特性

  • 多模型支持:llm 支持多种模型,包括 OpenAI 的 GPT 系列、Anthropic 的 Claude、Google 的 Gemini 等商业 API,以及通过 llm-ollama 等插件与本地运行的开源模型集成。
  • 统一的接口:llm 提供一致的命令行语法,方便使用不同的 API。
  • 管道集成:llm 可与 Unix/Linux 的管道命令(|)配合,将文件内容、命令输出作为模型的输入,提高自动化和脚本编写的灵活性。
  • 提示词管理:支持通过 -s 参数或配置文件管理和重用提示词,确保翻译输出质量。
  • 离线运行:结合 Ollama 等本地模型运行服务,实现离线翻译,确保数据隐私和安全。

使用场景

  • 文档翻译:快速翻译技术文档、项目说明或个人笔记。例如,通过 cat README.en.txt | llm -m qwen -s “翻译成中文” 得到翻译后的文件。
  • 代码注释翻译:翻译外国开源项目的代码注释,方便理解代码逻辑。
  • 批量翻译:编写 Shell 脚本,自动化处理文件夹内所有文件的翻译任务。
  • 数据脱敏处理:在翻译敏感数据之前,利用 LLM 进行数据脱敏或格式化。
  • 学习和研究:作为学习外语或研究不同语言表达的辅助工具,快速获取文本的译文。

技术特点

  • 插件化架构:llm 采用插件系统,通过安装 llm-ollama、llm-gemini 等插件,扩展其支持的模型。
  • Python 驱动:llm 是一个 Python 工具,易于安装和配置,方便与其他 Python 库和脚本集成.
  • 兼容性高:它通过 OpenAI 兼容的 API 端点连接本地模型服务(如 Ollama 或 vLLM),利用开源生态。
  • 轻量级:llm 专注于处理命令行参数、与模型 API 通信以及管理配置,性能负担小。
  • 数据安全:通过本地模型,所有处理都在机器上完成,数据无需通过网络传输,解决数据隐私泄露的风险。

实际案例:Qwen + LLM 构建本地翻译工具

前置需求:获取阿里云百炼 服务 API Key

  1. 模型配置

修改配置文件 ~/.config/io.datasette.llm/extra-openai-models.yaml:

- model_id: qwen-turbo-latest
  model_name: qwen-turbo-latest
  aliases: ["qwen"]
  api_base: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
  api_key_name: 'DASHSCOPE_API_KEY'

这里 DASHSCOPE_API_KEY 需要通过 llm keys set DASHSCOPE_API_KEY 创建。

  1. 调用

简单聊天:

$ llm -m qwen "你好"
你好!有什么我可以帮你的吗?

内容翻译:

$ llm -m qwen "翻译:Whta's llm?"
什么是LLM?

工具帮助内容翻译,这里以 llm 为例:

$ llm -h | llm -m qwen -s "你是一名cli文档翻译专家。帮我翻译cli文档内容,输出Markdown格式。"
使用方法:llm [选项] 命令 [参数]...

  从命令行访问大型语言模型

  文档:https://llm.datasette.io/

  LLM 可以运行来自多个不同提供商的模型。请查阅插件目录以获取可用模型列表:

  https://llm.datasette.io/en/stable/plugins/directory.html

  要开始使用 OpenAI,请从他们那里获取 API 密钥并执行以下操作:

      $ llm keys set openai
      输入密钥:...

  然后像这样执行一个提示:

      llm '给一只宠物鹈鹕起五个荒谬的名字'

  要查看完整的提示选项,请运行:

      llm prompt --help

选项:
  --version   显示版本信息并退出。
  -h, --help  显示此帮助信息并退出。

命令:
  prompt*       执行提示
  aliases       管理模型别名
  chat          与模型进行持续对话
  collections   查看和管理嵌入集合
  embed         对文本进行嵌入,并存储或返回结果
  embed-models  管理可用的嵌入模型
  embed-multi   一次性将多个字符串的嵌入存储到数据库中...
  fragments     管理存储在数据库中的片段
  install       将 PyPI 包安装到与 LLM 相同的环境中
  keys          管理不同模型的已存储 API 密钥
  logs          用于探索记录的提示和响应的工具
  models        管理可用模型
  openai        直接操作 OpenAI API 的命令
  plugins       列出已安装的插件
  schemas       管理存储的模式
  similar       使用余弦相似度从集合中返回前 N 个相似 ID
  templates     管理存储的提示模板
  tools         管理可提供给 LLM 的工具
  uninstall     从 LLM 环境中卸载 Python 包