LLM 命令行工具新玩法:在 shebang 行直接调用 AI 模型生成内容
Simon Willison 展示了如何用 LLM 工具在脚本 shebang 行调用 AI 模型,实现文本生成、工具调用甚至自定义 Python 函数。本文详解三种用法,并分析对中文开发者的实用价值与替代方案。
一句话看懂
Simon Willison 演示了在脚本 shebang 行直接使用 LLM 工具调用 AI 模型,支持文本生成、工具调用和自定义 Python 函数,让脚本瞬间拥有 AI 能力。
详细发生了什么
Simon Willison 受到 Hacker News 上 Kim_Bruning 的启发,探索了在脚本 shebang 行中使用 LLM 工具的模式。LLM 是一个命令行工具,可以通过 shebang 行直接调用。最简单的用法是利用 LLM fragments 功能:在脚本第一行写上 #!/usr/bin/env -S llm -f,然后直接写自然语言指令,比如 “Generate an SVG of a pelican riding a bicycle”,执行脚本就会输出 AI 生成的 SVG 代码。
更高级的用法包括集成 tool calls:使用 -T name_of_tool 选项可以调用预定义的工具,例如 -T llm_time 让模型获取当前时间。还可以通过 -t 选项执行 YAML 模板,在模板中直接定义 Python 函数作为工具。例如,定义一个 add 和 multiply 函数,然后执行 ./calc.sh 'what is 2344 * 5252 + 134' --td,模型会自动调用这些函数进行计算并返回结果。
中文圈视角
这个技巧对中文开发者来说非常实用,尤其是那些习惯用 shell 脚本处理日常任务的用户。通过 shebang 行直接调用 LLM,可以快速实现文本生成、数据转换、计算等任务,无需编写复杂的 Python 或 Node.js 脚本。
不过,LLM 工具默认调用的是 OpenAI 的模型,国内用户需要配置 API key 并确保网络可访问。对于无法直接访问 OpenAI 的用户,可以考虑使用国产替代方案,比如将 LLM 配置为调用国产模型的 API(如 DeepSeek、智谱 GLM 等),或者使用类似的命令行工具如 aichat(支持多种模型)。
另外,这个技巧在中文场景下的应用潜力很大:比如用 shebang 脚本自动生成中文文案、翻译、摘要,或者结合工具调用实现中文计算器、日期处理等。但需要注意,YAML 模板中定义 Python 函数时,函数名和注释建议用英文,避免编码问题。
几条值得记住的细节
- 最简单的用法:
#!/usr/bin/env -S llm -f后直接写自然语言指令,如生成 SVG。 - 集成 tool calls:用
-T选项调用预定义工具,例如-T llm_time获取当前时间。 - YAML 模板支持自定义 Python 函数:在
functions字段中定义函数,模型会自动调用。 - 调试模式:添加
--td参数可以查看 tool call 的详细调用过程和结果。 - 需要安装 LLM 工具:
pip install llm,并配置 API key。
一句话总结
在脚本 shebang 行调用 AI 模型,让任何文本文件都能变成智能脚本,大幅简化日常任务自动化。