OpenAI 模型#
LLM 内置了一个用于与 OpenAI API 交互的默认插件。OpenAI 提供语言模型和嵌入模型,LLM 可以访问这两种类型。
配置#
所有 OpenAI 模型都使用 API 密钥进行访问。你可以从 OpenAI 网站上的 API 密钥页面获取一个。
创建密钥后,运行以下命令配置 LLM 以使用它
llm keys set openai
然后粘贴 API 密钥。
OpenAI 语言模型#
运行 llm models
命令查看所有可用模型的完整列表。LLM 支持的 OpenAI 模型有
OpenAI Chat: gpt-4o (aliases: 4o)
OpenAI Chat: chatgpt-4o-latest (aliases: chatgpt-4o)
OpenAI Chat: gpt-4o-mini (aliases: 4o-mini)
OpenAI Chat: gpt-4o-audio-preview
OpenAI Chat: gpt-4o-audio-preview-2024-12-17
OpenAI Chat: gpt-4o-audio-preview-2024-10-01
OpenAI Chat: gpt-4o-mini-audio-preview
OpenAI Chat: gpt-4o-mini-audio-preview-2024-12-17
OpenAI Chat: gpt-4.1 (aliases: 4.1)
OpenAI Chat: gpt-4.1-mini (aliases: 4.1-mini)
OpenAI Chat: gpt-4.1-nano (aliases: 4.1-nano)
OpenAI Chat: gpt-3.5-turbo (aliases: 3.5, chatgpt)
OpenAI Chat: gpt-3.5-turbo-16k (aliases: chatgpt-16k, 3.5-16k)
OpenAI Chat: gpt-4 (aliases: 4, gpt4)
OpenAI Chat: gpt-4-32k (aliases: 4-32k)
OpenAI Chat: gpt-4-1106-preview
OpenAI Chat: gpt-4-0125-preview
OpenAI Chat: gpt-4-turbo-2024-04-09
OpenAI Chat: gpt-4-turbo (aliases: gpt-4-turbo-preview, 4-turbo, 4t)
OpenAI Chat: gpt-4.5-preview-2025-02-27
OpenAI Chat: gpt-4.5-preview (aliases: gpt-4.5)
OpenAI Chat: o1
OpenAI Chat: o1-2024-12-17
OpenAI Chat: o1-preview
OpenAI Chat: o1-mini
OpenAI Chat: o3-mini
OpenAI Chat: o3
OpenAI Chat: o4-mini
OpenAI Completion: gpt-3.5-turbo-instruct (aliases: 3.5-instruct, chatgpt-instruct)
有关每个模型的详细信息,请参阅 OpenAI 模型文档。
gpt-4o-mini
(别名为 4o-mini
)是成本最低的模型,如果你不指定模型,它就是默认模型。有关其他模型的详细信息,请查阅 OpenAI 的模型文档。
o1-pro 模型无法通过 LLM 默认的 OpenAI 插件使用的聊天补全 API 访问。你可以安装新的 llm-openai-plugin 插件来访问该模型。
模型特性#
以下特性适用于 OpenAI 模型
OpenAI 嵌入模型#
运行 llm embed-models
命令查看 嵌入模型的列表。LLM 支持以下 OpenAI 嵌入模型
ada-002 (aliases: ada, oai)
3-small
3-large
3-small-512
3-large-256
3-large-1024
目前 3-small
模型是最经济实惠的。3-large
成本更高但能力更强 - 有关详细信息和基准,请参阅 OpenAI 博客上的 新嵌入模型和 API 更新。
任何嵌入模型的一个重要特性是它返回的向量大小。较小的向量存储和查询成本较低,但可能不够准确。
OpenAI 的 3-small
和 3-large
向量可以安全地截断到较低维度,而不会损失太多准确性。LLM 提供的 -int
模型已预配置执行此操作,因此 3-large-256
是截断到 256 维度的 3-large
模型。
支持的 OpenAI 嵌入模型的向量大小如下
模型 |
大小 |
---|---|
ada-002 |
1536 |
3-small |
1536 |
3-large |
3072 |
3-small-512 |
512 |
3-large-256 |
256 |
3-large-1024 |
1024 |
OpenAI 补全模型#
The gpt-3.5-turbo-instruct
模型略有不同 - 它是一个补全模型而非聊天模型,详情见 OpenAI 补全文档。
补全模型可以使用 -o logprobs 3
选项调用(聊天模型不支持),这将使 LLM 在 SQLite 数据库中为每个返回的 token 存储 3 个对数概率。有关如何读取这些值的详细信息,请查阅 此 issue。
添加更多 OpenAI 模型#
OpenAI 会不定期发布新模型。LLM 旨在发布新版本来支持这些模型,但你也可以通过将它们添加到 extra-openai-models.yaml
配置文件中来直接配置它们。
运行此命令查找应该创建此文件的目录
dirname "$(llm logs path)"
在我的 Mac 笔记本电脑上,我得到如下输出
~/Library/Application Support/io.datasette.llm
在该目录下创建一个名为 extra-openai-models.yaml
的文件。
假设 OpenAI 刚刚发布了 gpt-3.5-turbo-0613
模型,而 LLM 尚未发布支持,你仍然想使用它。你可以通过将以下内容添加到文件中来配置它
- model_id: gpt-3.5-turbo-0613
model_name: gpt-3.5-turbo-0613
aliases: ["0613"]
model_id
是将记录在 LLM 日志中的标识符。你可以使用它来指定模型,或者选择性地包含该模型的别名列表。model_name
是将传递给 API 的实际模型标识符,它必须与 API 期望的完全匹配。
如果模型是补全模型(例如 gpt-3.5-turbo-instruct
),则在配置中添加 completion: true
。
如果模型支持使用 json_schema 进行结构化提取,则在配置中添加 supports_schema: true
。
对于 o1
或 o3-mini
等推理模型,添加 reasoning: true
。
完成此配置后,以下命令应该可以针对新模型运行提示
llm -m 0613 'What is the capital of France?'
运行 llm models
命令确认新模型现在可用
llm models
示例输出
OpenAI Chat: gpt-3.5-turbo (aliases: 3.5, chatgpt)
OpenAI Chat: gpt-3.5-turbo-16k (aliases: chatgpt-16k, 3.5-16k)
OpenAI Chat: gpt-4 (aliases: 4, gpt4)
OpenAI Chat: gpt-4-32k (aliases: 4-32k)
OpenAI Chat: gpt-3.5-turbo-0613 (aliases: 0613)
运行 llm logs -n 1
命令应该会确认提示和响应已正确记录到数据库中。