OmniRoute/docs/i18n/id/API_REFERENCE.md
diegosouzapw 369a0141de docs(i18n): add Hungarian translation of ARCHITECTURE.md
Add Magyar (hu) translation of the architecture documentation
to support Hungarian-speaking contributors and users.
2026-02-26 16:26:35 -03:00

441 lines
16 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Referensi API
🌐 **Languages:** 🇺🇸 [English](../../API_REFERENCE.md) | 🇧🇷 [Português (Brasil)](../pt-BR/API_REFERENCE.md) | 🇪🇸 [Español](../es/API_REFERENCE.md) | 🇫🇷 [Français](../fr/API_REFERENCE.md) | 🇮🇹 [Italiano](../it/API_REFERENCE.md) | 🇷🇺 [Русский](../ru/API_REFERENCE.md) | 🇨🇳 [中文 (简体)](../zh-CN/API_REFERENCE.md) | 🇩🇪 [Deutsch](../de/API_REFERENCE.md) | 🇮🇳 [हिन्दी](../in/API_REFERENCE.md) | 🇹🇭 [ไทย](../th/API_REFERENCE.md) | 🇺🇦 [Українська](../uk-UA/API_REFERENCE.md) | 🇸🇦 [العربية](../ar/API_REFERENCE.md) | 🇯🇵 [日本語](../ja/API_REFERENCE.md) | 🇻🇳 [Tiếng Việt](../vi/API_REFERENCE.md) | 🇧🇬 [Български](../bg/API_REFERENCE.md) | 🇩🇰 [Dansk](../da/API_REFERENCE.md) | 🇫🇮 [Suomi](../fi/API_REFERENCE.md) | 🇮🇱 [עברית](../he/API_REFERENCE.md) | 🇭🇺 [Magyar](../hu/API_REFERENCE.md) | 🇮🇩 [Bahasa Indonesia](../id/API_REFERENCE.md) | 🇰🇷 [한국어](../ko/API_REFERENCE.md) | 🇲🇾 [Bahasa Melayu](../ms/API_REFERENCE.md) | 🇳🇱 [Nederlands](../nl/API_REFERENCE.md) | 🇳🇴 [Norsk](../no/API_REFERENCE.md) | 🇵🇹 [Português (Portugal)](../pt/API_REFERENCE.md) | 🇷🇴 [Română](../ro/API_REFERENCE.md) | 🇵🇱 [Polski](../pl/API_REFERENCE.md) | 🇸🇰 [Slovenčina](../sk/API_REFERENCE.md) | 🇸🇪 [Svenska](../sv/API_REFERENCE.md) | 🇵🇭 [Filipino](../phi/API_REFERENCE.md)
Referensi lengkap untuk semua titik akhir OmniRoute API.
---
## Daftar Isi
- [Chat Completions](#chat-completions)
- [Embeddings](#embeddings)
- [Image Generation](#image-generation)
- [List Models](#list-models)
- [Compatibility Endpoints](#compatibility-endpoints)
- [Semantic Cache](#semantic-cache)
- [Dashboard & Management](#dashboard--management)
- [Request Processing](#request-processing)
- [Authentication](#authentication)
---
## Penyelesaian Obrolan
```bash
POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "cc/claude-opus-4-6",
"messages": [
{"role": "user", "content": "Write a function to..."}
],
"stream": true
}
```
### Header Khusus
| Tajuk | Arah | Deskripsi |
| ------------------------ | ---------- | -------------------------------------- |
| `X-OmniRoute-No-Cache` | Permintaan | Setel ke `true` untuk melewati cache |
| `X-OmniRoute-Progress` | Permintaan | Setel ke `true` untuk acara kemajuan |
| `Idempotency-Key` | Permintaan | Kunci Dedup (jendela 5 detik) |
| `X-Request-Id` | Permintaan | Kunci dedup alternatif |
| `X-OmniRoute-Cache` | Tanggapan | `HIT` atau `MISS` (non-streaming) |
| `X-OmniRoute-Idempotent` | Tanggapan | `true` jika duplikatnya |
| `X-OmniRoute-Progress` | Tanggapan | `enabled` jika pelacakan kemajuan pada |
---
## Penyematan
```bash
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
```
Penyedia yang tersedia: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA.
```bash
# List all embedding models
GET /v1/embeddings
```
---
## Pembuatan Gambar
```bash
POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "openai/dall-e-3",
"prompt": "A beautiful sunset over mountains",
"size": "1024x1024"
}
```
Penyedia yang tersedia: OpenAI (DALL-E), xAI (Grok Image), Together AI (FLUX), Fireworks AI.
```bash
# List all image models
GET /v1/images/generations
```
---
## Daftar Model
```bash
GET /v1/models
Authorization: Bearer your-api-key
→ Returns all chat, embedding, and image models + combos in OpenAI format
```
---
## Titik Akhir Kompatibilitas
| Metode | Jalur | Format |
| -------- | --------------------------- | -------------------------- |
| POSTING | `/v1/chat/completions` | OpenAI |
| POSTING | `/v1/messages` | Antropik |
| POSTING | `/v1/responses` | Tanggapan OpenAI |
| POSTING | `/v1/embeddings` | OpenAI |
| POSTING | `/v1/images/generations` | OpenAI |
| DAPATKAN | `/v1/models` | OpenAI |
| POSTING | `/v1/messages/count_tokens` | Antropik |
| DAPATKAN | `/v1beta/models` | kembar |
| POSTING | `/v1beta/models/{...path}` | Gemini menghasilkan Konten |
| POSTING | `/v1/api/chat` | Ollama |
### Rute Penyedia Khusus
```bash
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
```
Awalan penyedia ditambahkan secara otomatis jika tidak ada. Model yang tidak cocok menampilkan `400`.
---
## Cache Semantik
```bash
# Get cache stats
GET /api/cache
# Clear all caches
DELETE /api/cache
```
Contoh tanggapan:
```json
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
```
---
## Dasbor & Manajemen
### Otentikasi
| Titik akhir | Metode | Deskripsi |
| ----------------------------- | ----------------- | ------------------------ |
| `/api/auth/login` | POSTING | Masuk |
| `/api/auth/logout` | POSTING | Keluar |
| `/api/settings/require-login` | DAPATKAN/MASUKKAN | Beralih login diperlukan |
### Manajemen Penyedia
| Titik akhir | Metode | Deskripsi |
| ---------------------------- | ----------------------- | ----------------------------- |
| `/api/providers` | DAPATKAN/POSTING | Daftar / buat penyedia |
| `/api/providers/[id]` | DAPATKAN/MASUKKAN/HAPUS | Kelola penyedia |
| `/api/providers/[id]/test` | POSTING | Koneksi penyedia tes |
| `/api/providers/[id]/models` | DAPATKAN | Daftar model penyedia |
| `/api/providers/validate` | POSTING | Validasi konfigurasi penyedia |
| `/api/provider-nodes*` | Berbagai | Manajemen node penyedia |
| `/api/provider-models` | DAPATKAN/POSTING/HAPUS | Model khusus |
### Alur OAuth
| Titik akhir | Metode | Deskripsi |
| -------------------------------- | -------- | --------------------- |
| `/api/oauth/[provider]/[action]` | Berbagai | OAuth khusus penyedia |
### Perutean & Konfigurasi
| Titik akhir | Metode | Deskripsi |
| --------------------- | ---------------- | --------------------------------------- |
| `/api/models/alias` | DAPATKAN/POSTING | Alias model |
| `/api/models/catalog` | DAPATKAN | Semua model berdasarkan penyedia + tipe |
| `/api/combos*` | Berbagai | Manajemen kombo |
| `/api/keys*` | Berbagai | Manajemen kunci API |
| `/api/pricing` | DAPATKAN | Penetapan harga model |
### Penggunaan & Analisis
| Titik akhir | Metode | Deskripsi |
| --------------------------- | -------- | ---------------------- |
| `/api/usage/history` | DAPATKAN | Riwayat penggunaan |
| `/api/usage/logs` | DAPATKAN | Log penggunaan |
| `/api/usage/request-logs` | DAPATKAN | Log tingkat permintaan |
| `/api/usage/[connectionId]` | DAPATKAN | Penggunaan per koneksi |
### Pengaturan
| Titik akhir | Metode | Deskripsi |
| ------------------------------- | ----------------- | -------------------------------------- |
| `/api/settings` | DAPATKAN/MASUKKAN | Pengaturan umum |
| `/api/settings/proxy` | DAPATKAN/MASUKKAN | Konfigurasi proksi jaringan |
| `/api/settings/proxy/test` | POSTING | Uji koneksi proxy |
| `/api/settings/ip-filter` | DAPATKAN/MASUKKAN | Daftar IP yang diizinkan/daftar blokir |
| `/api/settings/thinking-budget` | DAPATKAN/MASUKKAN | Penalaran anggaran token |
| `/api/settings/system-prompt` | DAPATKAN/MASUKKAN | Perintah sistem global |
### Pemantauan
| Titik akhir | Metode | Deskripsi |
| ------------------------ | -------------- | ----------------------- |
| `/api/sessions` | DAPATKAN | Pelacakan sesi aktif |
| `/api/rate-limits` | DAPATKAN | Batas tarif per akun |
| `/api/monitoring/health` | DAPATKAN | Pemeriksaan kesehatan |
| `/api/cache` | DAPATKAN/HAPUS | Statistik cache / hapus |
### Cadangkan & Ekspor/Impor
| Titik akhir | Metode | Deskripsi |
| --------------------------- | -------- | ----------------------------------------------- |
| `/api/db-backups` | DAPATKAN | Daftar cadangan yang tersedia |
| `/api/db-backups` | TETAPKAN | Buat cadangan manual |
| `/api/db-backups` | POSTING | Pulihkan dari cadangan tertentu |
| `/api/db-backups/export` | DAPATKAN | Unduh database sebagai file .sqlite |
| `/api/db-backups/import` | POSTING | Unggah file .sqlite untuk menggantikan database |
| `/api/db-backups/exportAll` | DAPATKAN | Unduh cadangan lengkap sebagai arsip .tar.gz |
### Sinkronisasi Awan
| Titik akhir | Metode | Deskripsi |
| ---------------------- | -------- | -------------------------- |
| `/api/sync/cloud` | Berbagai | Operasi sinkronisasi cloud |
| `/api/sync/initialize` | POSTING | Inisialisasi sinkronisasi |
| `/api/cloud/*` | Berbagai | Manajemen awan |
### Alat CLI
| Titik akhir | Metode | Deskripsi |
| ---------------------------------- | -------- | ------------------------ |
| `/api/cli-tools/claude-settings` | DAPATKAN | Status Claude CLI |
| `/api/cli-tools/codex-settings` | DAPATKAN | Status CLI Kodeks |
| `/api/cli-tools/droid-settings` | DAPATKAN | Status CLI Droid |
| `/api/cli-tools/openclaw-settings` | DAPATKAN | Status CLI OpenClaw |
| `/api/cli-tools/runtime/[toolId]` | DAPATKAN | Waktu proses CLI generik |
Respons CLI meliputi: `installed`, `runnable`, `command`, `commandPath`, `runtimeMode`, `reason`.
### Ketahanan & Batas Nilai
| Titik akhir | Metode | Deskripsi |
| ----------------------- | ----------------- | ---------------------------------- |
| `/api/resilience` | DAPATKAN/MASUKKAN | Dapatkan/perbarui profil ketahanan |
| `/api/resilience/reset` | POSTING | Setel ulang pemutus sirkuit |
| `/api/rate-limits` | DAPATKAN | Status batas tarif per akun |
| `/api/rate-limit` | DAPATKAN | Konfigurasi batas tarif global |
### Evaluasi
| Titik akhir | Metode | Deskripsi |
| ------------ | ---------------- | ------------------------------------ |
| `/api/evals` | DAPATKAN/POSTING | Daftar eval suites/jalankan evaluasi |
### Kebijakan
| Titik akhir | Metode | Deskripsi |
| --------------- | ---------------------- | ------------------------- |
| `/api/policies` | DAPATKAN/POSTING/HAPUS | Kelola kebijakan perutean |
### Kepatuhan
| Titik akhir | Metode | Deskripsi |
| --------------------------- | -------- | -------------------------------- |
| `/api/compliance/audit-log` | DAPATKAN | Log audit kepatuhan (N terakhir) |
### v1beta (Kompatibel dengan Gemini)
| Titik akhir | Metode | Deskripsi |
| -------------------------- | -------- | ------------------------------------ |
| `/v1beta/models` | DAPATKAN | Daftar model dalam format Gemini |
| `/v1beta/models/{...path}` | POSTING | Titik akhir Gemini `generateContent` |
Titik akhir ini mencerminkan format API Gemini untuk klien yang mengharapkan kompatibilitas asli Gemini SDK.
### API Internal/Sistem
| Titik akhir | Metode | Deskripsi |
| --------------- | -------- | -------------------------------------------------------------------------- |
| `/api/init` | DAPATKAN | Pemeriksaan inisialisasi aplikasi (digunakan saat pertama kali dijalankan) |
| `/api/tags` | DAPATKAN | Tag model yang kompatibel dengan Ollama (untuk klien Ollama) |
| `/api/restart` | POSTING | Memicu restart server dengan anggun |
| `/api/shutdown` | POSTING | Memicu penutupan server dengan baik |
> **Catatan:** Titik akhir ini digunakan secara internal oleh sistem atau untuk kompatibilitas klien Ollama. Mereka biasanya tidak dipanggil oleh pengguna akhir.
---
## Transkripsi Audio
```bash
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
```
Transkripsikan file audio menggunakan Deepgram atau AssemblyAI.
**Permintaan:**
```bash
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=deepgram/nova-3"
```
**Respon:**
```json
{
"text": "Hello, this is the transcribed audio content.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
```
**Penyedia yang didukung:** `deepgram/nova-3`, `assemblyai/best`.
**Format yang didukung:** `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`.
---
## Kompatibilitas Ollama
Untuk klien yang menggunakan format API Ollama:
```bash
# Chat endpoint (Ollama format)
POST /v1/api/chat
# Model listing (Ollama format)
GET /api/tags
```
Permintaan secara otomatis diterjemahkan antara Ollama dan format internal.
---
## Telemetri
```bash
# Get latency telemetry summary (p50/p95/p99 per provider)
GET /api/telemetry/summary
```
**Respon:**
```json
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
```
---
## Anggaran
```bash
# Get budget status for all API keys
GET /api/usage/budget
# Set or update a budget
POST /api/usage/budget
Content-Type: application/json
{
"keyId": "key-123",
"limit": 50.00,
"period": "monthly"
}
```
---
## Ketersediaan Model
```bash
# Get real-time model availability across all providers
GET /api/models/availability
# Check availability for a specific model
POST /api/models/availability
Content-Type: application/json
{
"model": "claude-sonnet-4-5-20250929"
}
```
---
## Pemrosesan Permintaan
1. Klien mengirimkan permintaan ke `/v1/*`
2. Pengendali rute memanggil `handleChat`, `handleEmbedding`, `handleAudioTranscription`, atau `handleImageGeneration`
3. Model terselesaikan (penyedia/model langsung atau alias/kombo)
4. Kredensial dipilih dari DB lokal dengan pemfilteran ketersediaan akun
5. Untuk obrolan: `handleChatCore` — deteksi format, terjemahan, pemeriksaan cache, pemeriksaan idempotensi
6. Pelaksana penyedia mengirimkan permintaan upstream
7. Respons diterjemahkan kembali ke format klien (obrolan) atau dikembalikan apa adanya (embeddings/images/audio)
8. Penggunaan/logging dicatat
9. Fallback berlaku pada error sesuai dengan aturan kombo
Referensi arsitektur lengkap: [**OMNI_TOKEN_119**](ARCHITECTURE.md)
---
## Otentikasi
- Rute dasbor (`/dashboard/*`) menggunakan cookie `auth_token`
- Login menggunakan hash kata sandi yang disimpan; mundur ke `INITIAL_PASSWORD`
- `requireLogin` dapat dialihkan melalui `/api/settings/require-login`
- Rute `/v1/*` secara opsional memerlukan kunci API Pembawa ketika `REQUIRE_API_KEY=true`