APIOpenAI-compatible
OpenAI-mos CLI API
`/v1/models`, Chat Completions va Responses integratsiyasi.
Endpointlar
| Method | Path | Scope | Vazifa |
|---|---|---|---|
| GET | /v1/models | models:read | Key uchun ruxsat etilgan model aliaslari |
| POST | /v1/chat/completions | chat:write | Chat Completions, stream/non-stream |
| POST | /v1/responses | responses:write | Responses formatidagi inference |
Chat Completions
Non-stream request
curl -sS "$APP_URL/v1/chat/completions" \
-H "Authorization: Bearer $EDUBASE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: demo-chat-001' \
-d '{
"model": "gpt-main",
"messages": [{"role": "user", "content": "Salom!"}],
"stream": false
}'OpenAI SDK bilan
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.EDUBASE_API_KEY,
baseURL: `${process.env.EDUBASE_URL}/v1`,
});
const stream = await client.chat.completions.create({
model: "gpt-main",
messages: [{ role: "user", content: "Hisobotni qisqacha yozing" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Responses
Responses request
curl -N "$APP_URL/v1/responses" \
-H "Authorization: Bearer $EDUBASE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: demo-response-001' \
-d '{"model":"gpt-main","input":"3 ta asosiy xulosa bering","stream":true}'Moslik chegarasi
Endpointlar eng ko‘p ishlatiladigan OpenAI request/response va streaming semantikasini beradi, ammo providerning har bir eksperimental maydoni avtomatik qo‘llanmaydi. Unsupported capability request validatsiyasida rad qilinadi.
Public alias ishlating
Klient provider deployment nomini emas, EduBase model katalogidagi public aliasni yuboradi. Alias administratorga backend modelni klient kodini o‘zgartirmasdan almashtirish imkonini beradi.