Trang chủ Bài viết Tin công nghệ Mang mô hình của riêng bạn vào GitHub Copilot SDK với C#
Tin công nghệ 02/11/2026 11 lượt xem

Mang mô hình của riêng bạn vào GitHub Copilot SDK với C#

Mang mô hình của riêng bạn vào GitHub Copilot SDK với C#

GitHub Copilot SDK không bắt buộc phải dùng mô hình mặc định của GitHub. Với ProviderConfig, ứng dụng có thể giữ nguyên runtime của Copilot nhưng chuyển phần suy luận mô hình sang nhà cung cấp do mình kiểm soát, như OpenAI, Anthropic, Ollama, Microsoft Foundry Local hay bất kỳ endpoint tương thích OpenAI nào (vLLM, LiteLLM).

BYOK trong mẫu này nghĩa là gì

BYOK là viết tắt của Bring Your Own Key, nhưng ở đây ý quan trọng rộng hơn chiếc khóa: bạn mang theo nhà cung cấp mô hình của chính mình. Copilot SDK vẫn cung cấp runtime quản lý client, phiên làm việc, system message và cấu hình agent; ProviderConfig chỉ đổi đích đến và cách xác thực cho phần suy luận. Bài lưu ý BYOK trong ngữ cảnh này không liên quan đến khóa mã hóa do khách hàng quản lý.

Mẫu mã nguồn đầy đủ nằm trong bộ Generative AI for Beginners .NET, là ứng dụng console .NET 10 nhỏ: đọc cấu hình, tạo provider BYOK, khởi động runtime Copilot, tạo một phiên và hỏi một câu. Phiên được cố ý tối giản, tắt công cụ, kỹ năng, khám phá cấu hình và thao tác Git trên máy chủ để lần chạy đầu chỉ chứng minh một điều: phiên Copilot SDK có thể gửi yêu cầu mô hình đến triển khai Foundry tương thích của bạn.

Các bước chính của mẫu

  • Đọc cấu hình từ User Secrets gồm AzureOpenAI:Deployment và AzureOpenAI:Endpoint (bắt buộc), cùng AzureOpenAI:ApiKey (tùy chọn). Deployment phải hỗ trợ Responses API vì mẫu dùng WireApi = "responses".
  • Tạo ProviderConfig với Type = "openai", BaseUrl trỏ tới bề mặt API tương thích OpenAI, ModelId và WireModel là tên mô hình, giới hạn token để ví dụ gọn. Hàm chuẩn hóa endpoint chấp nhận URL tài nguyên hoặc URL đã có /openai/v1/, đồng thời bắt buộc HTTPS và từ chối endpoint sai định dạng trước khi tạo phiên.
  • Xác thực mặc định bằng Microsoft Entra ID qua AzureCliCredential, tái sử dụng phiên đăng nhập az login, với BearerTokenProvider là callback lấy token theo phạm vi cognitiveservices.azure.com. Cần đảm bảo danh tính có vai trò Cognitive Services OpenAI User trên tài nguyên.
  • Nếu có API key, mẫu gửi key trong header api-key và không cần az login. Đầu ra console chỉ báo chế độ xác thực, không in endpoint hay thông tin xác thực.
  • Khởi động runtime Copilot qua RuntimeConnection.ForStdio("copilot"). Điểm cần phân biệt: BYOK không có nghĩa là dùng Copilot SDK mà không có Copilot; runtime CLI Copilot cục bộ vẫn đảm nhận quá trình điều phối, chỉ đổi nơi gửi yêu cầu mô hình.
  • Tạo phiên với system message thay thế (SystemMessageMode.Replace), danh sách công cụ rỗng và các tính năng bị tắt để dễ hiểu và an toàn khi học cấu hình provider.
  • Gửi một câu hỏi bằng SendAndWaitAsync với thời gian chờ 3 phút, kiểm tra phản hồi rỗng. Câu hỏi mặc định hỏi Microsoft Foundry là gì và liên hệ với GitHub Copilot SDK thế nào; có thể truyền câu hỏi khác qua tham số dòng lệnh.

Điều kiện và cách chạy

Cần cài .NET 10 SDK và GitHub Copilot CLI, kiểm tra bằng dotnet --version và copilot --version. Với đường xác thực Entra ID mặc định, cài thêm Azure CLI và kiểm tra az --version; đường dùng API key thì không cần Azure CLI. Cấu hình các giá trị qua dotnet user-secrets set, sau đó chạy az login và dotnet run. Với mô hình suy luận, giới hạn MaxOutputTokens bao gồm cả token suy luận nên có thể hết hạn mức trước khi có câu trả lời; cần tăng hoặc bỏ giới hạn rồi tinh chỉnh theo khối lượng công việc.

Bài học rút ra

Điểm đáng chú ý là lượng mã cần thiết rất ít. Runtime Copilot SDK và nhà cung cấp mô hình là hai phần tách biệt: bạn giữ runtime mà GitHub cung cấp gồm client, phiên, system message và hạ tầng agent, còn provider quyết định nơi yêu cầu mô hình được gửi tới.

Nguồn: .NET Blog

Trích nguồn từ: .NET Blog

Chia sẻ:

Bài viết liên quan

Cloudflare ra mắt dịch vụ cho origin riêng tư
31/10/2026 • TEDU

Cloudflare ra mắt dịch vụ cho origin riêng tư

Cloudflare chính thức cung cấp dịch vụ cho origin riêng tư, cho phép đưa các ứng dụng nội bộ như API, backend AI agent và MCP server ra Internet với đầy đủ WAF, caching và bot management mà không cần lộ IP công khai.

Đọc thêm
Zalo