Naia
Mục lục
  1. 1Hướng dẫn video
  2. 2Naia OS Live USB
  3. 3Cài đặt & Triển khai
  4. 3.1Cài đặt Naia OS (ISO)
  5. 3.2Cài đặt ứng dụng
  6. 4Bắt đầu
  7. 4.1Naia Model Pricing
  8. 4.2naia-omni-cascade
  9. 4.3demo
  10. 4.4naia-offline
  11. 4.5naia-model-dev
  12. 4.6naia-online
  13. 5Màn hình chính
  14. 6Trò chuyện
  15. 6.1DJ radio cá nhân và hướng dẫn triển lãm
  16. 7Lịch sử hội thoại
  17. 8Tiến độ công việc
  18. 9Kỹ năng
  19. 10Kênh
  20. 11Đại lý
  21. 12Chẩn đoán
  22. 13Không gian làm việc
  23. 14Trình duyệt
  24. 15Quản lý bảng điều khiển
  25. 16Trò chuyện bằng giọng nói
  26. 17Cài đặt
  27. 18Chi tiết công cụ
  28. 19Tài khoản Naia
  29. 20Khắc phục sự cố
  30. 21Sử dụng và đóng góp mã nguồn mở

4.4. naia-offline

Naia là một dự án mã nguồn mở được xây dựng trên tinh thần "sở hữu AI của riêng bạn trên chính máy tính của bạn." Thay vì giao các cuộc trò chuyện của bạn cho đám mây của các tập đoàn lớn, bạn tải mô hình về và chạy trực tiếp trên GPU của chính mình. Mô hình không giới hạn ở Naia OS (vỏ giao diện) — nó có thể dùng một cách tổng quát thông qua API tương thích OpenAI: bất kỳ OpenAI SDK, công cụ hay ứng dụng nào cũng hoạt động chỉ bằng cách đổi endpoint, và bạn có thể xây dựng các ứng dụng mới trên nền tảng đó. Giấy phép sử dụng mô hình Naia được cung cấp cho người đăng ký cá nhân (doanh nghiệp / nhiều chỗ ngồi → liên hệ chúng tôi), và được kích hoạt bằng một khóa đăng ký. Phí đăng ký được dùng để cải thiện dự án mã nguồn mở Naia và vận hành dịch vụ.

  • Quyền sở hữu — mô hình nằm trên thiết bị của bạn. Nó vẫn hoạt động ngay cả khi không có internet trong suốt thời gian đăng ký.
  • Quyền riêng tư — giọng nói và các cuộc trò chuyện được xử lý cục bộ và không bao giờ rời khỏi máy của bạn.
  • Phí cố định — không tính theo token hay theo giờ: $10 / month (cá nhân). Doanh thu tài trợ cho việc vận hành và cải thiện mã nguồn mở Naia.
  • Tự do sử dụng — không giới hạn ở naia-os (vỏ giao diện). Nó cung cấp một API tương thích OpenAI, nên bất kỳ OpenAI SDK / công cụ / ứng dụng nào cũng kết nối được chỉ bằng cách đổi endpoint, và bạn có thể xây dựng các ứng dụng mới trên nền tảng đó. (Chi tiết cho nhà phát triển → 4.5 Chi tiết mô hình (nhà phát triển))
  • An toàn — Mô hình đủ mạnh nên có nguy cơ bị lạm dụng (ví dụ lừa đảo bằng giọng nói); vì vậy chúng tôi áp dụng công nghệ thủy vân âm thanh để có khả năng truy vết, giúp bạn yên tâm sử dụng.

Mô hình bạn sẽ tải về là naia-0.9-omni-24g (trò chuyện bằng giọng nói thời gian thực đa ngôn ngữ). Hãy thử bản demo miễn phí 30 giây trước. Nếu bạn không có GPU, sử dụng trực tuyến (4.6) cũng đang được lên kế hoạch sau khi mở rộng nhóm GPU.

Cấu hình đề xuất: một GPU 24GB-VRAM (RTX 3090 / 4090, v.v.). Điều kiện tiên quyết: driver NVIDIA + podman (hoặc docker) + nvidia-container-toolkit (CDI), khoảng 30GB dung lượng đĩa trống.

Hãy tiến hành ngay bên dưới — ① Tải về → ② Phát hành khóa đăng ký & chạy → ③ Giải phóng & cài lại (chuyển thiết bị).

1. Download

Public image — just pull it. (Licensing is enforced by the token in step 2, not by the download.)

podman pull ghcr.io/nextain/naia-0.9-omni-24g:latest
2. Issue subscription key & run

One click issues a token and builds the run command with it. Please log in first.

Log in

On boot the container uses this token for subscription check + activating this device + decryption (active subscription only). Validity = subscription period, 1 subscription = 1 active device.

First boot takes a few minutes (model loading). Check readiness:

curl -s http://127.0.0.1:8892/health

Active device

None yet. Activates automatically when the container connects with the token above.

Restart / pause (same device)

To briefly stop/start on the SAME device, the command below is enough — the cert persists in the volume, so it reboots offline (no gateway) as the same device (no re-issue, no 409). Don't use step 3 (release) unless you're switching devices or ending the subscription.

podman restart naia-omni

First boot/restart takes a few minutes (model loading) — wait until the health check (step 2) shows ready:true. Connection failures (refused/1006) before that are normal.

3. Release & reinstall (switch device)

To switch devices or reinstall, run the command below — (1) release inside the container (reported to the server, active device freed), (2) remove the container, (3) remove the license volume (clears the released marker = reinstall-ready). Then issue & run again with a new subscription key in step 2.

If you delete the container without releasing (or lose the device), the server's active device is not freed, so new activation is blocked until the subscription period ends (auto-freed at expiry). Release only frees the active-device slot — to finish switching, run step 2 (issue & run) again on the new device.

podman exec naia-omni bash /app/release.sh
podman rm -f naia-omni
podman volume rm naia-omni-license

Kết nối từ naia-os (hoặc bất kỳ ứng dụng nào)

Trỏ URL gateway/backend của naia-os tới container đang chạy. Chỉ cần cung cấp URL gốc — đường dẫn (/v1/realtime) và mô hình mặc định sẽ được áp dụng tự động:

  • Cùng một PC: ws://127.0.0.1:8892 — là cục bộ nên dùng văn bản thuần (plaintext) là được.
  • Thiết bị khác (từ xa): kết nối thông qua một cổng vào TLS (xem Tailscale bên dưới). Khi bạn đưa cho naia-os một hostname, nó sẽ tự động kết nối bằng mã hóa (wss) để đảm bảo an toàn; nhưng cổng 8892 của container là văn bản thuần (ws), nên nếu kết nối trực tiếp bằng TLS tới 8892 sẽ thất bại (lỗi SSL/Websocket). Vì vậy với truy cập từ xa hãy dùng một địa chỉ có TLS đặt ở phía trước (ví dụ https://<host>:8443).

Khóa đăng ký chỉ được dùng một lần duy nhất, vào lúc chạy (kích hoạt) — để kiểm tra đăng ký và phát hành giấy phép. Sau khi đã kích hoạt, container tự xác minh giấy phép cục bộ, nên các client như naia-os chỉ cần kết nối tới URL ở trên — 127.0.0.1 (văn bản thuần) trên cùng một PC, hoặc Tailscale (TLS) từ thiết bị khác như bên dưới. Không có khóa kết nối riêng.

Để sử dụng từ mã nguồn (API tương thích OpenAI chat / TTS / STT / embeddings / realtime) → xem 4.5 Chi tiết mô hình (nhà phát triển).

Truy cập từ xa — Tailscale (đề xuất)

Cách dễ nhất để truy cập an toàn GPU tại nhà từ naia-os trên một laptop/điện thoại khác:

  1. Cài Tailscale trên cả hai thiết bị và đăng nhập bằng cùng một tài khoản.
  2. Trên PC có GPU, thiết lập một cổng vào TLS một lần (Tailscale tự động phát hành và kết thúc chứng chỉ):
    tailscale serve --bg --https=8443 http://127.0.0.1:8892
    
  3. Đặt URL backend của naia-os thành https://<tên-máy>.<tailnet>.ts.net:8443 (đường dẫn và mô hình tự động). Địa chỉ máy có thể xem bằng tailscale status.

Như vậy Tailscale sẽ nhận TLS và chuyển tiếp tới 8892 văn bản thuần, nên kết nối mã hóa (wss) của naia-os hoạt động bình thường. Không cần mở cổng hay IP công cộng, dùng được ở nhà lẫn khi đi xa.

⚠️ ws://<tailscale-ip>:8892 kết nối trực tiếp sẽ KHÔNG hoạt động với naia-os — vì naia-os nâng hostname lên wss (TLS) nhưng 8892 là văn bản thuần. Hãy dùng cổng vào --https (:8443) ở trên. (Nếu là mã của riêng bạn chỉ dùng ws thuần thì kết nối trực tiếp tới tailnet IP vẫn được.)

Các tùy chọn từ xa khác (lựa chọn thay thế)

Phương thứcGhi chú
WireGuardVPN tự lưu trữ. Phiên bản thủ công của Tailscale (tự trao đổi khóa).
Cloudflare Tunnel (cloudflared)Tên miền công cộng + TLS tự động, không cần chuyển tiếp cổng.
SSH tunnelssh -L 8892:127.0.0.1:8892 user@gpu-pc — 1:1, đơn giản.
Cùng LANTrong router của bạn, chỉ cần ws://<lan-ip>:8892.
ngrok / frpTunnel công cộng tạm thời (demo/thử nghiệm).

Lớp bao bọc là ws thuần. Khi phơi bày ra mạng công cộng, hãy luôn đặt TLS + xác thực của tunnel/VPN ở phía trước. Tailscale / WireGuard / SSH tự bản thân đã được mã hóa.

Chi tiết giấy phép

  • Hiệu lực = thời gian đăng ký — giấy phép có hiệu lực trong thời gian đăng ký. Nó chạy ngoại tuyến trong khoảng thời gian đó; chỉ cần internet khi gia hạn. Khi hết hạn, container sẽ tự động tắt — hãy gia hạn và kích hoạt lại (bước 2) để tiếp tục sử dụng.
  • 1 đăng ký = 1 thiết bị hoạt động — mỗi lần chỉ có một thiết bị hoạt động, và trong khi một thiết bị đang hoạt động thì bạn không thể phát hành khóa đăng ký mới (thông thường chỉ có một khóa).
  • Chuyển thiết bị = giải phóng (bước 3 ở trên) + kích hoạt lại trên thiết bị mới — việc giải phóng trong container của thiết bị cũ được báo cáo lên máy chủ tự động và giải phóng thiết bị hoạt động. Sau đó phát hành & chạy lại trên thiết bị mới (bước 2). Chỉ giải phóng thôi thì chỉ làm trống chỗ.
  • Xóa container mà không giải phóng thì KHÔNG giải phóng thiết bị hoạt động — nếu bạn gỡ container bằng podman rm (hoặc mất thiết bị), việc giải phóng không được báo cáo lên máy chủ, nên thiết bị hoạt động vẫn còn đó và việc kích hoạt mới bị chặn cho đến khi hết thời gian đăng ký (tự giải phóng khi hết hạn). Luôn chạy bước 3 giải phóng trước khi xóa container.
  • Dừng tự động gia hạn (web) — vô hiệu hóa việc gia hạn của một khóa đăng ký trên web không làm nó vô hiệu ngay lập tức; nó dừng gia hạn, nên thiết bị hoạt động sẽ rời đi khi kết thúc thời gian đăng ký (không thể phát hành lại cho đến lúc đó). Để giải phóng thiết bị hoạt động ngay bây giờ, hãy dùng cách giải phóng container. Chỉ dùng nếu khóa bị lộ.
  • Một đăng ký cá nhân có thể được dùng để kiếm tiền từ tác phẩm sáng tạo của chính bạn (ví dụ VTubing). Doanh nghiệp / nhiều chỗ ngồi / kiosk / triển lãm / bán lại / nhúng vào sản phẩm là theo thỏa thuận riêng.
  • Âm thanh được tạo ra có chứa thủy vân nhận dạng — giọng nói đầu ra được khắc một tín hiệu nhận dạng có thể truy vết, nên các hành vi lạm dụng như mạo danh, tổng hợp giọng nói không có sự đồng ý, deepfake hoặc lừa đảo đều có thể truy ngược về nguồn. Việc sử dụng bất hợp pháp hoặc lừa dối như vậy bị cấm, và nếu bị phát hiện có thể dẫn đến hủy đăng ký và trách nhiệm pháp lý.

Đổi mô hình trò chuyện (từ 0.91)

naia có sẵn một AI để trò chuyện theo mặc định. Từ phiên bản 0.91, bạn có thể thay AI trò chuyện này bằng một mô hình khác. Giọng nói (nói/nghe) và đăng ký được giữ nguyên — chỉ phần đảm nhiệm việc trò chuyện được thay thế.

  • Mô hình trò chuyện mặc định là một LLM mở tích hợp sẵn. Nó nhẹ và xử lý được nhiều ngôn ngữ. Bạn có thể thử đổi sang mô hình khác và quay lại mặc định bất cứ lúc nào.
  • Không thể nạp mô hình quá lớn. Ngay cả khi card đồ họa của bạn có 24GB, chức năng nói/nghe luôn chiếm khoảng 10GB. Vì vậy AI trò chuyện mới mà bạn nạp giới hạn ở khoảng 14GB. Lớn hơn mức này sẽ không được áp dụng.
  • Có lỗi thì cuộc trò chuyện cũng không bị gián đoạn. Nếu việc nạp mô hình mới thất bại, hệ thống sẽ tự quay về mô hình đang dùng.
  • Người đăng ký cá nhân không cần tải thêm gì. Chỉ với đăng ký của bạn là đã đổi được.

Cách đổi cụ thể có trong hướng dẫn cho nhà phát triển. Chúng tôi đang chuẩn bị tính năng để chỉ cần chọn mô hình trên màn hình và bấm là đổi được.

Cập nhật lên phiên bản mới (từ 0.91)

Khi có phiên bản mới, chỉ cần tải image mới rồi khởi động lại là xong. Đăng ký, đăng ký thiết bị, mô hình mặc định và cấu hình giọng nói đều được giữ nguyên, và bạn không cần xác thực lại. (Lần đầu chạy phiên bản mới sẽ tự động xác thực lại qua internet, nên khi cập nhật cần có kết nối internet.)

# 1) Tải phiên bản mới nhất
podman pull ghcr.io/nextain/naia-0.9-omni-24g:latest

# 2) Chỉ dọn container (giữ nguyên volume giấy phép)
podman stop naia-omni && podman rm naia-omni

# 3) Chạy lại đúng lệnh đã dùng khi cài đặt lần đầu
#    (gắn cùng volume giấy phép thì đăng ký và xác thực thiết bị được giữ nguyên)
  • Để chỉ định một phiên bản cụ thể, hãy ghi phiên bản như :0.91 thay cho :latest. Nếu phiên bản mới có vấn đề, bạn có thể quay lại bằng cách tải tag phiên bản cũ theo cùng cách.
  • ⚠️ Đừng bấm "giải phóng thiết bị" để cập nhật. Giải phóng thiết bị chỉ dùng khi bạn đổi máy tính đang dùng sang một máy khác. Nếu bấm nhầm khi định cập nhật, bạn sẽ phải xác thực lại từ đầu. Chỉ cần giữ nguyên volume giấy phép là cập nhật được mà không cần giải phóng.

Các mô hình sắp ra mắt

  • naia-0.9-coding-24g (24GB, lập trình/agent) — đã lên kế hoạch
  • naia-0.9-omni-48g (48GB, omni lớn hơn) — đã lên kế hoạch
  • Phần mở rộng tích hợp Naia-OS — được lên kế hoạch như một phần mở rộng ngoại tuyến cắm thẳng vào ứng dụng naia-os. Nó sẽ tự động phát hiện GPU của bạn, chọn mô hình phù hợp (tier), tải về và cài đặt trong một bước (không cần dòng lệnh).

Tất cả sẽ được cung cấp theo cùng một đăng ký $10 / month (cá nhân). Việc triển khai B2B theo thỏa thuận riêng.