ollama-python
Ollama 官方 Python SDK,一行命令 pip install 即可在 Python 项
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Ollama 官方 Python SDK,一行命令 pip install 即可在 Python 项
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:Ollama 官方头像标识
想象一下:你在做一个智能客服项目,需要接入大语言模型能力。调用 OpenAI API 需要配置 API Key、网络请求、费用结算——步骤繁琐,还有数据出境合规风险。但如果你的团队已经在本地部署了 Ollama 平台,现在只需要在 Python 项目里写三行代码,就能直接调用本地运行的 Llama 3.3、Mistral 等数十种开源大模型:
from ollama import chat
response = chat(model='llama3', messages=[
{'role': 'user', 'content': '用一句话解释量子计算'}
])
print(response.message.content)
这就是 Ollama Python 客户端库(ollama/ollama-python)的核心价值——它是 Ollama 官方维护的 Python SDK,将复杂的 HTTP 请求封装为直观的上层 API,让任何 Python 3.8+ 开发者无需关心底层实现,就能完成模型对话、生成、嵌入、工具调用等全部核心操作。目前该项目在 GitHub 已有超过 10,000 颗星,是 Ollama 生态中下载量最高的客户端库。
Ollama 是一款开源的本地大模型运行平台,支持在 macOS、Linux 和 Windows 上以单条命令部署开源大模型。与 Ollama 主仓库(超过 90,000 星)相比,ollama-python 专注于解决一个具体问题:如何在 Python 应用中便捷地调用 Ollama 后端。
该项目由 Ollama 官方团队维护,采用 MIT 开源许可证,代码质量要求严格——仓库集成了 GitHub Actions 自动化测试、Ruff 代码风格检查与格式化工具,Python 版本要求 3.8 及以上,依赖极为轻量:仅引入 httpx(异步 HTTP 客户端)和 pydantic(数据验证与序列化)两个核心库。这意味着安装包体积极小(不足 1MB),引入项目后不会带来依赖噩梦。
深入代码结构,ollama-python 的设计遵循了"简单接口、丰富功能"的原则:
包结构:整个仓库的核心代码集中在 ollama/ 子包内,仅包含 4 个 Python 文件。_client.py 是核心,实现了同步客户端 Client 和异步客户端 AsyncClient 两个类;_types.py 定义了所有请求和响应的 Pydantic v2 数据模型;_utils.py 提供辅助函数;__init__.py 则精心设计了一个模块级便利设计——不仅导出了 Client 和 AsyncClient,还将 _client 实例的方法直接暴露为模块级函数(如 ollama.chat()、ollama.generate()),让用户无需手动实例化就能直接使用。
通信层:底层基于 httpx 库,支持同步和异步两种调用模式。httpx 本身支持连接池、超时控制、自定义请求头等,比 requests 更现代、比 urllib 更易用。对于云端模型场景,httpx 的自定义 headers 机制允许用户传入认证信息来调用 Ollama Cloud 的付费 API。
类型系统:大量使用 Pydantic v2 的 BaseModel 定义请求/响应数据结构,并创新性地实现了 SubscriptableBaseModel——让 Pydantic 模型支持字典式访问(response['message']['content']),同时保持属性访问(response.message.content)的便利。这种设计兼顾了静态类型的开发安全和动态取值时的灵活性。
API 覆盖:该库几乎完整覆盖了 Ollama REST API 的全部端点:
chat(支持多轮对话、历史上下文)、generate(补全生成)、stream(流式输出)list(罗列模型)、show(查看模型信息)、pull(拉取模型)、push(上传模型)、create(创建自定义模型)、copy、deleteembed(单条文本嵌入)、embeddings(批量嵌入)特别值得关注的是结构化输出和工具调用这两个高级功能:通过 format='json' 或 Pydantic schema,可以强制模型输出结构化 JSON;通过 tools 参数,可以让模型调用外部函数——这是构建 AI Agent 的核心技术。该仓库在 examples/ 目录下提供了 25+ 个完整示例脚本,覆盖了从基础聊天到复杂多工具调用的全场景。
安装体验:极简。pip install ollama 一行命令完成安装,无任何额外依赖冲突。项目使用 hatchling 构建系统,发布在 PyPI,可通过 uv、pip 或 poetry 任意方式管理。
运行时依赖:需要一台运行着 Ollama 服务的机器(本地或远程均可)。Ollama 服务通过 http://localhost:11434 的 REST API 与客户端通信,客户端本身不包含任何模型推理代码,因此不消耗 GPU 资源——GPU 消耗全部在 Ollama 服务端。
自定义客户端配置:对于高级用户,可以传入自定义的 host(连接远程 Ollama 实例)和 headers(传入认证信息),实现连接到 Ollama Cloud 或私有 Ollama 服务器。
测试覆盖:项目包含 3 个测试文件(test_client.py、test_type_serialization.py、test_utils.py),使用 pytest + pytest-anyio + pytest-httpserver 实现无真实 Ollama 服务依赖的单元测试,保证代码质量的同时也降低了 CI 环境配置的复杂度。
尽管设计精良,这个项目也有其局限性需要注意:
缺少独立服务端:这不是一个独立的 AI 应用或 Web 服务,而是一个纯粹的客户端库。如果用户期望开箱即用的 Web UI 或 API 服务,需要另行部署 Ollama 主程序或其他推理平台。
非自包含部署:安装该库后并不能直接使用——必须确保 Ollama 后端服务在运行,且目标模型已通过 ollama pull 下载。对于完全没有 Ollama 经验的开发者,初次配置仍有一定学习成本。
异步生态依赖:虽然支持 AsyncClient,但高级异步功能(如连接池复用、并发请求控制)需要用户自行在应用层实现,没有内置的连接池管理或重试逻辑。
文档国际化:目前文档以英文为主,对中文开发者社区的覆盖不足。
ollama-python 的价值不仅在于技术实现,更在于它代表了本地 AI 推理民主化的趋势。随着开源大模型能力不断逼近闭源模型,越来越多的开发团队选择 Ollama 方案来保证数据隐私、降低成本、摆脱网络依赖。在这一生态中,ollama-python 作为最官方的 Python 入口,大幅降低了 Python 开发者接入本地 AI 的门槛。
从代码提交频率和功能迭代速度看(云端模型、结构化输出、Thinking 模式等新功能跟进迅速),该项目保持着活跃的维护状态。随着 Ollama 生态持续扩张,这个 Python 客户端库的重要性还将进一步提升。