Skip to content

Ollama มีความเข้ากันได้กับ Anthropic Messages API เพื่อช่วยเชื่อมต่อแอปพลิเคชันที่มีอยู่กับ Ollama รวมถึงเครื่องมืออย่าง Claude Code

การใช้งาน

ตัวแปรสภาพแวดล้อม

หากต้องการใช้ Ollama กับเครื่องมือที่ต้องการใช้ Anthropic API (เช่น Claude Code) ให้ตั้งค่าตัวแปรสภาพแวดล้อมเหล่านี้:

shell
export ANTHROPIC_AUTH_TOKEN=ollama  # จำเป็นแต่ไม่ใช้
export ANTHROPIC_BASE_URL=http://localhost:11434

ตัวอย่างพื้นฐานของ /v1/messages

ตัวอย่างการสตรีม

ตัวอย่างการเรียกใช้เครื่องมือ (Tool calling)

การใช้งานกับ Claude Code

Claude Code สามารถกำหนดค่าให้ใช้ Ollama เป็นแบ็กเอนด์ได้

โมเดลที่แนะนำ

สำหรับการใช้งานด้านการเขียนโค้ด โมเดลอย่าง glm-4.7 minimax-m2.1 และ qwen3-coder เป็นที่แนะนำ

ดาวน์โหลดโมเดลก่อนใช้งาน:

shell
ollama pull qwen3-coder

ข้อควรทราบ: Qwen 3 coder เป็นโมเดลที่มีพารามิเตอร์ 30B ต้องการ VRAM อย่างน้อย 24GB เพื่อให้ทำงานได้ลื่นไหล หากต้องการใช้ความยาวบริบทที่ยาวกว่านี้ จะต้องการ VRAM มากกว่า

shell
ollama pull glm-4.7:cloud

การตั้งค่าอย่างเร็ว

shell
ollama launch claude

คำสั่งนี้จะให้คุณเลือกโมเดล กำหนดค่า Claude Code โดยอัตโนมัติ และเปิดใช้งาน หากต้องการกำหนดค่าโดยไม่เปิดใช้งาน:

shell
ollama launch claude --config

การตั้งค่าด้วยตนเอง

ตั้งค่าตัวแปรสภาพแวดล้อมแล้วรัน Claude Code:

shell
ANTHROPIC_AUTH_TOKEN=ollama ANTHROPIC_BASE_URL=http://localhost:11434 claude --model qwen3-coder

หรือตั้งค่าตัวแปรสภาพแวดล้อมในโปรไฟล์เชลล์ของคุณ:

shell
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_BASE_URL=http://localhost:11434

จากนั้นรัน Claude Code ด้วยโมเดล Ollama ใดก็ได้:

shell
claude --model qwen3-coder

จุดสิ้นสุด (Endpoints)

/v1/messages

ฟีเจอร์ที่รองรับ

  • [x] ข้อความ
  • [x] สตรีม
  • [x] พรอมต์ระบบ
  • [x] การสนทนาหลายรอบ
  • [x] วิสชัน (รูปภาพ)
  • [x] เครื่องมือ (การเรียกใช้ฟังก์ชัน)
  • [x] ผลลัพธ์ของเครื่องมือ
  • [x] การคิด/การคิดแบบขยาย

ฟิลด์คำขอที่รองรับ

  • [x] model
  • [x] max_tokens
  • [x] messages
    • [x] เนื้อหาด่วน (content)
    • [x] เนื้อหารูปภาพ (content) (base64)
    • [x] อาร์เรย์ของบล็อกเนื้อหา
    • [x] บล็อก tool_use
    • [x] บล็อก tool_result
    • [x] บล็อก thinking
  • [x] system (สตริงหรืออาร์เรย์)
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] top_k
  • [x] stop_sequences
  • [x] tools
  • [x] thinking
  • [ ] tool_choice
  • [ ] metadata

ฟิลด์การตอบกลับที่รองรับ

  • [x] id
  • [x] type
  • [x] role
  • [x] model
  • [x] content (บล็อกข้อความ, tool_use, thinking)
  • [x] stop_reason (end_turn, max_tokens, tool_use)
  • [x] usage (input_tokens, output_tokens)

กิจกรรมการสตรีม

  • [x] message_start
  • [x] content_block_start
  • [x] content_block_delta (text_delta, input_json_delta, thinking_delta)
  • [x] content_block_stop
  • [x] message_delta
  • [x] message_stop
  • [x] ping
  • [x] error

โมเดล

Ollama รองรับทั้งโมเดลท้องถิ่นและโมเดลคลาวด์

โมเดลท้องถิ่น

ดึงโมเดลท้องถิ่นก่อนใช้งาน:

shell
ollama pull qwen3-coder

โมเดลท้องถิ่นที่แนะนำ:

  • qwen3-coder - เหมาะอย่างยิ่งสำหรับงานเขียนโค้ด
  • gpt-oss:20b - โมเดลอเนกประสงค์ที่ทรงพลัง

โมเดลคลาวด์

โมเดลคลาวด์สามารถใช้งานได้ทันทีโดยไม่ต้องดึง:

  • glm-4.7:cloud - โมเดลคลาวด์ประสิทธิภาพสูง
  • minimax-m2.1:cloud - โมเดลคลาวด์รวดเร็ว

ชื่อโมเดลเริ่มต้น

สำหรับเครื่องมือที่พึ่งพาชื่อโมเดล Anthropic เริ่มต้นอย่าง claude-3-5-sonnet ให้ใช้คำสั่ง ollama cp เพื่อคัดลอกชื่อโมเดลที่มีอยู่:

shell
ollama cp qwen3-coder claude-3-5-sonnet

หลังจากนั้น ชื่อโมเดลใหม่นี้สามารถระบุในฟิลด์ model:

shell
curl http://localhost:11434/v1/messages \
    -H "Content-Type: application/json" \
    -d '{
        "model": "claude-3-5-sonnet",
        "max_tokens": 1024,
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'

ความแตกต่างจาก Anthropic API

ความแตกต่างในการทำงาน

  • คีย์ API ถูกรับไว้แต่ไม่ได้รับการตรวจสอบความถูกต้อง
  • หัวข้อ anthropic-version ถูกรับไว้แต่ไม่ถูกใช้งาน
  • จำนวนโทเคนเป็นการประมาณการตามโทเคนไอเซอร์ของโมเดลพื้นฐาน

ฟีเจอร์ที่ไม่รองรับ

ฟีเจอร์ของ Anthropic API ที่ไม่รองรับในปัจจุบันมีดังนี้:

ฟีเจอร์คำอธิบาย
/v1/messages/count_tokensจุดสิ้นสุดสำหรับนับจำนวนโทเคน
tool_choiceการบังคับให้ใช้เครื่องมือที่กำหนดหรือปิดการใช้งานเครื่องมือ
metadataเมตาดาต้าในคำขอ (user_id)
การแคชพรอมต์บล็อก cache_control สำหรับแคชคำนำหน้า
API แบตช์/v1/messages/batches สำหรับการประมวลผลแบตช์แบบอะซิงโครนัส
การอ้างอิงบล็อกเนื้อหา citations
การรองรับ PDFบล็อกเนื้อหา document ที่ใช้กับไฟล์ PDF
ข้อผิดพลาดที่ส่งจากเซิร์ฟเวอร์กิจกรรม error ระหว่างการสตรีม (ข้อผิดพลาดจะส่งคืนสถานะ HTTP)

การรองรับบางส่วน

ฟีเจอร์สถานะ
เนื้อหารูปภาพรองรับรูปภาพ Base64; ไม่รองรับรูปภาพจาก URL
การคิดแบบขยายรองรับพื้นฐาน; ค่า budget_tokens ถูกรับไว้แต่ไม่บังคับใช้