Ollama API 调用教程:本地接口地址、Python 调用与 OpenAI 兼容写法

Ollama API 怎么调用、要不要 API Key?本文按官方文档讲清本地接口地址 localhost:11434、原生接口与 OpenAI 兼容接口两种写法、Python 示例、keep_alive 与上下文设置,以及连不上的排查。

NNathaniel bigo··原创首发·AI 辅助撰写
6 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 免费账号 账号

适用于谁

  • 搜「ollama api 调用」「ollama api 地址」「ollama api key 怎么获取」「python 调用 ollama api」的人;
  • 想把本机的 Ollama 接到自己的脚本,或接到支持 OpenAI 接口的第三方工具里的人。

本文根据 Ollama 官方文档整理,资料核对于 2026-10-11。还没装 Ollama 的话先看《Ollama怎么用》。

结论先说

  1. 本地 API 地址是 http://localhost:11434,Ollama 启动后自动提供,不需要另外开服务。
  2. 本地调用不需要 API Key。只有直接调用 Ollama 云端模型才需要在 ollama.com 创建 Key。
  3. 有两套接口可选:原生接口(/api/chat、/api/generate)和 OpenAI 兼容接口(/v1/chat/completions 等)。已有的 OpenAI 代码,改一下 base_url 就能用。
  4. 用 OpenAI SDK 时 api_key 这个参数必须填,但本地服务会忽略它,官方示例填的是 ollama。

步骤

1. 先确认服务在运行

bash
ollama ls          # 能列出模型,说明服务正常
ollama pull gemma4 # 没有模型就先下载一个

官方给出的三组地址:

接口本地 Ollama 服务直接访问云端
Ollama 原生接口http://localhost:11434/apihttps://ollama.com/api
OpenAI 兼容接口http://localhost:11434/v1https://ollama.com/v1
Anthropic 客户端 base URLhttp://localhost:11434https://ollama.com

2. 用 curl 调原生接口

bash
curl http://localhost:11434/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4",
    "messages": [{"role": "user", "content": "用一句话介绍你自己"}],
    "stream": false
  }'

回答在返回 JSON 的 message.content 里。官方示例都带着 "stream": false,表示一次性返回完整结果;去掉它则是逐块流式返回。

Windows PowerShell 里引号转义比较麻烦,官方 Windows 文档给的写法是用 Invoke-WebRequest:

powershell
(Invoke-WebRequest -method POST -Body '{"model":"gemma4", "prompt":"天空为什么是蓝色的?", "stream": false}' -uri http://localhost:11434/api/generate ).Content | ConvertFrom-json

3. 用官方 Python 库

bash
pip install ollama
python
from ollama import chat

response = chat(
    model="gemma4",
    messages=[{"role": "user", "content": "用三句话解释什么是量化"}],
)
print(response.message.content)

流式输出把 stream=True 传进去,然后逐块读取:

python
for chunk in chat(model="gemma4", messages=[{"role": "user", "content": "写一首四行诗"}], stream=True):
    print(chunk.message.content, end="", flush=True)

官方还提供 JavaScript 库(ollama-js),用法类似。

4. 用 OpenAI SDK(兼容接口)

已有的 OpenAI 代码只改两处,base_url 和 model:

python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1/",
    api_key="ollama",   # 必填,但本地服务不校验
)

resp = client.chat.completions.create(
    model="gemma4",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

官方兼容文档列出的端点包括 /v1/chat/completions、/v1/completions、/v1/models、/v1/embeddings 和 Responses API(/v1/responses)。其中 Responses API 不支持有状态的用法:previous_response_id 和 conversation 两个参数标注为不支持,多轮对话要自己把历史消息带上。

5. 接到第三方工具

凡是能自定义「OpenAI 兼容接口地址」的客户端,都按下面填:

  • 接口地址(Base URL):http://localhost:11434/v1
  • API Key:随便填一个非空字符串,例如 ollama
  • 模型名:ollama ls 里显示的名字

有些工具写死了 gpt-3.5-turbo 这类模型名、不让改。官方给的办法是给本地模型复制一个别名:

bash
ollama cp gemma4 gpt-3.5-turbo

之后把 gpt-3.5-turbo 当模型名传进去,实际调用的是本地的 gemma4。

6. 两个常用的调节项

模型在内存里留多久:默认 5 分钟后卸载。请求里的 keep_alive 参数可以改:

  • 时长字符串,如 "10m"、"24h";
  • 秒数,如 3600;
  • 负数(如 -1)表示一直留在内存;
  • 0 表示回答完立刻卸载。

只发模型名、不带内容的请求可以预加载模型,避免第一次提问等待:

bash
curl http://localhost:11434/api/generate -d '{"model": "gemma4", "keep_alive": -1}'

上下文长度:OpenAI 接口本身没有设置上下文长度的参数。官方的做法是写一个 Modelfile 把 num_ctx 固定下来,再用新名字调用:

FROM gemma4
PARAMETER num_ctx 32768
bash
ollama create gemma4-32k -f Modelfile

也可以用环境变量 OLLAMA_CONTEXT_LENGTH 统一设置服务的默认值。

常见问题

Q:Ollama 的 API Key 在哪里获取?

本地调用不需要。只有不经过本机、直接请求 https://ollama.com/api 的云端模型时才需要,登录 ollama.com 后在 Settings 的 Keys 页面创建,并以 Authorization: Bearer 请求头携带。官方提醒 Key 要放在服务端,不要写进浏览器代码或提交到代码仓库。

Q:连接被拒绝(connection refused)怎么办?

先确认 Ollama 在运行(任务栏有图标,或 ollama ls 有输出)。Ollama 默认只监听 127.0.0.1:11434,从另一台电脑、Docker 容器或 WSL 里访问需要改监听地址,见《Ollama 修改模型存储位置与局域网访问》。

Q:浏览器里的网页或插件调用报跨域错误?

官方 FAQ 说明,默认只允许来自 127.0.0.1 和 0.0.0.0 的跨域请求,其他来源要通过环境变量 OLLAMA_ORIGINS 添加。

Q:返回 503 是什么意思?

官方 FAQ 的解释是请求太多、服务过载。排队上限由 OLLAMA_MAX_QUEUE 控制(默认 512),单个模型同时处理的请求数由 OLLAMA_NUM_PARALLEL 控制(默认 1)。

Q:接口会变吗?

官方说明 API 没有严格的版本号,但预期保持稳定和向后兼容,少数弃用会写在发布说明里。

参考资料

  • Ollama 文档:API Introduction — https://docs.ollama.com/api/introduction
  • OpenAI compatibility — https://docs.ollama.com/api/openai-compatibility
  • Quickstart — https://docs.ollama.com/quickstart
  • FAQ — https://docs.ollama.com/faq
  • 官方 Python 库 — https://github.com/ollama/ollama-python

Nathaniel 的更多内容

  1. 01

    Hugging Face 怎么下载模型:hf 命令行下载单个文件、指定目录与受限模型申请

    Hugging Face 怎么下载模型?本文按官方文档讲清网页下载、hf download 命令行(单个文件、整个仓库、按通配符筛选、下载到指定目录)、访问令牌怎么建、受限模型怎么申请权限,以及缓存目录和超时怎么调。

    其他 AI 工具0
  2. 02

    Claude 提示词缓存(Prompt Caching)入门:缓存时间、价格倍率与命中率

    Claude API 的提示词缓存能把重复的长前缀(系统提示、工具定义、长文档、对话历史)缓存起来,读缓存只收少量费用。本文讲自动缓存与断点写法、5 分钟和 1 小时两种时长、价格倍率、最短长度、怎么看命中率以及命中率低的原因。

    Claude0
  3. 03

    Google AI Studio 怎么用:界面入口、选模型、发第一条提示与获取代码(入门)

    Google AI Studio 是 Google 给开发者试用 Gemini 模型的网页工具。本文讲清它和 Gemini 应用的区别、Playground 与 Build 入口、发第一条提示、运行设置、获取代码,以及免费边界和可用地区。

    Gemini0
  4. 04

    ChatGPT 取消订阅与关闭自动续费:网页、iPhone、安卓分别怎么操作,能退款吗

    ChatGPT Plus / Pro 不想续费了怎么取消?要在哪里买的就在哪里取消。本文按官方帮助中心讲清网页、iPhone、Google Play 和 Business 的取消步骤、要提前多久取消、取消后还能用多久、退款政策,以及重复扣费怎么处理。

    ChatGPT0
  5. 05

    扣子工作流怎么搭建:入口在哪、节点类型、变量引用、试运行与发布

    扣子工作流怎么搭建、入口在哪?本文按扣子官方文档讲清两种做法:新用户在扣子编程里用一段话生成工作流,老用户在旧版低代码画布上拖节点;并说明大模型、代码、选择器节点的配置要点、变量引用写法、试运行和官方限制。

    其他 AI 工具0
  6. 06

    长文档怎么问 AI:资料放前面、问题放最后、先引用再回答(官方长文本提示词技巧)

    把几十页的报告、合同丢给 AI,为什么总是答得笼统或漏掉重点?本文整理 Anthropic、Google、OpenAI 官方文档里针对长文本的提示词建议:资料与问题的摆放顺序、多份文档怎么用标签区分、先摘录原文再作答,并给出可照抄的模板。

    ClaudeGemini0

同产品的其他教程

  1. 01

    AI角色一致性怎么做:角色设定表、参考图与各工具的官方方法

    做绘本、漫画、IP 形象、短视频,怎么让 AI 画出的同一个角色每张都长得一样?本文按 OpenAI、Google、Midjourney 官方指南,总结「固定描述 + 定妆参考图 + 逐张迭代」的通用流程,并给出各工具的具体入口。

    Gemini其他 AI 工具0
  2. 02

    Devin Desktop 使用教程(原 Windsurf):安装、Devin Local、Plan 模式、规则与权限

    Windsurf 改名 Devin Desktop 后怎么用?按官方文档讲清安装与导入设置、默认智能体从 Cascade 换成 Devin Local、Code / Plan / Ask 三种模式、规则放在 .devin/rules、用 worktree 隔离改动、权限规则,以及老用户迁移。

    其他 AI 工具0
  3. 03

    SKILL.md 怎么写:格式规范、frontmatter 字段与范例(按 Agent Skills 官方规范)

    SKILL.md 是什么格式、怎么写?按 agentskills.io 官方规范讲清 frontmatter 的六个字段、name 与 description 的硬性限制、正文该写什么不该写什么,附一份可以照着改的范例和校验命令。

    Claude其他 AI 工具0
  4. 04

    Vidu怎么用:官网入口、文生视频、图生视频、参考生视频与首尾帧入门

    Vidu怎么用?本文从 vidu.cn 官网入口讲起,说清 Vidu 是哪个公司的、文生视频和图生视频怎么做、首尾帧两张图有什么要求、Vidu 特色的「参考生视频」和主体库怎么用,以及模型、时长、积分和闲时模式这些常见疑问。

    其他 AI 工具0
  5. 05

    Midjourney 风格参考 --sref 怎么用:图片参考、sref 代码与 --sw 权重

    想让一批 Midjourney 图片保持同一种画风?本文按官方文档讲清风格参考(--sref)怎么上传图片、怎么用 sref 代码和 Style Explorer 找风格、--sw 和 --sv 怎么调,以及提示词怎么写才不和参考图打架。

    其他 AI 工具0
  6. 06

    Kiro Spec 模式怎么用:需求、设计、任务三步工作流,Steering 规则与 Hooks 配置

    Kiro 的 Spec 模式是什么、怎么用?按官方文档讲清 requirements.md / design.md / tasks.md 三个文件、需求优先与设计优先两种流程、Quick Spec 与 Bugfix Spec、任务并行执行,以及 Steering 四种加载方式和 Hooks 的写法。

    其他 AI 工具0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~