Ollama适配Anthropic API实操指南:用Claude Code调用开源模型

工具2周前发布 小马良
40 0

Ollama自v0.14.0版本起,正式兼容Anthropic Messages API,这一更新实现了关键突破——让Anthropic旗下的Claude Code智能编码工具,可直接与Ollama支持的开源模型配合使用。无论是本地部署的开源模型,还是通过ollama.com连接的云模型,都能借助这一适配方案,在终端或应用中高效运行,无需依赖Anthropic官方专属服务。

Ollama适配Anthropic API实操指南:用Claude Code调用开源模型

核心前提:Ollama与Claude Code适配基础

本次适配的核心价值,在于打通了Claude Code与开源模型的连接通道。Claude Code作为Anthropic推出的终端端智能编码工具,原本主要对接Anthropic官方模型,而Ollama的兼容性更新,使其可无缝调用Ollama生态内的各类开源模型(本地/云端均可),且操作流程简单,无需复杂的二次开发。

关键要求:Ollama版本需为v0.14.0及以上;建议选用具备64k令牌上下文长度的模型(本地模型需手动配置,Ollama云模型默认以完整上下文长度运行),以保障编码、多轮对话等场景的流畅性。

快速上手:用Ollama运行Claude Code(三步搞定)

以下流程覆盖主流操作系统,步骤清晰可直接落地,适合各类技术背景的使用者参考。

第一步:安装Claude Code

根据自身操作系统,复制对应命令执行安装,全程无需复杂配置,一键完成部署:

macOS、Linux、WSL系统:打开终端输入以下命令


curl -fsSL https://claude.ai/install.sh   | bash

Windows PowerShell系统:以管理员身份打开PowerShell,输入以下命令


irm https://claude.ai/install.ps1   | iex

Windows CMD系统:打开CMD终端,输入以下命令


curl -fsSL https://claude.ai/install.cmd   -o install.cmd && install.cmd && del install.cmd

第二步:配置Ollama连接参数

安装完成后,需配置环境变量,让Claude Code识别并连接Ollama服务。核心配置仅需2个环境变量,操作如下:


export ANTHROPIC_AUTH_TOKEN=ollama  # 认证令牌固定填写ollama,无需修改
export ANTHROPIC_BASE_URL=http://localhost:11434  # Ollama默认本地服务地址

提示:环境变量配置后立即生效,若后续无法连接Ollama,可检查本地Ollama服务是否正常运行(终端输入ollama --version验证)。

第三步:调用Ollama模型运行Claude Code

配置完成后,可直接通过命令行调用本地或云端模型,启动Claude Code进行编码工作:

调用本地模型(以gpt-oss:20b为例)


claude --model gpt-oss:20b

调用云端模型(以glm-4.7:cloud为例)


claude --model glm-4.7:cloud

推荐模型:适配Claude Code编码场景

结合编码场景的核心需求(语法准确性、代码生成效率、上下文理解能力),整理了适配性最优的本地与云模型,可根据自身使用场景(本地离线/云端高效)选择:

1. 本地模型(适合隐私保护、离线使用)

  • gpt-oss:20b:参数量适中,编码适配性强,支持多语言代码生成,适合常规开发场景;
  • qwen3-coder:专为编码优化,对Python、JavaScript等主流语言支持度高,代码片段生成准确率高。

2. 云模型(适合高效调用、无需本地部署)

  • glm-4.7:cloud:上下文处理能力强,支持复杂代码逻辑生成,响应速度快;
  • minimax-m2.1:cloud:编码容错率高,适合新手使用,同时支持简单的工具调用场景。

Anthropic SDK集成:现有应用快速适配Ollama

若已有基于Anthropic SDK开发的应用,无需重构代码,仅需修改基础URL,即可快速连接Ollama服务(API密钥需填写但会被忽略)。以下为Python、JavaScript两种主流语言的适配示例:

1. Python语言适配示例


import anthropic

# 初始化客户端,修改base_url指向本地Ollama服务
client = anthropic.Anthropic(
    base_url='http://localhost:11434',
    api_key='ollama',  # 必须填写,仅用于格式兼容,实际无认证作用
)

# 调用模型生成代码(示例:检查数字是否为质数的函数)
message = client.messages.create(
    model='qwen3-coder',  # 选用适配的编码模型
    messages=[
        {'role': 'user', 'content': '写一个检查数字是否为质数的函数'}
    ]
)
print(message.content[0].text)  # 输出模型生成的代码结果

2. JavaScript语言适配示例


import Anthropic from '@anthropic-ai/sdk'

// 初始化客户端
const anthropic = new Anthropic({
  baseURL: 'http://localhost:11434',  // 指向本地Ollama服务地址
  apiKey: 'ollama',  // 格式兼容必填,无实际认证意义
})

// 异步调用模型生成代码
const message = await anthropic.messages.create({
  model: 'qwen3-coder',
  messages: [{ role: 'user', content: '写一个检查数字是否为质数的函数' }],
})

console.log(message.content[0].text);  // 打印代码结果

进阶功能:模型工具调用(与外部系统交互)

适配Anthropic API后,Ollama模型可通过工具调用功能与外部系统交互(如获取天气、网络搜索等),以下为完整实操示例(以获取天气为例):


import anthropic

client = anthropic.Anthropic(
    base_url='http://localhost:11434',
    api_key='ollama',
)

# 调用模型+工具,查询旧金山天气
message = client.messages.create(
    model='qwen3-coder',
    tools=[  # 定义工具信息(名称、描述、输入参数)
        {
            'name': 'get_weather',
            'description': '获取指定地点的当前天气',
            'input_schema': {
                'type': 'object',
                'properties': {
                    'location': {
                        'type': 'string',
                        'description': '城市和州,例如 San Francisco, CA'
                    }
                },
                'required': ['location']  # 必传参数
            }
        }
    ],
    messages=[{'role': 'user', 'content': "旧金山的天气怎么样?"}]
)

# 解析工具调用结果
for block in message.content:
    if block.type == 'tool_use':
        print(f'工具: {block.name}')
        print(f'输入: {block.input}')

工具调用核心价值:让模型突破本地能力限制,实现与外部系统的联动(如网络搜索、接口调用等),拓展编码与交互场景。

Ollama适配Anthropic API支持的核心功能

目前适配方案已覆盖Anthropic API的核心功能,可满足编码、对话、工具联动等主流使用场景,完整功能列表如下:

  • 基础功能:消息发送与多轮对话(支持连续交互,上下文衔接流畅);
  • 进阶功能:流式传输(实时返回结果,无需等待完整响应)、系统提示(自定义模型行为);
  • 扩展功能:工具调用/函数调用(联动外部系统)、扩展思考(模型自主优化响应逻辑)、视觉支持(图像输入识别)。

有关支持功能的完整说明及配置细节,可参考Anthropic 兼容性文档

© 版权声明

相关文章

暂无评论

none
暂无评论...