codecamp

Ollama 用 API 构建应用

装好 Ollama 后,除了在终端里聊天,更常见的用法是在代码里调用模型的推理能力。Ollama 提供一套与 OpenAI 风格兼容的 REST API,既能在本地(免费、免密钥)调用,也能指向 Ollama Cloud(需 API Key)调用更大的云端模型。本节用 curl、Python、JavaScript 三种方式,分别演示本地与云端两种 Base URL 的最小请求。

版本基线 v0.40.12;下文 gemma4:e2b 为本地示例模型、gemma4:31b 为云端示例模型,实际标签以官方文档为准。代码仅做结构示范,变量名/字段名保留英文。

一、两种 Base URL

场景 Base URL 认证
本地(本机已装 Ollama) http://localhost:11434 免密钥
云端(Ollama Cloud) https://ollama.com Authorization: Bearer <OLLAMA_API_KEY>

本地调用走 /api/chat 等端点;云端调用把 Base URL 换成 https://ollama.com 并带上 API Key 即可,端点路径保持一致。

二、curl 最小请求

## 本地:向默认端点发起一次对话(stream:false 表示一次性返回)
curl http://localhost:11434/api/chat -d '{
  "model": "gemma4:e2b",
  "messages": [{ "role": "user", "content": "用中文解释为什么天空是蓝色的?" }],
  "stream": false
}'

## 云端:Base URL 换成 https://ollama.com,并加认证头
curl https://ollama.com/api/chat \
  -H "Authorization: Bearer $OLLAMA_API_KEY" \
  -d '{
    "model": "gemma4:31b",
    "messages": [{ "role": "user", "content": "用中文解释为什么天空是蓝色的?" }],
    "stream": false
  }'

三、Python 客户端库

from ollama import chat

## 本地调用(默认连 http://localhost:11434,免密钥)
response = chat(
    model="gemma4:e2b",                                  # 指定本地模型
    messages=[{"role": "user", "content": "用一句话介绍 Ollama。"}],
)
print(response["message"]["content"])                    # 打印模型回复文本

from ollama import Client

## 云端调用:把 host 指向 Ollama Cloud,并用 API Key 认证
client = Client(host="https://ollama.com", api_key="你的_API_Key")
response = client.chat(
    model="gemma4:31b",                                # 云端模型标签
    messages=[{"role": "user", "content": "用一句话介绍 Ollama。"}],
)
print(response["message"]["content"])

先 pip install ollama 安装官方 Python 库。云端调用不要把 API Key 写死在代码里,建议从环境变量 OLLAMA_API_KEY 读取。

四、JavaScript 客户端库

import ollama from "ollama";

// 本地调用(默认连 http://localhost:11434)
const response = await ollama.chat({
  model: "gemma4:e2b",
  messages: [{ role: "user", content: "用一句话介绍 Ollama。" }],
});
console.log(response.message.content);

import ollama from "ollama";

// 云端调用:host 指向 Ollama Cloud,认证走环境变量 OLLAMA_API_KEY
const client = new ollama.Client({ host: "https://ollama.com" });
const response = await client.chat({
  model: "gemma4:31b",
  messages: [{ role: "user", content: "用一句话介绍 Ollama。" }],
});
console.log(response.message.content);

先 npm install ollama 安装官方 JS 库。Node.js 版本需支持顶层 await(或使用 async 函数包裹)。

五、本地连不上的常见原因

  • 服务没起:本地调用前先确认 Ollama 应用已打开,或 Linux 上 systemctl start ollama / 其他平台 ollama serve 已运行。
  • 端口不对:本地默认 11434,若改过 OLLAMA_HOST 要用对应地址。
  • 云端 401:检查 OLLAMA_API_KEY 是否正确、额度是否充足。

六、动手试

  1. 用 curl 向 http://localhost:11434/api/chat 发一条消息,确认本地能返回。
  2. 把同一段 Python 代码跑通(先装 ollama 库)。
  3. 想深入 API 端点与字段,跳到 API 总览;想接桌面应用或编码代理见 1.4 Ollama 连接桌面应用 与 1.5 Ollama 使用编码代理。

说明:本节代码示例以官方 Quickstart(v0.40.12)为基线整理,模型名与端点形态若与你所见官网不一致,以 docs.ollama.com 当前页面为准。

Ollama 运行你的第一个模型
Ollama 连接桌面应用
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Ollama Cloud

Ollama CLI 命令行参考

Ollama Modelfile 参考

Ollama 上下文长度

Ollama 导入自定义模型

Ollama 常见问题

Ollama 硬件支持

Ollama 故障排查

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }