乐于分享
好东西不私藏

llm 0.30 发布,插件钩子新增 model_aliases 参数

llm 0.30 发布,插件钩子新增 model_aliases 参数

llm 0.30 版本更新了,这次主要面向插件开发者,给 register_models() 钩子加了个新参数。

  • register_models() 插件钩子 现在多了一个可选的 model_aliases 参数。
  • 这个参数会列出所有已经被其他插件注册过的模型、异步模型和别名。
  • @hookimpl(trylast=True) 的插件,可以拿这个列表来参考,避免冲突或者做更复杂的逻辑。

这次更新到底干了啥?

说白了,就是让插件之间能更好地“打招呼”了。以前,一个插件想注册模型,它可能不知道别的插件已经注册了啥。现在有了 model_aliases 这个参数,插件在注册自己的模型之前,就能先看看“场子”里都有谁了。

比如,你想写个插件,给所有模型都加个“快速版”的别名。以前你得自己硬编码或者用其他办法去查。现在,你只要在钩子实现里用上 @hookimpl(trylast=True),然后就能拿到 model_aliases 列表,对着列表里的每个模型名,生成一个对应的“-fast”别名就行,省心多了。

这个改动对应的是 issue #1389,算是给插件系统打了个小补丁,让生态更灵活。

文档也顺手优化了

除了插件钩子,这次更新还给所有公开的类和方法都加了 docstrings,并且直接把这些文档字符串整合进了官方文档里。

这意味着,你不管是看在线文档,还是直接在代码里用 IDE 的提示,都能更清楚地知道每个函数是干嘛的、参数怎么用。对开发者来说,查文档的体验会好一点。


llm 这个工具本身是个命令行接口,让你能在终端里直接调用各种大语言模型。这次 0.30 版本属于常规的功能迭代,没有动核心的模型调用功能,主要是完善插件生态和文档。

如果你在用 llm,并且自己写插件或者深度定制,可以关注一下这个 model_aliases 的新特性。如果只是普通用户,日常用起来应该感觉不到啥变化,文档变清晰了算是隐性福利。

留言聊聊
你在用 llm 命令行工具吗?主要用它来做什么,写脚本还是日常查询?有没有自己写过插件?

来源:Simon Willison Blog|原文:llm 0.30