ollama-python README

The project's README from github.com/ollama/ollama-python. As one markdown file: README.md.

Ollama Python Library

The Ollama Python library provides the easiest way to integrate Python 3.8+ projects with Ollama.

Prerequisites

Install

pip install ollama

Usage

from ollama import chat
from ollama import ChatResponse

response: ChatResponse = chat(model='gemma3', messages=[
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
])
print(response['message']['content'])
# or access fields directly from the response object
print(response.message.content)

See _types.py for more information on the response types.

Streaming responses

Response streaming can be enabled by setting stream=True.

from ollama import chat

stream = chat(
    model='gemma3',
    messages=[{'role': 'user', 'content': 'Why is the sky blue?'}],
    stream=True,
)

for chunk in stream:
  print(chunk['message']['content'], end='', flush=True)

Cloud Models

Run larger models by offloading to Ollama’s cloud while keeping your local workflow.

Run via local Ollama

  1. Sign in (one-time):
ollama signin
  1. Pull a cloud model:
ollama pull gpt-oss:120b-cloud
  1. Make a request:
from ollama import Client

client = Client()

messages = [
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
]

for part in client.chat('gpt-oss:120b-cloud', messages=messages, stream=True):
  print(part.message.content, end='', flush=True)

Cloud API (ollama.com)

Access cloud models directly by pointing the client at https://ollama.com.

  1. Create an API key from ollama.com , then set:
export OLLAMA_API_KEY=your_api_key
  1. (Optional) List models available via the API:
curl https://ollama.com/api/tags
  1. Generate a response via the cloud API:
import os
from ollama import Client

client = Client(
    host='https://ollama.com',
    headers={'Authorization': 'Bearer ' + os.environ.get('OLLAMA_API_KEY')}
)

messages = [
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
]

for part in client.chat('gpt-oss:120b', messages=messages, stream=True):
  print(part.message.content, end='', flush=True)

Custom client

A custom client can be created by instantiating Client or AsyncClient from ollama.

All extra keyword arguments are passed into the httpx.Client.

from ollama import Client
client = Client(
  host='http://localhost:11434',
  headers={'x-some-header': 'some-value'}
)
response = client.chat(model='gemma3', messages=[
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
])

Async client

The AsyncClient class is used to make asynchronous requests. It can be configured with the same fields as the Client class.

import asyncio
from ollama import AsyncClient

async def chat():
  message = {'role': 'user', 'content': 'Why is the sky blue?'}
  response = await AsyncClient().chat(model='gemma3', messages=[message])

asyncio.run(chat())

Setting stream=True modifies functions to return a Python asynchronous generator:

import asyncio
from ollama import AsyncClient

async def chat():
  message = {'role': 'user', 'content': 'Why is the sky blue?'}
  async for part in await AsyncClient().chat(model='gemma3', messages=[message], stream=True):
    print(part['message']['content'], end='', flush=True)

asyncio.run(chat())

API

The Ollama Python library's API is designed around the Ollama REST API

Chat

ollama.chat(model='gemma3', messages=[{'role': 'user', 'content': 'Why is the sky blue?'}])

Generate

ollama.generate(model='gemma3', prompt='Why is the sky blue?')

List

ollama.list()

Show

ollama.show('gemma3')

Create

ollama.create(model='example', from_='gemma3', system="You are Mario from Super Mario Bros.")

Copy

ollama.copy('gemma3', 'user/gemma3')

Delete

ollama.delete('gemma3')

Pull

ollama.pull('gemma3')

Push

ollama.push('user/gemma3')

Embed

ollama.embed(model='gemma3', input='The sky is blue because of rayleigh scattering')

Embed (batch)

ollama.embed(model='gemma3', input=['The sky is blue because of rayleigh scattering', 'Grass is green because of chlorophyll'])

Ps

ollama.ps()

Errors

Errors are raised if requests return an error status or if an error is detected while streaming.

model = 'does-not-yet-exist'

try:
  ollama.chat(model)
except ollama.ResponseError as e:
  print('Error:', e.error)
  if e.status_code == 404:
    ollama.pull(model)

ollama-python (ollama/ollama-python)

Searching Database…

这是什么?这是 Ollama 官方的 Python 库,让 Python 3.8+ 项目可以轻松调用本地或云端的 Ollama 服务器来运行大语言模型。
这是库还是独立应用?这是一个 Python 客户端库(SDK),封装了 Ollama REST API,提供同步的 Client 类和异步的 AsyncClient 类。
我怎么把它加到我的项目里?用 pip 安装这个包,然后在 Python 代码中 import ollama,调用 chat、generate 或 embed 等方法,这些方法对应 Ollama REST API。
使用前我需要准备什么?需要先在本地安装并运行 Ollama,再用类似 'ollama pull gemma3' 的命令拉取一个模型,然后才能通过这个库发起调用。
不在本地安装 Ollama 也能用吗?可以。除了本地服务器,还能使用 Ollama 的云端模型:一种方式是在本地 Ollama 中登录并拉取云端模型,另一种方式是使用 API 密钥让客户端直接连接 ollama.com。
支持流式输出吗?支持。设置 stream=True 即可启用流式输出;使用 AsyncClient 时,它会返回一个 Python 异步生成器。
这个 API 支持哪些操作?支持 Chat、Generate、List、Show、Create、Copy、Delete、Pull、Push、Embed(包括批量 Embed),以及用于列出正在运行模型的 Ps。
出错了会怎样处理?如果请求返回错误状态,或在流式接收响应时检测到错误,都会以 Python 异常的形式抛出。
支持哪些云端模型?支持的云端模型包括 deepseek-v3.1:671b-cloud、gpt-oss:20b-cloud、gpt-oss:120b-cloud、kimi-k2:1t-cloud、qwen3-coder:480b-cloud 和 kimi-k2-thinking。
Creator
ollama
Size
0.6 MB
Stars
10.6K
Age
2y
Commits · 90 Days