Chuyển đến nội dung chính

Hướng dẫn

Cách tích hợp AI support chatbot và SSH agent vào đám mây CloudStack

NexCMP là hệ thống billing và customer portal self-hosted dành cho Apache CloudStack và Proxmox VE, và phiên bản 1.2.0 ra mắt hai module AI: AI Chat, trợ lý bên trong customer portal, và AI Agent, có khả năng thực hiện tác vụ trên chính VM của khách qua SSH. Hướng dẫn này sẽ thiết lập cả hai bằng API key tương thích OpenAI, có kèm ảnh chụp màn hình từ customer portal và admin console.

Thời gian thực hiện: khoảng 15 phút trên bản cài đặt NexCMP hiện có.

Các thành phần

Bốn thành phần, trong đó có ba thành phần bạn có thể đã đang vận hành.

  • NexCMP 1.2.0

    Panel mà khách hàng của bạn đang sử dụng, được cài đặt trên Ubuntu 22.04 hoặc 24.04. AI Chat và AI Agent đã được bao gồm trong giấy phép — không mất thêm phụ phí.

  • Một endpoint tương thích OpenAI

    Bất kỳ API chat-completions nào hỗ trợ tool (function) calling: nhà cung cấp dịch vụ lưu trữ, hoặc một proxy bạn chạy phía trước nhiều nhà cung cấp.

  • Một key có giới hạn chi tiêu

    Cấp cho panel một key riêng và đặt ngân sách hàng tháng cho key đó tại nhà cung cấp hoặc trong proxy của bạn, đảm bảo mức sử dụng không bao giờ vượt tầm kiểm soát.

  • Các CloudStack VM của bạn

    AI Agent kết nối tới VM của khách hàng qua SSH từ máy chủ panel, sử dụng thông tin đăng nhập mà khách hàng đã lưu cho VM đó.

Hướng dẫn từng bước

  1. Cập nhật panel lên 1.2.0

    Trong bảng điều khiển quản trị, mở License và nhấn Update, hoặc chạy sudo nexcmp update trên máy chủ. Bản cập nhật được ký số và kiểm tra trước khi cài đặt.

  2. Tạo API key có giới hạn chi tiêu

    Tại nhà cung cấp AI (hoặc trong proxy của bạn), hãy tạo một key dành riêng cho panel này và đặt ngân sách hàng tháng. Một mô hình nhanh, chi phí thấp là đã đủ cho chat hỗ trợ.

  3. Nhập thông tin tại Admin › Settings › AI provider

    Dán URL endpoint, key và tên mô hình, sau đó nhấn Test connection. Key được lưu trữ mã hóa trong cơ sở dữ liệu của panel và sẽ không bao giờ hiển thị lại.

  4. Bật module AI

    Trong License › Modules, hãy bật AI. AI Chat và AI Agent sẽ xuất hiện trên menu cổng khách hàng sau khi tải lại trang; tắt module sẽ ẩn chúng đi.

  5. Khách hàng đặt câu hỏi với AI Chat

    AI Chat giải đáp các thắc mắc về gói dịch vụ, bảng giá cũng như các dịch vụ riêng của khách hàng. Khi câu hỏi cần người xử lý, khách hàng có thể chuyển tiếp cuộc trò chuyện cho đội ngũ hỗ trợ của bạn.

    Cổng khách hàng, AI Chat trả lời câu hỏi về máy chủ của khách hàng
  6. Khách hàng chạy AI Agent trên VM

    Khách hàng chọn một trong các VM của mình và mô tả tác vụ bằng ngôn ngữ tự nhiên. Agent sẽ thực thi các lệnh qua SSH và hiển thị từng lệnh kèm kết quả đầu ra.

    Customer portal, AI Agent đang thực thi các lệnh trên VM và hiển thị kết quả
  7. Theo dõi mức sử dụng

    Mức sử dụng do nhà cung cấp AI của bạn tính phí, không phải NexCMP. Hãy kiểm tra chi phí trên bảng điều khiển của nhà cung cấp hoặc proxy và điều chỉnh ngân sách của khóa khi khách hàng bắt đầu sử dụng tính năng này.

Những gì bạn cần trước khi bắt đầu

  • NexCMP 1.2.0 trở lên, có module AI trong License › Modules.
  • Một nhà cung cấp AI có endpoint chat/completions tương thích OpenAI và model hỗ trợ tool (function) calling: OpenAI, OpenRouter, LiteLLM gateway hoặc máy chủ vLLM riêng của bạn đều đáp ứng.
  • Đối với AI Agent, cần có openssh-client trên máy chủ panel (trình cài đặt sẽ tự thêm) và định tuyến mạng từ máy chủ panel đến cổng SSH của từng VM, mặc định là 22.
  • Đối với AI Agent, cần một Linux VM thuộc về khách hàng, đang chạy và không bị khóa, có thông tin đăng nhập đã lưu (được lưu khi tạo VM hoặc khi đặt lại mật khẩu) hoặc khóa vận hành của panel. Các VM chạy Windows sẽ bị từ chối.
  • Tùy chọn khi chuyển tiếp AI Chat cho nhân viên: bot Telegram và chat ID trong mục Settings › Admin alerts.
ssh -V
nc -vz 198.51.100.10 22

Kiểm tra endpoint từ máy chủ panel trước

NexCMP sẽ thêm /chat/completions vào URL kết thúc bằng /v1, và thêm /v1/chat/completions vào bất kỳ URL nào khác; URL đã kết thúc bằng /chat/completions sẽ được giữ nguyên. Trước khi nhập endpoint, hãy gửi một yêu cầu thử nghiệm từ máy chủ NexCMP. Phản hồi JSON chứa choices[0].message.content nghĩa là endpoint và model hoạt động bình thường.

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"}]}'

Cách AI Agent thực thi lệnh, và những lệnh nó sẽ không tự ý chạy

  • Các lệnh được chạy từ máy chủ panel bằng ssh client riêng, mỗi lần một lệnh không tương tác. Mục tiêu luôn là địa chỉ IP của VM lấy từ cơ sở dữ liệu, không bao giờ lấy từ request.
  • Mật khẩu đã lưu được truyền qua trình hỗ trợ SSH_ASKPASS dùng một lần trong môi trường tiến trình: mật khẩu không bị ghi vào đĩa hay hiển thị trên dòng lệnh.
  • Đầu ra của mỗi lệnh bị giới hạn ở 200 KB, một lượt kết thúc sau tối đa 10 bước, và một khách hàng chỉ có thể chạy tối đa 2 tiến trình agent cùng lúc.
  • Ở chế độ Confirm, mọi lệnh đều chờ khách hàng bấm Run. Ở chế độ Auto, chỉ các lệnh thuộc danh sách chỉ đọc nghiêm ngặt, ví dụ df -h, ps hoặc journalctl, mới tự động chạy.
  • Các lệnh ghi đè hoặc xóa tệp tin, thay đổi tài khoản hoặc SSH Keys, gửi dữ liệu ra máy chủ bên ngoài, tải về và chạy script, hoặc tắt/khởi động lại máy sẽ luôn hiển thị Needs confirmation, ngay cả ở chế độ Auto.
  • Đầu ra của lệnh được chuyển đến model dưới dạng dữ liệu không đáng tin cậy, và mọi chỉ dẫn nằm bên trong đó sẽ không được thực thi.

Khắc phục sự cố

Các thông báo bạn thường gặp nhất, và những điểm cần kiểm tra.

  • Test connection thất bại với lỗi 401

    Nguyên nhân có thể
    Khóa không hợp lệ cho endpoint đó.
    Cách xử lý
    Kiểm tra khóa và endpoint, đồng thời nhập lại khóa nếu bạn đã thay đổi base URL.
  • Test connection thất bại với lỗi 404 hoặc model not found

    Nguyên nhân có thể
    Sai đường dẫn hoặc sai model id.
    Cách xử lý
    Kiểm tra xem base URL đã kết thúc bằng /v1 chưa và dùng chính xác model id của nhà cung cấp.
  • Cổng khách hàng không hiển thị menu AI

    Nguyên nhân có thể
    Module đang tắt, hoặc nhà cung cấp chưa được bật để sử dụng.
    Cách xử lý
    Bật module AI trong License › Modules và kích hoạt nhà cung cấp.
  • Agent không thể đăng nhập

    Nguyên nhân có thể
    Không có mật khẩu đã lưu và không có operations key cho VM đó.
    Cách xử lý
    Đặt lại mật khẩu VM trong portal để hệ thống lưu lại.
  • Máy chủ không phản hồi kịp thời

    Nguyên nhân có thể
    Do firewall chặn, SSH chưa lắng nghe hoặc VM đang bận.
    Cách xử lý
    Chạy nc -vz <vm-ip> 22 từ máy chủ panel và khởi động sshd trong VM.
  • AI phản hồi quá chậm

    Nguyên nhân có thể
    Nhà cung cấp hoặc model phản hồi chậm.
    Cách xử lý
    Sử dụng model nhanh hơn hoặc giảm Reasoning effort trong Settings › AI provider.
  • Đăng nhập để sử dụng AI Chat

    Nguyên nhân có thể
    Khách truy cập chưa đăng nhập.
    Cách xử lý
    Hoạt động bình thường: AI Chat chỉ dành cho khách hàng đã đăng nhập.

Quyền riêng tư và chi phí

Các câu hỏi của khách hàng và dữ liệu AI đọc cho khách hàng đó (chỉ đọc) sẽ được gửi đến nhà cung cấp AI của bạn. Hãy nêu rõ điều này trong chính sách quyền riêng tư của bạn.

NexCMP không đo đếm chi phí AI. Hãy sử dụng các tính năng quản lý ngân sách của nhà cung cấp và giảm thiết lập AI turns mỗi ngày cho mỗi khách hàng (mặc định là 40, trong Customers › Support › Ticket › AI settings) để giới hạn chi tiêu.

Bước tiếp theo

AI Chat và AI Agent luôn ở trạng thái tắt cho đến khi bạn lưu key nhà cung cấp, vì vậy bạn sẽ không bị tính phí hay gửi dữ liệu đi bất cứ đâu trước khi đưa ra quyết định. Xem bài tổng quan, hoặc tìm hiểu các module khác.

Câu hỏi về các module AI

Những model AI nào hoạt động được?
Bất kỳ model nào hoạt động sau endpoint chat-completions tương thích OpenAI có hỗ trợ tool (function) calling. Bạn thiết lập endpoint, key và model trong Admin › Settings › AI provider.
Agent có thể truy cập vào máy chủ của khách hàng khác không?
Không. AI Agent chỉ hoạt động trên các VM thuộc tài khoản của khách hàng đã đăng nhập, sử dụng thông tin đăng nhập đã lưu cho VM đó.
NexCMP có tính phí AI không?
Không. Các module AI đã được bao gồm trong license. Bạn thanh toán cho nhà cung cấp AI theo mức sử dụng của key mà bạn cấu hình.
Làm thế nào để kiểm tra kết nối với nhà cung cấp AI?
Trong Admin › Settings › AI provider, nhấn Save rồi chọn Test connection. Hệ thống sẽ gửi một câu hỏi ngắn và hiển thị Connected cùng tên model và thời gian phản hồi, hoặc hiển thị lỗi do nhà cung cấp trả về.
AI Agent có cần một SSH gateway riêng không?
Không. Trong bản cài đặt mặc định, panel sử dụng SSH client của chính nó. Web terminal ssh-proxy tùy chọn chỉ được dùng khi tính năng web SSH được bật.
Khách truy cập chưa đăng nhập có thể dùng AI Chat không?
Không. AI Chat chỉ dành cho khách hàng đã đăng nhập; khách truy cập chưa đăng nhập sẽ được yêu cầu đăng nhập trước.
AI Agent có hoạt động trên các VM Windows không?
Không. Tính năng này chỉ hoạt động trên các VM Linux đang chạy; các VM Windows sẽ bị từ chối.
Tôi có thể tắt tính năng này không?
Có. Tắt module AI trong License › Modules; AI Chat và AI Agent sẽ biến mất khỏi portal và API của chúng sẽ phản hồi rằng module đã bị vô hiệu hóa.

Tích hợp AI vào nền tảng cloud của bạn

AI Chat và AI Agent có trong mọi license NexCMP — miễn phí năm đầu tiên, hoặc $499 một lần kèm mã nguồn.

Cập nhật lần cuối: