news 2026/6/15 13:46:19

Ollama REST API - api/chat 接口详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ollama REST API - api/chat 接口详解

1. /api/chat 接口参数概览

该接口使用提供的模型在聊天中生成下一条消息。与/api/generate的参数基本一致,但是在请求的参数上会根据聊天场景进行调整。主要调整的是:

  • 不再使用prompt参数,而是使用messages参数。
  • 新增了tools参数,用于支持工具调用。

其可以使用的具体参数如下所示,

常规参数

参数名

类型

描述

model

(必需)

模型名称。

messages

(必需)

聊天的消息,用于保持聊天记忆。

tools

(可选)

JSON 中的工具列表,供模型使用(如果支持)。

消息对象字段

字段名

描述

role

消息的角色,可以是systemuserassistanttool

content

消息的内容。

images

(可选)要在消息中包含的图像列表(适用于多模态模型,如llava)。

tool_calls

(可选)模型希望使用的 JSON 中的工具列表。

高级参数 (可选)

参数名

描述

format

返回响应的格式。格式可以是json或 JSON 模式。

options

文档中列出的其他模型参数,例如temperature

stream

如果为false,响应将作为单个响应对象返回,而不是对象流。

keep_alive

控制模型在请求后保持加载的时间(默认:5分钟)。

其中,Options参数说明:

参数名

描述

值类型

示例用法

mirostat

启用 Mirostat 采样以控制困惑度。(默认:0,0 = 禁用,1 = Mirostat,2 = Mirostat 2.0)

int

mirostat 0

mirostat_eta

影响算法对生成文本反馈的响应速度。较低的学习率会导致调整较慢,而较高的学习率会使算法更具响应性。(默认:0.1)

float

mirostat_eta 0.1

mirostat_tau

控制输出的连贯性和多样性之间的平衡。较低的值会导致更集中和连贯的文本。(默认:5.0)

float

mirostat_tau 5.0

num_ctx

设置用于生成下一个标记的上下文窗口大小。(默认:2048), 影响的是模型可以一次记住的最大 token 数量。

int

num_ctx 4096

repeat_last_n

设置模型回溯的范围以防止重复。(默认:64,0 = 禁用,-1 = num_ctx)

int

repeat_last_n 64

repeat_penalty

设置惩罚重复的强度。较高的值(例如 1.5)会更强烈地惩罚重复,而较低的值(例如 0.9)会更宽松。(默认:1.1)

float

repeat_penalty 1.1

temperature

模型的温度。增加温度会使模型的回答更具创造性。(默认:0.8)

float

temperature 0.7

seed

设置用于生成的随机数种子。将其设置为特定数字将使模型对相同提示生成相同的文本。(默认:0)

int

seed 42

stop

设置使用的停止序列。当遇到此模式时,LLM 将停止生成文本并返回。可以通过在 modelfile 中指定多个单独的停止参数来设置多个停止模式。

string

stop "AI assistant:"

num_predict

生成文本时要预测的最大标记数。(默认:-1,无限生成),影响模型最大可以生成的 token 数量。

int

num_predict 42

top_k

降低生成无意义文本的概率。较高的值(例如 100)会给出更多样化的答案,而较低的值(例如 10)会更保守。(默认:40)

int

top_k 40

top_p

与 top-k 一起工作。较高的值(例如 0.95)会导致更具多样性的文本,而较低的值(例如 0.5)会生成更集中和保守的文本。(默认:0.9)

float

top_p 0.9

min_p

top_p 的替代方案,旨在确保质量和多样性之间的平衡。参数 p 表示考虑标记的最小概率,相对于最可能标记的概率。例如,p=0.05 时,最可能的标记概率为 0.9,值小于 0.045 的 logits 会被过滤掉。(默认:0.0)

float

min_p 0.05

2. requests 调用方法

/api/chat依然还是可以requests库进行调用。如下所示:

import requests import json # 设置 API 端点 chat_url = "http://127.0.0.1:11434/api/chat" # 这里需要根据实际情况进行修改 # 示例数据 chat_payload = { "model": "deepseek-r1:1.5b", # 这里需要根据实际情况进行修改 "messages": [ { "role": "user", # 消息角色,用户发送的消息 "content": "请生成一个关于人工智能的简短介绍。" # 用户的消息内容 } ], "tools": [], # 如果有工具可以在这里添加 "stream": False, # 默认使用的是True,如果设置为False,则返回的是一个完整的响应,而不是一个流式响应 } # 调用聊天接口 response_chat = requests.post(chat_url, json=chat_payload) if response_chat.status_code == 200: chat_response = response_chat.json() print("生成响应:", json.dumps(chat_response, ensure_ascii=False, indent=2)) else: print("生成请求失败:", response_chat.status_code, response_chat.text)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 7:53:11

weiboPicDownloader:社交媒体图片智能备份的高效采集方案

weiboPicDownloader:社交媒体图片智能备份的高效采集方案 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 在数字时代,社交媒体图片承载着重要的…

作者头像 李华
网站建设 2026/6/15 12:41:06

如何突破微信排版限制?mpMath插件让数学公式编辑效率提升300%

如何突破微信排版限制?mpMath插件让数学公式编辑效率提升300% 【免费下载链接】mpMath 项目地址: https://gitcode.com/gh_mirrors/mpma/mpMath 在微信公众号内容创作中,数学公式排版一直是技术作者面临的主要障碍。传统编辑器缺乏专业公式支持&…

作者头像 李华
网站建设 2026/6/13 5:36:30

使用CMake实现arm64到x64的跨平台编译

以下是对您提供的博文内容进行深度润色与结构重构后的技术文章。我以一位资深嵌入式系统工程师兼CMake实践者的第一人称视角重写全文,彻底去除AI腔、模板化表达和教科书式分节,代之以真实开发场景驱动的逻辑流、经验沉淀式的语言风格、层层递进的技术纵深…

作者头像 李华
网站建设 2026/6/15 12:56:43

宝塔面板v7.7.0内网环境部署技术白皮书

宝塔面板v7.7.0内网环境部署技术白皮书 【免费下载链接】btpanel-v7.7.0 宝塔v7.7.0官方原版备份 项目地址: https://gitcode.com/GitHub_Trending/btp/btpanel-v7.7.0 【需求分析:隔离环境下的服务器管理挑战】 在企业内网环境中,服务器管理平台…

作者头像 李华
网站建设 2026/6/9 18:43:44

vivado安装入门必看:系统学习基础准备

以下是对您提供的博文内容进行 深度润色与结构优化后的技术文章 。全文已彻底去除AI生成痕迹,强化了人类专家视角的叙述逻辑、教学节奏与实战温度;摒弃刻板标题层级,代之以自然递进的技术叙事流;语言更凝练有力,关键…

作者头像 李华