LLM 是一个命令行工具和 Python 库,用于与大型语言模型交互,支持通过远程 API 调用模型,也支持在本机安装并运行模型。它可对接 OpenAI、Anthropic Claude、Google Gemini、Qwen、Gemma、Kimi、DeepSeek、Mistral 以及数十种其他大型语言模型。
用途
LLM 面向希望在命令行或 Python 程序中直接使用大语言模型的开发者与用户,覆盖远程 API 模型和本地运行模型两类场景。
主要能力
- 从命令行运行提示词。
- 将提示词与响应存储到 SQLite。
- 生成并存储嵌入(embeddings)。
- 从文本和图像中提取结构化内容。
- 授予模型执行工具(tools)的能力。
- 支持 JSON 输出、模式(schemas)、片段(fragments)、继续对话、补全提示等。
- 可通过 llm chat 启动交互式聊天。
- 支持模型别名、默认选项配置。
- 支持通过插件扩展:本地模型、远程 API、工具、片段与模板加载器、嵌入模型、额外命令等。
- 提供 Python API,支持基本提示执行、系统提示、附件、工具、模式、片段、模型选项、API 密钥传递、插件模型、访问底层 JSON、token 使用、流式响应、结构化消息与流式事件、异步模型、对话(含工具使用)、模型列表等。
- 支持将日志写入 SQLite,并可通过 Datasette 浏览日志、搜索、过滤(按 ID、模型、片段、工具)、备份数据库,以及查询消息存储。
使用方式
安装:使用 pip 或 Homebrew 或 pipx 或 uv。例如通过 pip 安装,或通过 Homebrew 安装(见警告说明)。也可使用 uvx 在不安装 LLM 的情况下运行。
运行提示词:可以针对任意兼容 OpenAI Chat Completions 的端点(如 LM Studio)运行提示词或开始聊天。使用 uvx 时无需先安装 LLM。若端点需要认证,添加 --key your-api-key。更多选项参见“Run against an endpoint without configuring it”。
若已有 OpenAI API 密钥,可直接运行。针对 Gemini 或 Anthropic,需使用对应插件。也可安装插件访问可在本地设备运行的模型,例如使用 Ollama。
启动交互式聊天:使用 llm chat。
插件安装:支持安装插件,列出已安装插件,使用插件子集运行。插件目录可包含本地模型、远程 API、工具、片段与模板加载器、嵌入模型、额外命令等。插件钩子包括 register_commands(cli)、register_models(register, model_aliases)、register_embedding_models(register)、register_tools(register)、register_template_loaders(register)、register_fragment_loaders(register)。
开发模型插件:包括初始结构、安装试用、构建 Markov 链、执行 Markov 链、加入插件、理解 execute()、提示词与响应记录到数据库、添加选项、分发插件(GitHub 仓库、发布到 PyPI、添加元数据)、故障处理。高级模型插件涉及惰性加载昂贵依赖、接受 API 密钥的模型、异步模型、不支持对话的模型、支持模式、支持工具、支持服务端工具、多模态模型附件、结构化消息与流式事件、使用 json_replacements 压缩日志负载、在 build_messages 中消费 prompt.messages、在后续请求中恢复不透明元数据、追踪 token 使用、追踪解析后的模型名称、LLM_RAISE_ERRORS。插件工具函数包括 llm.get_key()、llm.user_dir()、llm.ModelError、Response.fake()。
Python API:支持基本提示执行、系统提示、附件、工具、模式、片段、模型选项、传递 API 密钥、插件模型、访问底层 JSON、token 使用、流式响应、结构化消息与流式事件、异步模型(AsyncResponse,工具函数可同步或异步,异步模型的工具使用)、对话(含工具使用)、列出模型、响应完成后运行代码。其他函数包括 set_alias(alias, model_id)、remove_alias(alias)、set_default_model(alias)、get_default_model()、set_default_embedding_model(alias) 和 get_default_embedding_model()。
嵌入(Embeddings):命令行嵌入包括 llm embed、llm embed-multi、llm similar、llm embed-models、llm collections list、llm collections delete。也可从 Python 使用嵌入、处理集合、检索相似项、查看 SQL 模式、编写插件添加新嵌入模型(EmbeddingModel、嵌入二进制内容、嵌入存储格式)。
模板(Templates):支持 --save 入门、使用模板、列出可用模板、以 YAML 文件作为模板、系统提示、片段、选项、工具、模式、附加模板变量、指定默认参数、配置代码提取、为模板设置默认模型、来自插件的模板加载器。
片段(Fragments):在提示词中使用片段、在聊天中使用片段、浏览片段、为片段设置别名、在日志中查看片段、使用来自插件的片段、列出可用片段前缀。
模型别名:列出别名、添加新别名、删除别名、查看别名文件。
配置:设置自定义默认模型、设置自定义目录位置、开启或关闭 SQLite 日志记录。
日志到 SQLite:查看日志(-s/--short 模式)、对话日志、搜索日志、按特定 ID 之后过滤、按模型过滤、按使用特定片段的提示词过滤、按使用特定工具的提示词过滤、浏览使用模式收集的数据、使用 Datasette 浏览日志、备份数据库。消息存储涉及线程、轮次、消息与部分,有完整示例,内容寻址作为契约,分叉与共享历史,按引用存储,原始提供商负载,逐表说明,从 Python 记录日志,SQL 模式。
适用场景
- 在终端中快速调用大语言模型进行提示词实验。
- 需要将提示词、响应、嵌入持久化到 SQLite 并进行检索与分析的场景。
- 需要从文本或图像提取结构化数据的任务。
- 需要为模型提供工具调用能力的场景。
- 需要在本地运行模型(如通过 Ollama)或对接兼容 OpenAI 的本地端点(如 LM Studio)的场景。
- 需要通过插件扩展模型、工具、模板、片段、嵌入等能力的开发场景。
限制
资料未提供 LLM 自身的收费、价格或付费方案信息。具体支持哪些模型、插件与功能的完整列表,以及各功能的具体操作细节,需参考官方文档与发布说明。资料未提供平台兼容性、性能或效果方面的具体说明。