首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 Ollama 本地运行 OpenAI gpt-oss 官方完整教程

用 Ollama 本地运行 OpenAI gpt-oss 官方完整教程

作者头像
用户11563501
发布2026-06-23 09:06:50
发布2026-06-23 09:06:50
2300
举报

想在自己的macbook上运行 OpenAI 开源模型gpt-oss吗?前几天,OpenAI出了一个教程,手把手教你使用 Ollama 本地部署 gpt-oss-20b 或 gpt-oss-120b,实现离线对话、API 调用,甚至连接到 Agents SDK。

benchmark
benchmark

模型版本和硬件要求

Ollama 支持 gpt-oss 的两个版本:

gpt-oss-20b

  • 小模型版本
  • 建议配置:≥16GB VRAM统一内存
  • 适用于:高端消费级显卡或 Apple Silicon Mac

gpt-oss-120b

  • 完整大模型版本
  • 建议配置:≥60GB VRAM统一内存
  • 适用于:多 GPU 或高配工作站

注意事项:

  • 这些模型默认采用 MXFP4 量化,目前没有其他量化选项
  • 显存不足时可以 offload 到 CPU,但运行速度会变慢

关于MXFP4 量化技术 OpenAI 为了让 gpt-oss 能在消费级硬件上运行,使用了先进的量化技术。这些模型在后训练阶段,将混合专家(MoE)权重量化为 MXFP4 格式,每个参数仅需 4.25 位存储空间。 这个优化很关键:MoE 权重占总参数数量的 90% 以上。通过 MXFP4 量化,20B 模型能在 16GB 内存系统上运行,120B 模型可以适配单个 80GB GPU。 Ollama 原生支持 MXFP4 格式,无需额外量化或转换步骤。为了支持这种格式,Ollama 团队为其新引擎开发了专门的内核,并与 OpenAI 合作进行基准测试,确保实现质量与官方参考实现一致。

安装和设置

  1. 安装或者升级最新版本 Ollama下载链接[1]
  2. 拉取模型:
代码语言:javascript
复制
# 20B 版本
ollama pull gpt-oss:20b

# 120B 版本
ollama pull gpt-oss:120b

开始对话

可以在应用或终端启动对话使用ollama UI,甚至可以直接配置到Dify等产品上:

代码语言:javascript
复制
ollama run gpt-oss:20b

Ollama 内置了聊天模板,模仿 OpenAI harmony 格式。输入消息就能开始对话。

通过 API 使用

Ollama 提供兼容 Chat Completions 的 API,所以你可以直接用 OpenAI SDK,几乎不需要修改代码。Python 示例:

代码语言:javascript
复制
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # 本地 Ollama API
    api_key="ollama"                       # 随便填个 key
)

response = client.chat.completions.create(
    model="gpt-oss:20b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain what MXFP4 quantization is."}
    ]
)

print(response.choices[0].message.content)

如果你之前用过 OpenAI SDK,这个过程会非常熟悉。

你也可以直接使用 Ollama 的 Python[2]JavaScript[3] SDK。

工具调用功能

Ollama 支持:

  • 调用函数
  • 内置浏览器工具(在应用中)

通过 Chat Completions 调用函数的示例:

代码语言:javascript
复制
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get current weather in a given city",
            "parameters": {
                "type": "object",
                "properties": {"city": {"type": "string"}},
                "required": ["city"]
            },
        },
    }
]

response = client.chat.completions.create(
    model="gpt-oss:20b",
    messages=[{"role": "user", "content": "What's the weather in Berlin right now?"}],
    tools=tools
)

print(response.choices[0].message)

因为模型可以在推理链(CoT)中执行工具调用,所以需要将 API 返回的推理过程传递给后续的工具调用,直到模型得出最终答案。

Responses API 支持

Ollama 目前还不原生支持 Responses API

如果需要使用 Responses API,可以通过 Hugging Face 的 `Responses.js` 代理[4] 将 Chat Completions 转换为 Responses API。

对于基础使用场景,也可以运行我们的示例 Python 服务器,以 Ollama 作为后端[5]

代码语言:javascript
复制
pip install gpt-oss
python -m gpt_oss.responses_api.serve \
    --inference_backend=ollama \
    --checkpoint gpt-oss:20b

与 Agents SDK 集成

想要在 OpenAI Agents SDK 中使用 gpt-oss?

两个 Agents SDK 都支持覆盖 OpenAI 基础客户端,指向 Ollama 的 Chat Completions 或你的 Responses.js 代理。或者,可以使用内置功能将 Agents SDK 对接第三方模型。

  • Python: 使用 LiteLLM[6] 通过 LiteLLM 代理到 Ollama
  • TypeScript: 使用 AI SDK[7] 配合 ollama adapter[8]

Python Agents SDK 使用 LiteLLM 的示例:

代码语言:javascript
复制
import asyncio
from agents import Agent, Runner, function_tool, set_tracing_disabled
from agents.extensions.models.litellm_model import LitellmModel

set_tracing_disabled(True)

@function_tool
def get_weather(city: str):
    print(f"[debug] getting weather for {city}")
    returnf"The weather in {city} is sunny."

asyncdef main(model: str, api_key: str):
    agent = Agent(
        name="Assistant",
        instructions="You only respond in haikus.",
        model=LitellmModel(model="ollama/gpt-oss:120b", api_key=api_key),
        tools=[get_weather],
    )

    result = await Runner.run(agent, "What's the weather in Tokyo?")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

现在你可以在本地完全离线运行 OpenAI 的模型,同时保持与现有代码的兼容性。

参考资料

[1]

下载链接: https://ollama.com/download

[2]

Python: https://github.com/ollama/ollama-python

[3]

JavaScript: https://github.com/ollama/ollama-js

[4]

Hugging Face 的 Responses.js 代理: https://github.com/huggingface/responses.js

[5]

运行我们的示例 Python 服务器,以 Ollama 作为后端: https://github.com/openai/gpt-oss?tab=readme-ov-file#responses-api

[6]

LiteLLM: https://openai.github.io/openai-agents-python/models/litellm/

[7]

AI SDK: https://openai.github.io/openai-agents-js/extensions/ai-sdk/

[8]

ollama adapter: https://ai-sdk.dev/providers/community-providers/ollama

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI工程化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模型版本和硬件要求
  • 安装和设置
  • 开始对话
  • 通过 API 使用
  • 工具调用功能
  • Responses API 支持
  • 与 Agents SDK 集成
    • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档