Tối Ưu Hóa Trải Nghiệm Lập Trình: Sử Dụng GitHub Copilot CLI Với Azure AI Foundry (Mô Hình BYOK) – Phần 2

Trong Phần 1 của loạt bài này, chúng ta đã cùng nhau khám phá cách chạy GitHub Copilot CLI với một mô hình AI cục bộ sử dụng LM Studio. Thiết lập đó mang lại cho bạn toàn quyền kiểm soát: không có cuộc gọi bên ngoài, không dữ liệu nào rời khỏi máy của bạn. Tuy nhiên, nó cũng đi kèm với những hạn chế rõ ràng. Các mô hình nhỏ thường gặp khó khăn và chất lượng đầu ra giảm nhanh chóng khi xử lý các tác vụ phức tạp.

Đây chính là lúc Azure AI Foundry phát huy tác dụng. Thay vì chạy các mô hình AI trực tiếp trên máy cục bộ, bạn có thể kết nối Copilot CLI với một mô hình được lưu trữ trên đám mây mà bạn hoàn toàn kiểm soát. Vẫn áp dụng phương pháp BYOK (Bring Your Own Model – Mang theo mô hình của riêng bạn), nhưng giờ đây mô hình sẽ chạy trên nền tảng mạnh mẽ của Azure.

Sự thay đổi này mang lại những ưu điểm và đánh đổi đáng cân nhắc:

  • Bạn có được những mô hình tốt hơn và khả năng lập luận mạnh mẽ hơn: Khai thác sức mạnh của các mô hình tiên tiến từ Azure, cho phép xử lý các yêu cầu phức tạp hơn với độ chính xác cao.
  • Bạn vẫn giữ quyền kiểm soát endpoint và triển khai: Mặc dù chạy trên đám mây, bạn vẫn quản lý và cấu hình endpoint của mô hình theo ý muốn.
  • Bạn chấp nhận chi phí và sự phụ thuộc vào mạng: Việc sử dụng tài nguyên đám mây tất nhiên đi kèm với chi phí, và kết nối mạng ổn định là điều kiện tiên quyết.

Đây không phải là một giải pháp thay thế hoàn toàn cho thiết lập cục bộ, mà là bước tiến tiếp theo nếu bạn ưu tiên quyền riêng tư nhưng đồng thời cần một sức mạnh xử lý vượt trội hơn. Hãy cùng tìm hiểu chi tiết cách thiết lập này.

Thiết Lập Azure AI Foundry: Chuẩn Bị Nền Tảng AI Đám Mây

Phần này là trọng tâm của việc tích hợp với Azure. Mục tiêu của chúng ta là tối giản hóa các bước, chỉ tập trung vào việc có được một endpoint hoạt động và một mô hình đã được triển khai.

1. Tạo Hoặc Sử Dụng Tài Nguyên Hiện Có

Đầu tiên, hãy truy cập vào Azure AI Foundry trong cổng thông tin Azure (Azure Portal).

Để tiếp tục, bạn cần có:

  • Một tài nguyên Azure AI Foundry đã được tạo sẵn.
  • Quyền truy cập đầy đủ vào tài nguyên đó (quyền hạn rất quan trọng).

Nếu bạn đã và đang sử dụng Azure OpenAI, bạn hoàn toàn có thể tái sử dụng tài nguyên đó cho mục đích này. Việc này giúp tiết kiệm thời gian và tài nguyên, tận dụng hạ tầng có sẵn của bạn.

2. Triển Khai Mô Hình AI Của Bạn

Bước này là bắt buộc. Trong Azure, bạn không thể gọi trực tiếp một mô hình AI mà không thông qua một triển khai (deployment) cụ thể. Bạn phải triển khai mô hình trước khi có thể sử dụng nó.

Các bước thực hiện:

  1. Mở tài nguyên Azure AI Foundry của bạn trong Azure Portal.
  2. Điều hướng đến mục “Model deployments” (Triển khai mô hình).
  3. Chọn một mô hình mà bạn muốn triển khai (ví dụ: một mô hình thuộc lớp GPT-4 hoặc các mô hình mã nguồn mở khác).
  4. Gán một tên triển khai (deployment name) duy nhất và dễ nhớ.

Ví dụ về tên triển khai:

copilot-gpt53codex

Tên này sẽ được Copilot CLI sử dụng sau này để xác định mô hình mà nó cần giao tiếp. Bạn cũng có thể triển khai các mô hình trực tiếp từ catalog của HuggingFace thông qua Azure AI Foundry, mang lại sự linh hoạt đáng kể.

Nếu cấu hình Azure AI Foundry của bạn đã tối ưu, bạn có thể triển khai các mô hình trực tiếp bằng nút “Deploy” trên trang chi tiết của mô hình.

3. Lấy Endpoint và Khóa API

Sau khi mô hình đã được triển khai thành công, bạn cần lấy thông tin quan trọng để Copilot CLI có thể kết nối. Từ tài nguyên Azure AI Foundry của bạn, hãy truy xuất:

  • URL Endpoint
  • Khóa API (API key)

URL endpoint điển hình sẽ có dạng:

https://<tên-tài-nguyên-của-bạn>.openai.azure.com/

Bạn sẽ kết hợp URL này với tên triển khai ở bước tiếp theo để tạo ra endpoint hoàn chỉnh.

4. Xây Dựng Endpoint Cuối Cùng

Copilot CLI yêu cầu một đường dẫn đầy đủ đến mô hình đã triển khai, không chỉ URL cơ sở. Điều này đảm bảo rằng yêu cầu của bạn được định tuyến chính xác đến phiên bản mô hình cụ thể của bạn trên Azure.

Định dạng của endpoint cuối cùng:

https://<tên-tài-nguyên-của-bạn>.openai.azure.com/openai/deployments/<tên-triển-khai-của-bạn>/v1

Ví dụ minh họa:

https://my-ai.openai.azure.com/openai/deployments/copilot-gpt53codex/v1

Hãy đảm bảo rằng đường dẫn này hoàn toàn chính xác. Một sai sót nhỏ cũng có thể khiến kết nối không hoạt động.

5. Kiểm Tra Nhanh (Validation)

Trước khi chuyển sang cấu hình Copilot CLI, việc kiểm tra nhanh là một bước cực kỳ quan trọng giúp bạn tránh những lỗi khó gỡ rối sau này. Hãy xác minh:

  • Mô hình đã được triển khai thành công và đang hoạt động.
  • Khóa API bạn có là hợp lệ và có đủ quyền truy cập.
  • Endpoint đầy đủ đã xây dựng ở bước 4 có thể truy cập được từ môi trường của bạn.

Bạn có thể sử dụng các công cụ như Postman hoặc cURL để gửi một yêu cầu thử nghiệm đơn giản đến endpoint và xác nhận rằng bạn nhận được phản hồi hợp lệ. Bỏ qua bước này có thể dẫn đến việc mất nhiều thời gian hơn để tìm ra nguyên nhân khi Copilot CLI không hoạt động.

Kết Nối Copilot CLI Với Azure: Cấu Hình Biến Môi Trường

Với các thiết lập trên Azure đã hoàn tất, giờ là lúc hướng Copilot CLI đến triển khai Azure của bạn. Quy trình này tương tự như Phần 1, nhưng với một endpoint và các ràng buộc khác.

Thiết Lập Các Biến Môi Trường

Bạn cần đặt các biến môi trường sau để Copilot CLI biết cách kết nối với mô hình của bạn trên Azure. Đây là ví dụ sử dụng PowerShell, nhưng cú pháp tương tự cho các shell khác (Bash, Zsh) với các lệnh thích hợp:

$env:COPILOT_PROVIDER_BASE_URL="https://<your-resource>.openai.azure.com/openai/deployments/<your-deployment>/v1"
$env:COPILOT_MODEL="<your-deployment>"
$env:AZURE_OPENAI_API_KEY="<your-api-key>"

Hãy chú ý đến các biến sau:

  • COPILOT_PROVIDER_BASE_URL: Đây là URL endpoint Azure đầy đủ mà bạn đã xây dựng ở bước 4. Nó chỉ định nơi Copilot CLI sẽ gửi yêu cầu.
  • COPILOT_MODEL: Đây là tên triển khai (deployment name) của mô hình của bạn trên Azure, không phải tên gốc của mô hình. Copilot CLI sử dụng tên này để tham chiếu đến triển khai cụ thể.
  • AZURE_OPENAI_API_KEY: Khóa API mà bạn đã lấy từ tài nguyên Azure AI Foundry, cần thiết cho việc xác thực và ủy quyền.

Lưu ý quan trọng: Trong thiết lập này, bạn không cần sử dụng biến COPILOT_OFFLINE. Tất cả các yêu cầu sẽ được gửi trực tiếp đến Azure.

Chạy Một Thử Nghiệm Đơn Giản

Sau khi đã thiết lập các biến môi trường, hãy mở Copilot CLI. Điều hướng đến một thư mục dự án mà bạn muốn thử nghiệm và chạy lệnh sau:

copilot --banner

Sau đó, hãy hỏi một nhiệm vụ đơn giản, chẳng hạn như: “Liệt kê tất cả các tệp lớn hơn 2MB trong thư mục này.”

Nếu mọi thứ được cấu hình đúng cách:

  • Phản hồi sẽ đến từ mô hình Azure AI Foundry của bạn.
  • Tốc độ phản hồi sẽ nhanh hơn đáng kể, đặc biệt là so với các mô hình cục bộ đã sử dụng trong Phần 1. Điều này thể hiện sức mạnh xử lý vượt trội của các mô hình đám mây.

Hiểu Rõ Bản Chất: Copilot CLI Không Phải Là “Phép Thuật Azure”

Điều quan trọng cần hiểu là đây không phải là một “phép thuật Copilot với Azure” nào cả. Thay vào đó, nó là sự kết hợp hiệu quả của hai công cụ:

  • Copilot CLI hoạt động như một client mỏng: Nó chỉ là giao diện dòng lệnh giúp bạn tương tác dễ dàng với các mô hình AI.
  • Azure hoạt động như nhà cung cấp mô hình: Azure cung cấp môi trường để triển khai, quản lý và chạy các mô hình AI mạnh mẽ.

Bạn không nhận được công cụ tốt hơn, mà là nhận được những mô hình AI tốt hơn. Copilot CLI chỉ là cầu nối để bạn tiếp cận sức mạnh xử lý và khả năng suy luận vượt trội từ các mô hình được tối ưu hóa trên Azure.

Cái Nhìn Sâu Sắc: Quản Lý Hạn Mức GitHub Copilot Trong VS Code

Nếu bạn là người dùng GitHub Copilot thường xuyên và đôi khi tự hỏi:

  • Bạn đang sử dụng gói nào?
  • Bạn có bị giới hạn sử dụng không?
  • Bạn còn bao nhiêu hạn mức cao cấp?
  • Khi nào hạn mức của bạn được đặt lại?

Để giải quyết những thắc mắc này, một tiện ích mở rộng nhỏ cho VS Code mang tên Copilot Insights đã được phát triển. Tiện ích này hiển thị trực tiếp trạng thái gói và hạn mức của Copilot ngay trong môi trường VS Code của bạn.

Nó không thu thập dữ liệu sử dụng, không chấm điểm năng suất – chỉ đơn thuần là cung cấp thông tin rõ ràng và minh bạch để bạn có thể quản lý việc sử dụng Copilot hiệu quả hơn.

Bạn có thể tìm và cài đặt tiện ích này tại VS Code Marketplace:

https://marketplace.visualstudio.com/items?itemName=emanuelebartolesi.vscode-copilot-insights

Kết Luận

Việc tích hợp GitHub Copilot CLI với Azure AI Foundry thông qua các mô hình BYOK mở ra một kỷ nguyên mới cho các nhà phát triển, nơi họ có thể tận dụng sức mạnh vượt trội của AI đám mây mà vẫn duy trì quyền kiểm soát và quyền riêng tư. Dù yêu cầu một vài bước thiết lập ban đầu trên Azure, lợi ích về hiệu suất, độ chính xác và khả năng xử lý các tác vụ phức tạp sẽ là phần thưởng xứng đáng. Hãy thử nghiệm và trải nghiệm sự khác biệt mà sức mạnh của Azure AI Foundry mang lại cho quy trình làm việc của bạn.

Chỉ mục