# Command Code

Nguồn: https://docs.aicentos.com/vi/clients/command-code

Language: vi

> Dùng aicentos trong Command Code —— thêm nhà cung cấp BYOK qua providers.json

Command Code là agent lập trình trong terminal, mặc định dùng nhà cung cấp tích hợp sẵn, đồng thời hỗ trợ BYOK: đăng ký một nhà cung cấp tùy chỉnh trong `~/.commandcode/providers.json`, trỏ baseURL về aicentos là được.

## Chuẩn bị

Trước tiên, tạo một Key riêng cho Command Code tại trang "API Key" trong Console (khuyến nghị đặt tên `command-code` để dễ theo dõi mức sử dụng):

* Console: [https://aicentos.com](https://aicentos.com)
* Tạo Key: [https://aicentos.com/keys](https://aicentos.com/keys)
* Nạp tiền khi hết số dư: [https://aicentos.com/wallet](https://aicentos.com/wallet)

## Cấu hình cần điền

| Trường        | Giá trị                                      |
| ------------- | -------------------------------------------- |
| File cấu hình | `~/.commandcode/providers.json`              |
| baseURL       | `https://aicentos.com/v1`                    |
| apiKey        | `$AICENTOS_API_KEY`                          |
| Mô hình       | tên mô hình trong "Model Square" của Console |

## Các bước thiết lập

### 1. Thiết lập biến môi trường

```bash
export AICENTOS_API_KEY="sk-API-Key-của-bạn"
```

Ghi vào `~/.zshrc` hoặc `~/.bashrc` để lưu lâu dài.

### 2. Sửa providers.json

Sửa `~/.commandcode/providers.json`, thêm một mục dưới đối tượng `provider`:

```json
{
  "provider": {
    "aicentos": {
      "name": "aicentos",
      "api": "openai-completions",
      "baseURL": "https://aicentos.com/v1",
      "apiKey": "$AICENTOS_API_KEY",
      "models": {
        "gpt-4o": {}
      }
    }
  }
}
```

Giải thích các trường:

| Trường    | Mô tả                                                                                      |
| --------- | ------------------------------------------------------------------------------------------ |
| `name`    | Tên hiển thị, xuất hiện trong `/connect` và `/model`                                       |
| `api`     | `openai-completions` (mặc định) hoặc `anthropic-messages`                                  |
| `baseURL` | Bắt buộc, địa chỉ gốc API, cần có `/v1`                                                    |
| `apiKey`  | Hỗ trợ `$VAR`, `{env:VAR}`, `!command`, hoặc điền `false` nghĩa là endpoint không xác thực |
| `models`  | Bắt buộc, `{}` là đủ, model ID cần khớp với endpoint                                       |

Thay model ID trong `models` bằng tên trong "Model Square" của Console, có thể tham khảo [Các mô hình hỗ trợ](https://docs.aicentos.com/vi/billing/models-list).

### 3. Chọn nhà cung cấp

Sau khi vào Command Code:

* Chạy `/connect`, chọn `aicentos` và hoàn tất xác nhận key;
* Chạy `/model`, chọn mô hình muốn dùng.

Lưu ý: **sau khi sửa `providers.json` cần mở lại `/model`** cấu hình mới mới được nạp.

## Kiểm tra

Sau khi chọn mô hình, gửi một prompt đơn giản:

```
Trả lời trong một câu: 1+1 bằng mấy
```

Trả về bình thường nghĩa là kết nối thành công. Cũng có thể trong `/connect` nhấn `u` vào nhà cung cấp, để nó gọi `/models` của endpoint làm mới danh sách mô hình.

## Lưu ý

* Command Code mặc định đi theo Chat Completions tương thích OpenAI, do đó `api` điền `openai-completions` là được.
* Nếu muốn dùng các mô hình dòng Claude, cần tạo thêm một mục nhà cung cấp với `api: "anthropic-messages"` — hai giao thức nối đường dẫn khác nhau (OpenAI SDK thêm `/chat/completions`, Anthropic SDK thêm `/v1/messages`), cùng một baseURL không thể phục vụ đồng thời cả hai.
* `baseURL` bắt buộc phải có `/v1`, Command Code sẽ tự nối các đường dẫn phía sau.
* Dán key dạng văn bản thuần trực tiếp vào `apiKey` sẽ bị từ chối, hãy dùng dạng `$VAR`.
* Thứ tự xử lý sự cố: có thấy mô hình trong `/model` không → biến môi trường có hiển thị trong terminal khởi động không → baseURL có dừng ở `/v1` không → số dư có đủ không.

## Liên kết liên quan

* Tài liệu BYOK chính thức: [https://commandcode.ai/docs/byok](https://commandcode.ai/docs/byok)