# ผู้ให้บริการ

Clew รองรับ 27 ผู้ให้บริการ AI พร้อมชั้น adapter ที่เป็นหนึ่งเดียว ตั้งค่าคีย์ API ของคุณเป็นตัวแปรสภาพแวดล้อมและสลับระหว่างผู้ให้บริการได้ทันทีด้วย `/model`

การตั้งค่าผู้ให้บริการประกาศใน `src/services/ai/providers.json` ProviderManager จัดการการแก้ไขคีย์ API, เลือกโมเดล, และจัดการการตั้งค่าผู้ให้บริการ

## ผู้ให้บริการทั้งหมด

ผู้ให้บริการ | คีย์สภาพแวดล้อม | โมเดลเริ่มต้น | หมายเหตุ
--- | --- | --- | ---
Anthropic | `ANTHROPIC_API_KEY` | claude-sonnet-4-7 | รองรับ Claude พื้นเมือง พร้อมการเรียกใช้เครื่องมือและการใช้เหตุผล บริบท: 1M โทเค็น
OpenAI | `OPENAI_API_KEY` | gpt-5.5 | GPT-5.5, GPT-5.5 Pro, GPT-5.4 Mini บริบท: 1M+ โทเค็น
Google | `GOOGLE_API_KEY` | gemini-3.1-flash | Gemini 3.1 Flash, Pro บริบท: สูงสุด 2M โทเค็น
DeepSeek | `DEEPSEEK_API_KEY` | deepseek-v4-pro | DeepSeek V4 Pro, V4 Flash บริบท: 1M โทเค็น สถาปัตยกรรม MoE
OpenRouter | `OPENROUTER_API_KEY` | — | 100+ โมเดลผ่าน API ที่เข้ากับ OpenAI
Ollama (Local) | `OLLAMA_API_KEY` | llama3.3 | โมเดลท้องถิ่นผ่านเซิร์ฟเวอร์ Ollama ที่ `http://localhost:11434/v1`
xAI | `XAI_API_KEY` | grok-4-20 | Grok 4.20, Grok 4 บริบท: 128K โทเค็น
Mistral | `MISTRAL_API_KEY` | mistral-small-latest | Mistral Large 4, Small 4, Ministral 3 14B
Groq | `GROQ_API_KEY` | — | Llama 4 70B, 8B การอนุมานเร็ว บริบท: 128K โทเค็น
Cohere | `COHERE_API_KEY` | command-r-plus | Command R+ 128K context ไม่มี vision
GitHub Copilot | `COPILOT_GITHUB_TOKEN` | gpt-5.5 | เข้าถึงผ่าน GitHub token รวมโมเดล Claude และ GPT
KiloCode | `KILOCODE_API_KEY` | kilo-auto/free | เกตเวย์ที่มี 500+ โมเดล รวมระดับฟรี

## การเลือกผู้ให้บริการ

ProviderManager จัดการผู้ให้บริการที่ใช้งานโดย:

1. สแกนตัวแปรสภาพแวดล้อมสำหรับคีย์ API ที่ตั้งค่า
2. โหลดข้อมูลเมตาผู้ให้บริการจาก `providers.json`
3. แก้ไขชื่อโมเดลเป็นตัวระบุเฉพาะของผู้ให้บริการ
4. ใช้ชั้น adapter สำหรับผู้ให้บริการที่ไม่ใช่ Anthropic

## ชั้น Adapter

ผู้ให้บริการที่ไม่ใช่ Anthropic ผ่าน adapters ที่ปรับมาตรฐาน:

- Content blocks — แปลงข้อความ, tool_use, tool_result, thinking block
- Tool calls — แยกวิเคราะห์รูปแบบผู้ให้บริการต่างๆ
- Streaming chunks — การปรับมาตรฐานต่อชิ้นสำหรับการแสดงผลแบบเรียลไทม์
- Errors — การปรับมาตรฐานพร้อมการจัดการ retry/rate-limit

## การสลับขณะรันไทม์

    /model                          # ตัวเลือกโมเดลแบบโต้ตอบ
    /model list                     # แสดงโมเดลทั้งหมดที่มี
    /model claude-sonnet-4-7        # สลับไปยังโมเดลที่ระบุ
    /provider-select                 # แสดงหรือเปลี่ยนผู้ให้บริการ