Skip to content

hydroCoderClaud/Ollama2Anthropic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Ollama 转 Anthropic API 代理服务

将 Ollama 服务(http://localhost:11434)转换为 Anthropic API 格式(http://localhost:8000),让任何支持 Anthropic API 的工具都能使用 Ollama 的本地或远程模型。

架构说明

┌─────────────────────┐      ┌─────────────────────┐      ┌─────────────────────┐
│  使用 Anthropic     │      │  本代理服务          │      │  Ollama 服务         │
│  API 的客户端工具    │ ───▶ │  (localhost:8000)   │ ───▶ │  (localhost:11434)  │
│                     │      │                     │      │                     │
│  Anthropic API 格式  │      │  协议转换 + 模型映射  │      │  Ollama API 格式     │
└─────────────────────┘      └─────────────────────┘      └─────────────────────┘
                                                                     │
                                           ┌─────────────────────────┴─────────────────────────┐
                                           │                                                 │
                                           ▼                                                 ▼
                                  ┌─────────────────────┐                           ┌─────────────────────┐
                                  │  本地模型            │                           │  远程模型 (Cloud)    │
                                  │  gemma3:4b, etc.    │                           │  deepseek-v3.1:671b  │
                                  └─────────────────────┘                           └─────────────────────┘

快速开始

1. 安装 Ollama

访问 https://ollama.ai 下载并安装 Ollama。

2. 启动 Ollama 服务

# 确认 Ollama 服务运行
ollama serve

# 查看可用模型
ollama list

Ollama 默认监听 http://localhost:11434

3. 启动代理服务

python anthropic_ollama_proxy.py

代理将启动在 http://localhost:8000

4. 配置客户端工具

设置以下环境变量:

环境变量 说明 示例值
ANTHROPIC_BASE_URL 代理服务地址 http://localhost:8000
ANTHROPIC_API_TOKEN API 密钥(任意字符即可,代理不验证) local
ANTHROPIC_MODEL 模型名称(见下文映射说明) gemma3:4b

环境变量配置

设置方式

macOS/Linux:

export ANTHROPIC_BASE_URL=http://localhost:8000
export ANTHROPIC_API_TOKEN=local
export ANTHROPIC_MODEL=gemma3:4b

# 然后启动你的工具

Windows PowerShell:

$env:ANTHROPIC_BASE_URL="http://localhost:8000"
$env:ANTHROPIC_API_TOKEN="local"
$env:ANTHROPIC_MODEL="gemma3:4b"

Windows CMD:

set ANTHROPIC_BASE_URL=http://localhost:8000
set ANTHROPIC_API_TOKEN=local
set ANTHROPIC_MODEL=gemma3:4b

环境变量与模型的关系

ANTHROPIC_MODEL 决定了代理收到什么模型名

ANTHROPIC_MODEL=gemma3:4b  (你设置的环境变量)
        ↓
客户端发送: { "model": "gemma3:4b", ... }
        ↓
代理收到 "gemma3:4b"
        ↓
查 MODEL_MAPPING 找到映射 → 转发给 Ollama

模型映射配置

当前映射表

编辑 anthropic_ollama_proxy.py 中的 MODEL_MAPPING

MODEL_MAPPING = {
    # Anthropic 风格名称 → Ollama 模型名
    "claude-sonnet-4-6": "gemma3:4b",
    "claude-opus-4-6": "gemma3:4b",
    "claude-haiku-4-5": "gemma3:4b",

    # 直接映射(环境变量设置什么,Ollama 就用什么)
    "gemma3:4b": "gemma3:4b",
    "deepseek-v3.1:671b-cloud": "deepseek-v3.1:671b-cloud",
}

DEFAULT_MODEL = "gemma3:4b"  # 未匹配时的默认模型

映射逻辑

ANTHROPIC_MODEL 环境变量
        │
        ▼
┌─────────────────┐
│ 是否在 MODEL_MAPPING 中? │
└─────────────────┘
    │           │
   是          否
    │           │
    ▼           ▼
使用映射值    使用 DEFAULT_MODEL
    │           │
    └───────┬───┘
            ▼
    转发给 Ollama

添加新映射

直接透传模式:

"qwen2.5-coder:14b": "qwen2.5-coder:14b"

环境变量:ANTHROPIC_MODEL=qwen2.5-coder:14b

别名映射模式:

"my-model": "gemma3:4b"

环境变量:ANTHROPIC_MODEL=my-model 实际运行:gemma3:4b

支持的模型类型

本地模型

Ollama 直接下载运行的模型:

ollama pull gemma3:4b
ollama pull qwen2.5-coder:7b
ollama pull qwen2.5-coder:14b

远程模型 (Cloud)

Ollama 配置的远程 API 模型,例如:

  • deepseek-v3.1:671b-cloud

代理不关心模型实际在哪里运行,只负责转发请求。

API 转换说明

Anthropic API Ollama API 说明
thinking 参数 移除 Ollama 不支持
system (数组) 提取第一条 格式转换
content (数组) 拼接为字符串 提取 text 内容
beta 查询参数 忽略 不支持
SSE 流式响应 兼容转换 实时流式输出

故障排查

检查 Ollama 服务

# 查看 Ollama 是否运行
curl http://localhost:11434/api/tags

# 查看具体模型信息
ollama show gemma3:4b

检查代理服务

# 测试代理健康状态
curl http://localhost:8000/health

# 测试聊天接口
curl -X POST http://localhost:8000/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: local" \
  -d '{"model":"gemma3:4b","messages":[{"role":"user","content":"hello"}]}'

Windows 使用

# 启动代理
python anthropic_ollama_proxy.py

# 后台运行
Start-Process python -ArgumentList "anthropic_ollama_proxy.py" -NoNewWindow

注意事项

  1. 模型必须在 Ollama 中可用
  2. 修改映射后重启代理生效
  3. 确保 8000 端口未被占用
  4. 远程模型需要 Ollama 配置支持

许可证

MIT License

About

一个Ollama转Anthropic代理端点的工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors