หนึ่ง provider ต่อหนึ่งโปรโตคอล
โมเดล Claude ตอบแบบ native ผ่าน Anthropic Messages โดยยังคง extended thinking และ prompt caching ไว้ครบ ส่วนโมเดลอื่นในแคตตาล็อกใช้งานได้ผ่าน OpenAI chat ให้ชี้แต่ละ provider ไปที่ base URL ที่โปรโตคอลนั้นต้องการ
pi coding agent
pi อ่าน custom provider จาก ~/.pi/agent/models.json โดย Aiduct รองรับทุก API ที่ pi ใช้ แต่ละโมเดลจึงใช้โปรโตคอลที่เหมาะที่สุดได้
{
"providers": {
"aiduct": {
"baseUrl": "https://api.aiduct.ai/v1",
"api": "openai-completions",
"apiKey": "$AIDUCT_API_KEY",
"models": [{ "id": "deepseek-v4.1-flash" }, { "id": "glm-5.3" }]
},
"aiduct-claude": {
"baseUrl": "https://api.aiduct.ai",
"api": "anthropic-messages",
"apiKey": "$AIDUCT_API_KEY",
"models": [{ "id": "claude-sonnet-5", "input": ["text", "image"] }]
}
}
}การตั้งค่า
models.json
โปรโตคอล
Messages + Chat
การเรียกเก็บเงิน
Published pricing
โมเดล Claude ตอบแบบ native ผ่าน Anthropic Messages โดยยังคง extended thinking และ prompt caching ไว้ครบ ส่วนโมเดลอื่นในแคตตาล็อกใช้งานได้ผ่าน OpenAI chat ให้ชี้แต่ละ provider ไปที่ base URL ที่โปรโตคอลนั้นต้องการ
pi จะดึงค่า $AIDUCT_API_KEY จาก environment ตอนส่ง request ดังนั้น models.json จึงไม่มีข้อมูลลับ
FAQ
openai-completions และ openai-responses ใช้ https://api.aiduct.ai/v1 ส่วน anthropic-messages และ google-generative-ai ใช้ https://api.aiduct.ai เพราะ SDK ของทั้งสองจะเติม path ของเวอร์ชันให้เอง
ได้ เพิ่ม provider ที่ใช้ API google-generative-ai กับ root ของเกตเวย์ หรือเข้าถึงโมเดล Gemini ใดก็ได้ผ่าน openai-completions
ได้ ระดับของ pi ตั้งแต่ off ถึง max จะแมปไปยังการควบคุม reasoning ของแต่ละโมเดล และระดับที่โมเดลไม่มีจะถูกปัดขึ้นไปยังระดับที่ใกล้ที่สุดที่โมเดลมี