---
title: AI provider
description: Hubungkan endpoint AI yang kompatibel dengan OpenAI untuk AI Chat dan AI Agent — aktifkan modul AI, masukkan endpoint dan kunci, uji, lalu atur batasnya.
url: https://nexcmp.com/id/docs/ai/ai-providers/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# AI provider {#ai-provider}

> **Di dalam admin:** System › Settings › AI provider (`/settings/ai`). Sakelar modul AI berada di sana dan di System › Admin › License & updates (`/license`), kartu **Module**.

## Fungsi {#what-it-does}

AI Chat (obrolan dukungan otomatis) dan AI Agent (administrasi VM dengan bahasa sehari-hari) tidak disertakan dengan model bawaan. Anda memilih **provider Anda sendiri**: layanan apa pun yang menawarkan `chat/completions` API yang **kompatibel dengan OpenAI** — misalnya OpenAI, OpenRouter, gateway LiteLLM, atau server vLLM Anda sendiri. NexCMP menyimpan endpoint dan API key (terenkripsi) serta menggunakannya untuk setiap fitur AI. Anda membayar langsung kepada provider tersebut.

## Persyaratan {#requirements}

| Item | Persyaratan |
|---|---|
| Endpoint | Base URL yang kompatibel dengan OpenAI (`https://api.openai.com/v1`, `https://ai.example.com/v1`). NexCMP menambahkan `/chat/completions` ke URL yang berakhiran `/v1`; untuk URL lainnya, NexCMP menambahkan `/v1/chat/completions`; URL yang sudah berakhiran `/chat/completions` digunakan apa adanya. |
| Model | Model yang mendukung **pemanggilan alat (fungsi)**. Baik AI Chat maupun Agent mengandalkannya. |
| Kunci API | Kunci untuk endpoint tersebut. Sebaiknya gunakan kunci dengan **batas pengeluaran** di sisi penyedia (misalnya kunci virtual LiteLLM dengan anggaran bulanan). |
| Jaringan | Server panel harus dapat menjangkau endpoint melalui HTTP(S). URL yang diketik dalam formulir hanya diizinkan mengarah ke Internet pada port 80, 443, 8080, atau 8443; untuk menggunakan alamat internal, simpan penyedia terlebih dahulu lalu uji. |
| Dependensi | Modul **AI** aktif. Untuk Agent, lihat [AI Agent](https://nexcmp.com/id/docs/ai/ai-agent/#requirements). |

## Siapkan infrastruktur {#prepare-the-infrastructure}

1. Daftar dengan penyedia dan buat kunci API. Jika penyedia mendukung anggaran atau batasan tarif, tetapkan batas bulanan.
2. Catat **base URL** dan **nama model** yang tepat (serta, secara opsional, hingga empat model cadangan).
3. Uji dari server NexCMP sebelum memasukkannya:

   ```bash
   curl -s https://ai.example.com/v1/chat/completions \
     -H "Authorization: Bearer XXXX" -H "Content-Type: application/json" \
     -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Reply with one word: OK"}]}'
   ```

   Jawaban JSON dengan `choices[0].message.content` berarti endpoint berfungsi.

## Hubungkan di NexCMP {#connect-in-nexcmp}

1. Buka **System › Settings › AI provider**.
2. Pada kartu **Module AI**, aktifkan modul (**on**). Sebelum diaktifkan, pelanggan tidak dapat melihat AI Chat atau AI Agent di portal. (Anda juga dapat mengaktifkannya di **License & updates**.)
3. Pada kartu **Connection**, isi:

   | Kolom | Contoh | Catatan |
   |---|---|---|
   | Gunakan penyedia ini | aktif | Memerlukan base URL, model, dan kunci untuk diaktifkan. |
   | Display name | `LiteLLM` | Hingga 60 karakter. |
   | Base URL (yang kompatibel dengan OpenAI) | `https://ai.example.com/v1` | `http://` atau `https://`, hingga 300 karakter, tanpa spasi. |
   | Kunci API penyedia | `sk-XXXX` | Disimpan secara terenkripsi; setelah itu hanya 4 karakter terakhir yang ditampilkan. Biarkan kosong untuk tetap menggunakan kunci yang tersimpan. |
   | Model default | `gpt-4o-mini` | Huruf, angka, dan `- _ . / : @`. |
   | Model cadangan | `gemini-2.5-flash` | Dipisahkan dengan koma, hingga 4. Digunakan saat model default gagal. |
   | Upaya penalaran | Default (tidak dikirim) | `Minimal`, `Low`, `Medium`, atau `High`. Untuk model penalaran (Gemini, seri o), tingkat rendah merespons jauh lebih cepat. Biarkan pada Default untuk model normal. |

4. Klik **Save**, lalu **Test connection**. Pengujian mengirimkan satu pertanyaan singkat dan menampilkan `Connected — <model>, <ms> ms` atau error yang dikembalikan oleh penyedia.

![Halaman AI provider dengan modul AI diaktifkan dan formulir koneksi terisi dengan nilai contoh](https://nexcmp.com/id/docs/images/ai/ai-providers-01-connection.webp)


### Yang dilakukan penyimpanan {#what-saving-does}

- Pengaturan penyedia disimpan sebagai satu entri konfigurasi dan kunci dienkripsi dengan AES-256-GCM, yang terikat pada tujuan ini, menggunakan kunci utama instalasi.
- Pengaturan dukungan **Primary model** dan **Fallback model** (digunakan oleh AI Chat) diatur secara otomatis ke model default dan model cadangan pertama Anda.
- Perubahan dicatat ke log audit (endpoint, model, apakah kunci berubah — tidak pernah kuncinya).

## Verifikasi {#verify}

1. **Test connection** berwarna hijau.
2. Masuk ke portal sebagai pelanggan uji: menu sekarang menyediakan **AI Chat** (atau gelembung obrolan) dan **AI Agent**.
3. Tanyakan kepada AI Chat "What is my balance?". Jawaban yang menyebutkan saldo nyata Anda menunjukkan bahwa penyedia menangani pemanggilan alat dengan benar.

## Batas & catatan {#limits-notes}

- **Satu penyedia.** NexCMP menggunakan satu penyedia yang dikonfigurasi untuk Chat, Agent, dan penelusuran tiket. Model cadangan memberikan ketahanan dalam penyedia tersebut.
- **Keamanan kunci.** Kunci yang disimpan hanya dikirim ke endpoint yang disimpan. Jika Anda mengubah Base URL, Anda harus mengetikkan ulang kunci sebelum menguji.
- **Batasan per pelanggan.** AI Chat hanya untuk pelanggan yang sudah masuk, dengan batasan pesan per menit dan per obrolan. Agen memiliki batasan panggilan harian per akun. Lihat [AI Chat](https://nexcmp.com/id/docs/ai/ai-chat/) dan [AI Agent](https://nexcmp.com/id/docs/ai/ai-agent/).
- **Privasi.** Pertanyaan pelanggan dan data yang dibaca oleh AI untuk pelanggan tersebut (hanya-baca) dikirim ke penyedia Anda. Nyatakan hal ini dalam [kebijakan privasi](https://nexcmp.com/id/docs/customers/legal/) Anda.
- **Kontrol biaya.** NexCMP tidak mengenakan meteran biaya AI; gunakan fitur anggaran dari penyedia.
- Modul ini dapat dimatikan kapan saja: menu AI akan hilang dan rute AI memberikan respons 404 `module_disabled`. Beberapa job latar belakang AI Chat (investigasi tiket, balasan tertunda) akan mendeteksi perubahan tersebut pada saat panel direstart berikutnya.

## Pemecahan Masalah {#troubleshooting}

| Gejala | Penyebab | Solusi |
|---|---|---|
| `base_url must be an http(s) URL` | Skema hilang atau ada spasi | Gunakan `https://host/v1`. |
| `api_key is required to enable the provider` | Tidak ada kunci yang disimpan | Masukkan kunci lalu simpan. |
| `base_url and model are required to enable the provider` | Kolom kosong | Isi keduanya. |
| "Base URL diblokir: hanya http(s) publik, port 80/443/8080/8443" | Menguji alamat internal yang belum disimpan atau port lain | Simpan penyedia terlebih dahulu, lalu uji. |
| `api_key is required (enter the key again when you change the endpoint)` | Base URL berbeda dengan yang disimpan | Ketik ulang kunci. |
| `model: letters, digits and - _ . / : @` | Karakter tidak valid | Gunakan ID model yang persis dari penyedia. |
| `fallback_models: up to 4 model names` | Terlalu banyak | Simpan empat atau kurang. |
| Pengujian gagal dengan 401 | Kunci salah | Periksa kunci dan endpoint. |
| Pengujian gagal dengan 404 atau "model not found" | Jalur atau model salah | Periksa base URL (`/v1`) dan ID model. |
| `Too many tests — wait a minute` (429) | Lebih dari 10 pengujian per menit | Tunggu. |
| Portal tetap tidak menampilkan menu AI | Modul nonaktif, atau penyedia tidak "in use" | Nyalakan modul dan aktifkan penyedia. |
