API 参考
发布时间:2026-10-11 | 浏览:1
生成ChatCompletion
模型名称遵循 model:tag 格式,其中 model 可以有一个可选的命名空间,例如 example/model 。一些示例包括 orca-mini:3b-q4_1 和 llama3:70b 。标签是可选的,如果未提供,则默认为 latest 。标签用于标识特定版本。
所有持续时间都以纳秒为单位返回。
某些端点以 JSON 对象的形式流式传输响应。可以通过为这些端点提供 {"stream": false} 来禁用流式传输。
生成给定提示的响应。这是一个流式端点,因此将有一系列响应。最终的响应对象将包括请求的统计信息和附加数据。
model : (必需) 模型名称
prompt : 生成响应的提示
suffix : 模型响应后的文本
images : (可选)一个 base64 编码的图像列表(适用于多模态模型,如 llava )
format : 返回响应的格式。目前唯一接受的值是 json
options : 文档中列出的 Modelfile 中的其他模型参数,例如 temperature
system : 系统消息(覆盖 Modelfile 中定义的内容)
template : 使用的提示模板(覆盖 Modelfile 中定义的内容)
context : 从先前请求 /generate 返回的上下文参数,可用于保持简短的对话记忆
stream : 如果为 false ,响应将作为单个响应对象返回,而不是一系列对象
raw : 如果为 true ,不会对提示进行任何格式化。如果你在请求 API 时指定了完整的模板提示,可以选择使用 raw 参数
keep_alive : 控制请求后模型在内存中保持加载的时间(默认: 5m )
通过将 format 参数设置为 json 来启用 JSON 模式。这将使响应结构化为有效的 JSON 对象。请参阅下面的 JSON 模式 示例 。
[!IMPORTANT] 重要的是要在 prompt 中指示模型使用 JSON。否则,模型可能会生成大量空白。
流中的最终响应还包含有关生成的其他数据:
total_duration :生成响应所花费的时间
load_duration :加载模型所花费的时间(纳秒)
prompt_eval_count :提示中的令牌数
prompt_eval_duration :评估提示所花费的时间(纳秒)
eval_count :响应中的令牌数
eval_duration :生成响应所花费的时间(纳秒)
context :用于此响应的对话编码,可以在下一个请求中发送以保持对话记忆
response :如果响应是流式的,则为空;如果不是流式的,将包含完整的响应
要计算响应生成的速度(以每秒令牌数为单位),请使用公式: eval_count / eval_duration * 10^9 。
当关闭流式传输时,可以在一次回复中接收响应。
如果将 stream 设置为 false ,响应将是一个单一的 JSON 对象:
[!IMPORTANT] 当 format 设置为 json 时,输出将始终是一个格式良好的 JSON 对象。重要的是还要指示模型以 JSON 格式响应。
response 的值将是一个包含类似以下 JSON 的字符串:
要向多模态模型(如 llava 或 bakllava )提交图片,请提供一个 base64 编码的 images 列表:
在某些情况下,你可能希望绕过模板系统并提供完整的提示。在这种情况下,你可以使用 raw 参数来禁用模板。请注意,原始模式不会返回上下文。
为了获得可复现的输出,将 seed 设置为一个数字:
如果你希望在运行时而不是在 Modelfile 中设置模型的自定义选项,可以使用 options 参数。此示例设置了所有可用选项,但你可以单独设置其中任何一个,并省略你不希望覆盖的选项。
如果提供了一个空的提示,模型将被加载到内存中。
如果提供了一个空提示,并且 keep_alive 参数设置为 0 ,则模型将从内存中卸载。
生成ChatCompletion
生成与提供的模型进行聊天的下一条消息。这是一个流式端点,因此将有一系列响应。可以通过设置 "stream": false 来禁用流式传输。最终的响应对象将包含统计信息和请求的其他数据。
model : (必需) 模型名称
messages : 聊天的消息,可以用于保持聊天记忆
tools : 如果支持,模型可以使用的工具。需要将 stream 设置为 false
message 对象具有以下字段:
role : 消息的角色,可以是 system 、 user 、 assistant 或 tool
content : 消息的内容
images (可选): 要包含在消息中的图像列表(适用于多模态模型,如 llava )
tool_calls (可选): 模型希望使用的工具列表
format : 返回响应的格式。目前唯一接受的值是 json
options : 文档中列出的其他模型参数,如 Modelfile 中的 temperature
stream : 如果设置为 false ,响应将作为单个响应对象返回,而不是一系列对象
keep_alive : 控制请求后模型在内存中保持加载的时间(默认: 5m )
发送一条带有流式响应的聊天消息。
Chat请求(不使用流式传输)
发送一条带有对话历史的聊天消息。你可以使用相同的方法通过多轮提示或多步思考提示来开始对话。
发送一条包含图片的聊天消息。图片应以数组形式提供,每个图片使用 Base64 编码。
如果消息数组为空,模型将被加载到内存中。
如果消息数组为空且 keep_alive 参数设置为 0 ,则模型将从内存中卸载。
从一个 Modelfile 创建模型。建议将 modelfile 设置为 Modelfile 的内容,而不仅仅是设置 path 。这是远程创建的必要条件。远程模型创建还必须使用 创建 Blob 显式地与服务器创建任何文件 blob、字段(如 FROM 和 ADAPTER ),并将响应中指示的路径值设置为路径。
model : 要创建的模型名称
modelfile (可选): Modelfile 的内容
stream (可选): 如果为 false ,响应将作为单个响应对象返回,而不是对象流
path (可选): Modelfile 的路径
quantize (可选): 量化一个未量化的模型(例如 float16)
从 Modelfile 创建新模型。
确保用于 FROM 或 ADAPTER 字段的文件 blob 在服务器上存在。这是检查你的 Ollama 服务器,而不是 ollama.com。
digest : blob 的 SHA256 摘要
如果 blob 存在,则返回 200 OK;如果不存在,则返回 404 Not Found。
从服务器上的文件创建一个 blob。返回服务器文件路径。
digest : 文件的预期 SHA256 摘要
如果 blob 创建成功,则返回 201 Created;如果使用的摘要不符合预期,则返回 400 Bad Request。
显示模型的信息,包括详细信息、模型文件、模板、参数、许可证、系统提示。
model : 要显示的模型名称
verbose : (可选)如果设置为 true ,则返回详细响应字段的完整数据
复制模型。从现有模型创建一个具有另一个名称的模型。
如果成功,返回 200 OK;如果源模型不存在,则返回 404 Not Found。
model : 要删除的模型名称
如果成功,返回 200 OK;如果要删除的模型不存在,则返回 404 Not Found。
从 ollama 库下载一个模型。取消的下载会从断点处恢复,多次调用将共享相同的下载进度。
model : 要下载的模型名称
insecure : (可选)允许与库的不安全连接。仅在开发期间从你自己的库中拉取时使用此选项。
stream : (可选)如果为 false ,响应将作为单个响应对象返回,而不是对象流
如果未指定 stream ,或设置为 true ,则返回一个 JSON 对象流:
然后是一系列的下载响应。直到任何下载完成之前, completed 键可能不会被包含。需要下载的文件数量取决于清单中指定的层数。
所有文件下载完成后,最终响应为:
如果 stream 设置为 false ,则响应是一个单一的 JSON 对象:
将模型上传到模型库。需要先注册 ollama.ai 并添加公钥。
model : 要推送的模型名称,格式为 <namespace>/<model>:<tag>
insecure :(可选)允许与库的不安全连接。仅在开发期间推送到库时使用此选项。
stream :(可选)如果 false ,则响应将作为单个响应对象返回,而不是对象流
如果未指定 stream ,或将其设置为 true ,则返回一个 JSON 对象流:
如果 stream 设置为 false ,则响应是一个单一的 JSON 对象:
model : 用于生成嵌入向量的模型名称
input : 要生成嵌入向量的文本或文本列表
truncate : 将每个输入的末尾截断以适应上下文长度。如果设置为 false 且上下文长度超出,则返回错误。默认值为 true
options : 文档中列出的其他模型参数,如 Modelfile 中的 temperature
keep_alive : 控制模型在请求后保持加载在内存中的时间(默认值: 5m )
列出当前已加载到内存中的模型。
注意:此端点已被 /api/embed 取代
model : 用于生成嵌入向量的模型名称
prompt : 生成嵌入向量的文本
options : 文档中列出的其他模型参数,如 Modelfile 中的 temperature
keep_alive : 控制模型在请求后保持加载在内存中的时间(默认值: 5m )