ã¯ããã«
Ollama v0.14以éã§Anthropic Messages APIäºæãšã³ããã€ã³ãã远å ãããClaude CodeãããŒã«ã«ã¢ãã«ã«çŽçµã§ããããã«ãªããŸããããã®èšäºã§ã¯ãOllamaã®ã€ã³ã¹ããŒã«ããå®éã«Claude Codeã§ããŒã«ã«ã¢ãã«ã«å¿çããããšãããŸã§ããã¯ã©ãŠãç°å¢äžã§äžéã宿©æ€èšŒããèšé²ããŸãšããŸãã
ãã®èšäºã§åŠã¹ãããš
- Ollamaã®Anthropicäºæãšã³ããã€ã³ãïŒ
/v1/messagesïŒã®çéç¢ºèªæ¹æ³ - Claude CodeãããŒã«ã«ã¢ãã«ãžåããç°å¢å€æ°ã®èšå®
- çŽ ã®ç¶æ
ã§ã¯åããã
--bareãªãã·ã§ã³ãå¿ èŠã ã£ãçç±
察象èªè
Claude Codeã䜿ã£ãŠããŠãAPI課éãªãã§ããŒã«ã«ã¢ãã«ãšã®çµã¿åããã詊ãããéçºè ã察象èªè ãšããŸãã
åæç°å¢
- OS: Ubuntu 24.04ïŒã¯ã©ãŠãå®è¡ç°å¢ã»CPUã®ã¿ãGPUãªãïŒ
- Ollama: v0.32.5ïŒã€ã³ã¹ããŒã«æç¹ã®ææ°çãAnthropicäºææ©èœã¯v0.14ã§è¿œå ïŒ
- Claude Code: v2.1.220
TL;DR
- Ollamaã¯HTTPãµãŒããŒãšããŠ
/v1/messagesãšã³ããã€ã³ããå ¬éãããªã¯ãšã¹ãã»ã¬ã¹ãã³ã¹ãšãã«Anthropicã®Messages API圢åŒã«å€æãã -
ANTHROPIC_BASE_URLãšANTHROPIC_API_KEYãå·®ãæ¿ããã ãã§Claude CodeãããŒã«ã«ã¢ãã«ã«åãããã - ãã ãéåžžèµ·åã ãšCLAUDE.mdãããŒã«å®çŸ©ãå«ã巚倧ãªã·ã¹ãã ããã³ãããããŒã«ã«ã¢ãã«ã®ã³ã³ããã¹ãé·ãè¶
ãã2ã¿ãŒã³ç®ã§500ãšã©ãŒã«ãªã£ãã
--bareãªãã·ã§ã³ã§ã·ã¹ãã ããã³ãããæå°åãããšå®å®ãã
èæ¯ã»èª²é¡
Claude Codeã¯ãããŸã§Anthropicå
¬åŒã®APIãBedrock/Vertexçµç±ã§ã®å©çšãåºæ¬ã§ãããŒã«ã«LLMãšçµã¿åãããã«ã¯LiteLLMã®ãããªãããã·å±€ã§API圢åŒã倿ããå¿
èŠããããŸãããOllama v0.14ã§Anthropic Messages APIäºæã® /v1/messages ãšã³ããã€ã³ãã远å ãããããšã§ããã®å€æå±€ãæãŸãã«Claude CodeããçŽæ¥ããŒã«ã«ã¢ãã«ãå©ããã¯ãã§ã1ãå®éã«ã©ããŸã§çŽ çŽã«åãã®ããã¯ã©ãŠãç°å¢ã§æ€èšŒããŸããã
ãã£ãããš
ã¹ããã1: Ollamaã®ã€ã³ã¹ããŒã«ãšèµ·å
ã¯ã©ãŠãç°å¢ã«Ollamaãã€ã³ã¹ããŒã«ããŸããå ¬åŒã€ã³ã¹ããŒã«ã¹ã¯ãªããã¯zstdã³ãã³ãã«äŸåããŠãããæªã€ã³ã¹ããŒã«ã ãšä»¥äžã®ãšã©ãŒã§æ¢ãŸããŸãã
$ curl -fsSL https://ollama.com/install.sh -o /tmp/ollama-install.sh
$ sh /tmp/ollama-install.sh
ERROR: This version requires zstd for extraction. Please install zstd and try again:
- Debian/Ubuntu: sudo apt-get install zstd
apt-get install -y zstd ã§äŸåãè§£æ¶ããŠããåå®è¡ãããšãGPUãªãç°å¢ã§ãåé¡ãªãã€ã³ã¹ããŒã«ãå®äºããŸããã
$ apt-get install -y zstd
$ sh /tmp/ollama-install.sh
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
ãµãŒããŒãèµ·åããããŒãžã§ã³ã確èªããŸãã
$ ollama serve &
$ curl -s http://127.0.0.1:11434/api/version
{"version":"0.32.5"}
ã¹ããã2: Anthropicäºæãšã³ããã€ã³ãã®çé確èª
ã¢ãã«ãäœãèœãšããŠããªãç¶æ
ã§ /v1/messages ã«çŽæ¥POSTãããšã404ã§ã¯ãªã not_found_error ãšããAnthropic圢åŒã®ãšã©ãŒJSONãè¿ã£ãŠããŸãããããã¯ãšã³ããã€ã³ãèªäœã¯Anthropicã®ãªã¯ãšã¹ã圢åŒãæ£ããèªèããŠãããåã«ã¢ãã«ãæªååŸãªã ãã§ããããšã瀺ããŠããŸãã
$ curl -s -X POST http://127.0.0.1:11434/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: ollama" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"qwen3:0.6b","max_tokens":16,"messages":[{"role":"user","content":"hi"}]}'
{"type":"error","error":{"type":"not_found_error","message":"model 'qwen3:0.6b' not found"},"request_id":"req_38201b9adbd528a2b5af3c67"}
軜éã¢ãã« qwen3:0.6bïŒ523MBïŒãååŸããŠããåããªã¯ãšã¹ããéããšãAnthropic Messages APIãã®ãã®ã®å¿ç圢åŒïŒidã»type: "message"ã»contentã»usage.input_tokens/output_tokensïŒã§ã¬ã¹ãã³ã¹ãè¿ã£ãŠããŸããã
$ ollama pull qwen3:0.6b
$ curl -s -X POST http://127.0.0.1:11434/v1/messages \
-H "Content-Type: application/json" -H "x-api-key: ollama" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"qwen3:0.6b","max_tokens":50,"messages":[{"role":"user","content":"1+1ã¯äœã§ããïŒæ°åã ãçããŠ"}]}'
{"id":"msg_a6f0fa7121f3e4da4208d4e5","type":"message","role":"assistant",
"model":"qwen3:0.6b","content":[{"type":"thinking","thinking":"..."}],
"stop_reason":"max_tokens","usage":{"input_tokens":20,"output_tokens":50}}
content ã thinking ãããã¯ã§åãŸã£ãŠ max_tokens ã«éããŠããã®ã¯ãqwen3 ç³»ãããã©ã«ãã§æèéçšãåºåããã¢ãã«ã§ããããã§ããmax_tokens ãå¢ããããæèããªãã«ããããã³ããèšèšãå¿
èŠã«ãªãç¹ã¯å®éçšäžã®æ³šæç¹ãšããŠæ§ããŠãããŸãã
ã¹ããã3: Claude Codeããæ¥ç¶ãã
ããããClaude Codeæ¬äœããæ¥ç¶ããŸããOllamaå
¬åŒããã°ã®æé ã©ãã ANTHROPIC_BASE_URL ãšèªèšŒçšã®ããŒã¯ã³ãèšå®ãã--model ã§ããŒã«ã«ã¢ãã«åãæå®ããŸã1ã
æåã« ANTHROPIC_AUTH_TOKEN ã䜿ãéåžžèµ·åã§è©Šãããšããã60ç§ã®ã¿ã€ã ã¢ãŠãã§ããã»ã¹ãçµäºããŠããŸããŸãããOllamaåŽã®ãã°ãèŠããšãCLAUDE.mdãããŒã«å®çŸ©ãå«ãã·ã¹ãã ããã³ããã26,684ããŒã¯ã³ã«ãéããã¢ãã«ã®ã³ã³ããã¹ãé·ïŒæ¢å®4,096ããŒã¯ã³ïŒã«åãŸãã2,050ããŒã¯ã³ãžåãè©°ãããããã®ç¶æ
ã§éã£ã2åç®ã®ãªã¯ãšã¹ãã500ãšã©ãŒã«ãªã£ãŠããŸããã
time=... level=WARN msg="truncating input prompt" limit=2050 prompt=26684 keep=4 new=2050
[GIN] ... | 500 | 2.569362236s | POST "/v1/messages?beta=true"
ããã§ --bare ãªãã·ã§ã³ïŒããã¯ã»CLAUDE.mdèªåèªã¿èŸŒã¿ã»ãã©ã°ã€ã³åæãªã©ãäžæ¬ã¹ãããããæå°ã¢ãŒãïŒã«åãæ¿ããèªèšŒã ANTHROPIC_API_KEY ã«å€æŽãããšãããæ£ããå¿çãè¿ã£ãŠããŸããã
$ ANTHROPIC_BASE_URL="http://127.0.0.1:11434" \
ANTHROPIC_API_KEY="ollama" \
claude --bare -p "1+1ã¯ïŒæ°åã ãçããŠ" --model qwen3:0.6b
2
ããããã€ã³ã
ãã€ã³ã1: éåžžã¢ãŒãã¯ã·ã¹ãã ããã³ããã倧ãããã
Claude Codeã®éåžžèµ·åã¯CLAUDE.mdã»ããŒã«å®çŸ©ã»ããã¯æ
å ±ãå«ãæ°äžããŒã¯ã³èŠæš¡ã®ã·ã¹ãã ããã³ãããæ¯åéä¿¡ããŸããOllamaã®ããã©ã«ãã³ã³ããã¹ãé·ïŒ4,096ããŒã¯ã³ïŒã¯ããã倧ããäžåããããåãè©°ãåŸã®ç¶æ
ã§ãã«ãã¿ãŒã³ã®ããåãã«å
¥ããš500ãšã©ãŒã§èœã¡ãŸãããããŒã«ã«ã¢ãã«ãšçµã¿åãããå Žå㯠--bare ã§ã·ã¹ãã ããã³ãããæå°åããããOLLAMA_CONTEXT_LENGTH ã§ã³ã³ããã¹ãé·ãæ¡åŒµããå¿
èŠããããŸãã
ãã€ã³ã2: ããŒã«åŒã³åºãã䌎ãå¿çã¯æ¥µç«¯ã«é ã
CPUã®ã¿ã®ç°å¢ïŒ15.7GB RAMïŒã§ qwen3:0.6b ãåãããšãããã¹ãçæé床ã¯çŽ11ã17ããŒã¯ã³/ç§ã§ãããåçŽãªäžåäžçïŒmax_tokens: 50ïŒã¯æ°ç§ã§è¿ããŸããããã³ãŒãçæã®ããã«ã¢ãã«ãããŒã«åŒã³åºãã®å€æãæãå¯èœæ§ã®ããããã³ããã§ã¯ã1ã¿ãŒã³ã ãã§30ã60ç§ããããŸãããOllamaå
¬åŒããã°ã¯ãæäœ32KããŒã¯ã³ã®ã³ã³ããã¹ãé·ãæšå¥šããšããŠããŸãã1ãã³ã³ããã¹ããåºããã»ã©1ããŒã¯ã³ãããã®åŠçæéã䌞ã³ããããCPUã®ã¿ã®ç°å¢ã§å®çšé床ãåºãã«ã¯è»œéã¢ãã«éžã³ãšããã³ããã®æå°åãåæã«ãªããŸãã
èè èŠç¹ã®çºèŠãã€ã³ã
å
¬åŒããã°ã®æé ã¯ãç°å¢å€æ°ã2ã€èšå®ã㊠claude --model xxx ãå©ãã ãããšã·ã³ãã«ã«æžãããŠããŸãããå®éã«ã¯Claude CodeåŽãçæãã巚倧ãªã·ã¹ãã ããã³ãããšããŒã«ã«ã¢ãã«ã®å°ããã³ã³ããã¹ãé·ãã¶ã€ããåé¡ãæåã®äžæã§çºçããŸããã--bare ãªãã·ã§ã³ã¯ããšããšããã¯ã»CLAUDE.mdèªã¿èŸŒã¿ãã¹ãããããããã®æ©èœã§ãããããŒã«ã«ã¢ãã«æ¥ç¶ã§ã¯ãã·ã¹ãã ããã³ãããå°ããä¿ã€ããã®å®è³ªçãªå¿
é ãªãã·ã§ã³ããšããŠæ©èœããããšããçµã¿åããã¯å®éã«åãããŠã¿ããŸã§æ°ã¥ããŸããã§ããã
ãŸãšã
- Ollama v0.14以éã¯
/v1/messagesã§Anthropic Messages APIäºæãæäŸããŠãããcurlã§çŽæ¥å©ããŠãAnthropic圢åŒã®ã¬ã¹ãã³ã¹ãè¿ã£ãŠããããšã確èªããŸãã - Claude Codeã¯
ANTHROPIC_BASE_URL/ANTHROPIC_API_KEYã®å·®ãæ¿ãã ãã§ããŒã«ã«ã¢ãã«ã«åããããŸãããéåžžèµ·åã®ã·ã¹ãã ããã³ããã¯ããŒã«ã«ã¢ãã«ã®æ¢å®ã³ã³ããã¹ãé·ãç°¡åã«è¶ ãããã--bareãå®è³ªå¿ é ã§ãã - CPUã®ã¿ã®ç°å¢ã§ã¯åçŽãªå¿çã¯æ°ç§ã§è¿ãäžæ¹ãããŒã«åŒã³åºãã䌎ãå¯èœæ§ã®ããããã³ããã¯1ã¿ãŒã³30ç§ä»¥äžãããããšããããäœæé床ã¯è»œéã¢ãã«ã§ãéãã§ã
é¢é£èšäº
- Claude Codeã®/rewindãäºæ ã£ã3æéã1ã³ãã³ãã§å·»ãæ»ããä»çµã¿ã ã£ã
- ã人éã®å ¥åã§ã¯ãªããéç¥ã®çç±ãClaude Code 2.1.205ã§æ°ã¥ãã
- Claude Codeã®æ°èšå®smallã¯ãå®ã¯äžéã§ã¯ãªãããé¡ããã ã£ã
åèãªã³ã¯
- Claude Code with Anthropic API compatibility - Ollama BlogïŒã»ããã¢ããæé ã»æšå¥šã³ã³ããã¹ãé·ã®åºå žïŒ
- Anthropic compatibility - Ollama DocsïŒãšã³ããã€ã³ã仿§ã»å¯Ÿå¿æ©èœäžèЧïŒ
- ollama/ollama v0.14.0 Release NotesïŒããŒãžã§ã³æ å ±ã®åºå žïŒ
-
Claude Code with Anthropic API compatibility - Ollama BlogïŒ2026幎æç¹ãæäœ32KããŒã¯ã³ã®ã³ã³ããã¹ãé·ãæšå¥šããæšã®èšèŒããïŒ â© â©2 â©3