# GitHub Copilot

Nguồn: https://docs.aicentos.com/vi/clients/copilot

Language: vi

> Trong GitHub Copilot Chat, kết nối endpoint OpenAI tương thích của aicentos bằng key tự mang (BYOK)

GitHub Copilot trong VS Code cung cấp khả năng tự mang key (BYOK), có thể trỏ yêu cầu hội thoại về endpoint OpenAI tương thích tùy chỉnh. Đặt endpoint thành aicentos, điền Key tạo trong Console, là có thể dùng các mô hình aicentos tích hợp trong Copilot Chat / Agent.

## Chuẩn bị

Trước tiên, tạo một Key chuyên dụng cho Copilot tại trang "API Key" trong Console (khuyến nghị đặt tên `copilot-vscode` hoặc `copilot-work` để 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 Ví: [https://aicentos.com/wallet](https://aicentos.com/wallet)

Đồng thời xác nhận VS Code và extension GitHub Copilot Chat trên máy đã cập nhật lên phiên bản hỗ trợ endpoint tùy chỉnh; các phiên bản cũ hơn chỉ có BYOK của các nhà cung cấp tích hợp sẵn, không có mục "endpoint tùy chỉnh" chung.

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

| Trường       | Giá trị                                                                 |
| ------------ | ----------------------------------------------------------------------- |
| Provider     | Custom Endpoint (phiên bản cũ là OpenAI Compatible)                     |
| Base URL     | `https://aicentos.com/v1`                                               |
| Loại API     | Chat Completions (tương ứng `https://aicentos.com/v1/chat/completions`) |
| API Key      | Key tạo trong Console                                                   |
| Model ID     | tên mô hình trong "Model Square" của Console                            |
| Tool Calling | `true` (bắt buộc bật nếu muốn dùng ở chế độ Agent)                      |

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

### Cách một: giao diện đồ hoạ

* Mở view Chat của VS Code.
* Nhấn vào bộ chọn mô hình phía trên ô nhập, chọn **Manage Language Models** (phiên bản cũ là **Manage Models...**).
* Nhấn **Add Models**, trong danh sách nhà cung cấp chọn **Custom Endpoint** (phiên bản cũ là **OpenAI Compatible**).
* Nhập tên nhóm và API Key.
* Loại API chọn **Chat Completions**.
* Theo hướng dẫn bổ sung thông tin mô hình: `id` điền tên mô hình trong Console, `url` điền `https://aicentos.com/v1/chat/completions`.
* Sau khi lưu, quay lại Chat, trong dropdown mô hình chọn mô hình vừa thêm.

### Cách hai: settings.json

Trong command palette thực hiện **Preferences: Open User Settings (JSON)**, thêm vào:

```json
{
  "github.copilot.chat.customOAIModels": {
    "aicentos-gpt": {
      "name": "aicentos GPT",
      "url": "https://aicentos.com/v1/chat/completions",
      "toolCalling": true,
      "vision": false,
      "maxInputTokens": 128000,
      "maxOutputTokens": 16384
    }
  }
}
```

Key ở lớp ngoài cùng của object (như `aicentos-gpt`) chính là model ID bạn thấy trong bộ chọn mô hình, phải là duy nhất.

Tài liệu chính thức tham khảo: [https://code.visualstudio.com/docs/copilot/customization/language-models](https://code.visualstudio.com/docs/copilot/customization/language-models)

## Kiểm tra

Sau khi lưu cài đặt, tạo một hội thoại mới trong Chat, trước tiên test nhẹ bằng một câu prompt đơn giản, trả về bình thường là đã thông, rồi mới chính thức dùng chế độ Agent / Edit.

## Lưu ý

* BYOK chỉ tác dụng với **Chat / Agent / Edit**, không bao gồm gợi ý code nội tuyến (Tab completion); tìm kiếm ngữ nghĩa, embedding và các khả năng khác vẫn đi dịch vụ tích hợp sẵn của Copilot.
* Muốn dùng ở chế độ **Agent**, mô hình phải hỗ trợ **tool calling**, `toolCalling` cần đặt là `true`; nếu không mô hình đó sẽ không xuất hiện trong bộ chọn mô hình.
* Trường `url` phải điền đầy đủ `https://aicentos.com/v1/chat/completions`, đừng chỉ điền đến `/v1`.
* `github.copilot.chat.customOAIModels` là cách viết cũ, phiên bản mới đã đổi sang `chatLanguageModels.json` kết hợp `customendpoint`; lấy mục nhập thực tế theo phiên bản VS Code hiện tại của bạn.
* Khi dùng GitHub Copilot Business / Enterprise, quản trị viên có thể tắt BYOK qua chính sách.
* Sau khi thêm mô hình mà chưa hiện ngay, khởi động lại VS Code một lần.
* Khi gặp lỗi, lần lượt kiểm tra: Key có khoảng trắng thừa không, tên mô hình có khớp Console không, số dư tài khoản có đủ không, loại API có chọn đúng không. Không đủ số dư có thể tới [https://aicentos.com/wallet](https://aicentos.com/wallet) để nạp tiền.