如何使用Ollama在本地运行gpt-oss

发布于:2025-08-08 ⋅ 阅读:(13) ⋅ 点赞:(0)

想在自己的硬件上运行OpenAI的GPT-OSS模型?本指南将手把手教你如何用Ollama本地部署GPT-OSS-20B或GPT-OSS-120B,实现离线对话、API调用,甚至连接Agents SDK。

注意:本指南针对消费级硬件(如PC/Mac)运行模型的情况。

选择模型

Ollama支持两种规格的GPT-OSS模型:

  • gpt-oss-20b
    • 较小模型
    • 建议≥16GB显存或统一内存
    • 适合高端消费级GPU或苹果M系列芯片
  • gpt-oss-120b
    • 完整大模型
    • 建议≥60GB显存或统一内存
    • 适合多GPU或工作站配置
注意事项:
  • 当前仅提供MXFP4量化版本
  • 显存不足时可卸载到CPU运行(但速度会降低)

快速安装

  1. 安装Ollama → 下载地址
  2. 拉取所需模型:
# 20B版本
ollama pull gpt-oss:20b
 
# 120B版本
ollama pull gpt-oss:120b

开始对话

通过应用或终端启动聊天:

ollama run gpt-oss:20b

Ollama默认采用OpenAI和谐模式的对话模板,直接输入内容即可交流。

API调用

Ollama提供兼容OpenAI的Chat Completions API,无需修改即可使用OpenAI SDK。Python示例:

from openai import OpenAI
 
client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama本地API
    api_key="ollama"                       # 虚拟密钥
)
 
response = client.chat.completions.create(
    model="gpt-oss:20b",
    messages=[
        {"role": "system", "content": "你是一个助人为乐的AI助手。"},
        {"role": "user", "content": "解释什么是MXFP4量化?"}
    ]
)
 
print(response.choices[0].message.content)

熟悉OpenAI SDK的用户可无缝切换。也可直接使用Ollama的Python/JavaScript SDK。

工具调用

Ollama支持:

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

函数调用示例:

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定城市当前天气",
            "parameters": {
                "type": "object",
                "properties": {"city": {"type": "string"}},
                "required": ["city"]
            },
        },
    }
]
 
response = client.chat.completions.create(
    model="gpt-oss:20b",
    messages=[{"role": "user", "content": "柏林现在天气如何?"}],
    tools=tools
)
 
print(response.choices[0].message)

由于模型通过思维链(CoT)实现工具调用,需将API返回的推理结果反馈给工具调用接口,循环直至获得最终答案。

Responses API 替代方案

目前 Ollama 尚未原生支持 Responses API。

若您希望使用 Responses API,可以通过 Hugging Face 的 Responses.js 代理工具将 Chat Completions 转换为 Responses API 格式。

对于基础使用场景,您也可以运行我们提供的 Python 示例服务器(以 Ollama 为后端)。该服务器仅为基础示例,暂未实现…

pip install gpt-oss
python -m gpt_oss.responses_api.serve \
    --inference_backend=ollama \
    --checkpoint gpt-oss:20b

代理SDK集成

想在OpenAI代理SDK中使用gpt-oss?

两种代理SDK都允许您覆盖OpenAI基础客户端,通过聊天补全功能指向Ollama,或使用Responses.js代理本地模型。您也可以使用内置功能将代理SDK指向第三方模型。

以下是使用LiteLLM的Python代理SDK示例:

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}")
    return f"The weather in {city} is sunny."
 
 
async def 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())

网站公告

今日签到

点亮在社区的每一天
去签到