1. update nanokvm cua, led, homepage

This commit is contained in:
zepan
2025-10-07 13:54:37 +08:00
parent 425eb69324
commit 22b7e6f04f
32 changed files with 1506 additions and 253 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

View File

@@ -0,0 +1,437 @@
---
title: Experimental AI Agent
keywords: NanoKVM, AI Agent, Computer Use
update:
- date: 2025-10-06
version: v0.1
author: zepan
content:
- Release docs
---
## Introduction
NanoKVM-Pro experimentally introduces an AI Agent feature, enabling users to quickly experience the currently trending **Computer Use Agent** capability.
**Computer Use** leverages multimodal Vision-Language Models (VLMs) to empower users to control their computers via natural language—eliminating the need for complex scripting previously required.
For an overview of the Computer Use concept, refer to Anthropics demonstration video and user experiences shared on Reddit:
https://www.reddit.com/r/ClaudeAI/comments/1ga3uqn/mindblowing_experience_with_claude_computer_use
<iframe width="560" height="315" src="https://www.youtube.com/embed/ODaHJzOyVCQ" frameborder="0" allowfullscreen></iframe>
## Advantages of NanoKVM-Pro
How does NanoKVM-Pros implementation of Computer Use compare favorably to Anthropics offering?
1. **Out-of-the-box usability**
- NanoKVM-Pro comes with the Computer Use application built-in. Users can launch it directly from the web UI with a single click—no complex environment setup required, unlike Anthropics demo which demands significant pre-configuration.
2. **Hardware-level Computer Use**
- Anthropics solution is software-based, limiting support to macOS 11+ and Windows 10+. Linux and Android are not supported.
- NanoKVM-Pros Computer Use operates at the hardware level. As an IP-KVM device, it natively captures screenshots and controls mouse/keyboard at the hardware layer, enabling compatibility with Windows, macOS, Linux, and even Android.
3. **Support for self-hosted deployment**
- Anthropic uses a closed-source large model, requiring users to upload screenshots to their servers—making it unsuitable for privacy-sensitive tasks.
- NanoKVM-Pro supports custom VLM model endpoints. You can connect to either online commercial APIs or your own self-hosted open-source VLM server (via OpenAI-compatible API).
- Until recently (mid-2025), no open-source VLM could perform basic Computer Use tasks. However, Alibabas newly released open-source models—**qwen3-vl-235b-a22b-instruct** and **qwen3-vl-30b-a3b-instruct** (October 2025)—now enable foundational Computer Use capabilities.
- With the rapid advancement of AI models, we believe that by next year, open-source VLMs will deliver practical, self-hosted Computer Use functionality.
Below are mobile screen recordings of NanoKVM-Pro performing simple demonstration tasks (downloading an ESP32 datasheet and setting DNS):
<div class="video-row">
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/cua/download_esp32.mp4"></video>
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/cua/set_dns.mp4"></video>
</div>
<style>
.video-row {
display: flex;
gap: 12px;
flex-wrap: wrap;
justify-content: center;
}
.video-row video {
flex: 1;
min-width: 280px;
aspect-ratio: 9/16;
}
@media (max-width: 600px) {
.video-row {
flex-direction: column;
}
}
</style>
As an experimental feature, NanoKVM-Pros Computer Use Agent (CUA) is implemented as a standalone Python service, making it easy for community developers to modify and test.
Contributions from developers interested in AI Agents are welcome: https://github.com/sipeed/nanokvm_cua
## Critical Warnings Before Use!!!
Before explaining how to try this feature, we must **emphatically stress** the current limitations and risks of CUA.
Todays large models are still very limited and prone to **hallucinations**. When granted hardware-level control, these hallucinations can cause **irreversible damage** to your computer.
For example, in 2025, a user reportedly lost an entire database due to unintended actions by Anthropics Computer Use feature.
**While using CUA, please stay physically near your computer**, monitor every action the AI performs, and be ready to interrupt it immediately if it attempts a dangerous operation.
Additionally, CUA requires connection to a VLM model server. You must either:
- Purchase token credits from a VLM provider and enter your API key, **or**
- Deploy your own VLM server.
**Users are solely responsible for any data loss, system damage, or incurred costs resulting from the use of CUA.**
## Quick Start Guide
### Set Video Mode
CUA captures screenshots from the KVM stream. Before using CUA, switch the **Video Mode** to **MJPEG**, and we recommend setting your desktop resolution to **1280×720**:
1. Higher-resolution images increase VLM inference time and token costs.
2. Lower resolutions (e.g., 800×600) make on-screen elements too small, forcing CUA to take more steps—increasing cost and failure rate.
![set_mjpeg](../../../assets/NanoKVM/pro/cua/set_mjpeg.jpg)
### Read the Safety Notice
Click the **"Smart Assistant"** icon in the floating toolbar to view CUAs safety notice.
We **strongly urge** you to fully read and understand all risks before proceeding.
![note](../../../assets/NanoKVM/pro/cua/note.jpg)
### Install Dependencies
Since CUA is experimental and involves privacy-sensitive operations, we do **not** pre-install its dependencies.
On first use, click the **"Install Dependencies"** button to automatically install required packages.
A terminal window will appear showing installation progress—please wait until it completes.
### Launch CUA Service
After dependencies are installed, click **"Try It Now"** to start the CUA service. A new CUA window will appear within 510 seconds.
*(If no window appears, check if your browser blocked pop-ups.)*
> Note: The current CUA implementation increases CPU usage on the KVM host, which may cause lag in the main KVM interface.
For security reasons:
- Only **one CUA instance** is allowed at a time.
- Opening the CUA URL in a new tab will **not** work.
- Closing or refreshing the CUA webpage **automatically stops** the service. You must restart it from the main page.
The CUA web interface is responsive and works on both desktop and mobile browsers. Desktop layout example:
![web_pc](../../../assets/NanoKVM/pro/cua/web_pc.jpg)
> **For developers**: You can manually run CUA via terminal:
> `python /kvmapp/cua/cua_webapp.py --auth`
### Configure CUA Settings
On first use, go to the **Settings** tab and fill in the following:
1. **API Type**
- **DashScope** (default): Lightweight, see https://www.aliyun.com/product/bailian
- **OpenAI**: Most universal format—ideal for self-hosted VLM servers (e.g., vLLM/SGLang)
- **Genai**: *TODO*
2. **API Key**
- Enter the key from your VLM provider or your self-hosted server.
3. **Base URL**
- Required for OpenAI-style APIs. Examples:
- `https://dashscope.aliyuncs.com/compatible-mode/v1`
- `https://192.168.0.xxx:8000/v1`
4. **Model Name**
- Specify the VLM model name:
- Commercial: `qwen3-vl-plus`
- Open-source: `qwen3-vl-235b-a22b-instruct`, `qwen3-vl-30b-a3b-instruct`
- For self-hosted vLLM deployments: use the `--served-model-name` you configured
5. **IMG_KEEP_N**
- To reduce token usage, only the most recent *N* screenshots are retained.
6. **MAX_ROUNDS**
- Maximum steps per task—to prevent infinite loops and excessive token consumption.
7. **Initial Prompt**
- This is the system prompt we designed for CUA tasks. Minor tuning is allowed, but **do not modify** the instruction-generation part unless you also update the corresponding Python script.
Click **"Submit"** to save your configuration.
### Issue Automation Tasks
Switch back to the **Chat** tab, enter your desired task in the text box (e.g., *"download raspberrypi datasheet"* or *"set dns server to 8.8.8.8"*), and click **"Send"** to observe CUA in action.
> The right-side preview window is **read-only**—you cannot interact with it via mouse/keyboard.
The chat window displays each steps screenshot and CUAs planned action.
- If CUA gets stuck in a loop, click **"Pause"**, provide corrective instructions, then click **"Send"**.
- If CUA is about to perform a dangerous action, **pause immediately**.
- To start a new task, click **"Reset"**.
![chat_task](../../../assets/NanoKVM/pro/cua/chat_task.jpg)
## Self-Hosting a VLM Model
### Hardware Requirements
Thanks to the Qwen3-VL series release, self-hosting a VLM for CUA is now feasible.
As of October 2025, the open-source **Qwen3-VL** models have significantly improved:
- `qwen3-vl-235b-a22b-instruct` surpasses last years `qwen-vl-max`
- `qwen3-vl-30b-a3b-instruct` outperforms `qwen2.5-vl-72b-instruct`
Both now meet the threshold for basic computer control tasks.
However:
- The **235B** model requires at least **4×H100 GPUs** (320GB total)—impractical for most users.
- We focus on demonstrating **qwen3-vl-30b-a3b-instruct** (30B parameters), which needs ~40GB of memory (depending on precision).
Possible deployment setups:
1. **1× L40S / RTX6000 / H100** → FP8
2. **2× RTX4090 / RTX5090** → FP8
3. **4× RTX3090** → FP16
4. **CPU**: 48GB+ RAM, 16+ cores → Q4 quantization
> Note: Community-released [Q4 quantized models](https://huggingface.co/yairpatch/Qwen3-VL-30B-A3B-Thinking-GGUF) appear to suffer from excessive quantization error, leading to inaccurate UI clicks. Official AWQ-quantized versions may resolve this.
Thus, **4×RTX3090** or **2×RTX4090/5090** are the most practical options for individual users.
Weve successfully tested deployments using **vLLM** (SGLang is also supported)—both provide OpenAI-compatible APIs.
### Deploying VLM with vLLM
1. Install vLLM: https://docs.vllm.ai/en/stable/getting_started/installation/gpu.html
2. Download model weights (FP16 or FP8):
- https://modelscope.cn/models/Qwen/Qwen3-VL-30B-A3B-Instruct
- https://modelscope.cn/models/Qwen/Qwen3-VL-30B-A3B-Instruct-FP8
3. Launch the server:
```shell
vllm serve \
/your_models_path/Qwen/Qwen3-VL-30B-A3B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.90 \
--max-model-len 65536 \
--served-model-name qwen3-vl-30b-a3b-instruct \
--api-key skxxxxxx
```
Then configure CUA with your local server details—and enjoy fully private, local Computer Use!
Example server output:
```
(vllm) zp@server105:~/work/vllm$ vllm serve \ \
/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.90 \
--max-model-len 65536 \
--served-model-name Qwen3-VL-30B-A3B-Instruct\
--api-key sk123
INFO 10-06 15:56:22 [__init__.py:216] Automatically detected platform cuda.
(APIServer pid=41428) INFO 10-06 15:56:26 [api_server.py:1839] vLLM API server version 0.11.0
(APIServer pid=41428) INFO 10-06 15:56:26 [utils.py:233] non-default args: {'model_tag': '/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', 'host': '0.0.0.0', 'api_key': ['sk123'], 'model': '/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', 'max_model_len': 65536, 'served_model_name': ['Qwen3-VL-30B-A3B-Instruct'], 'tensor_parallel_size': 4}
(APIServer pid=41428) INFO 10-06 15:56:26 [model.py:547] Resolved architecture: Qwen3VLMoeForConditionalGeneration
(APIServer pid=41428) `torch_dtype` is deprecated! Use `dtype` instead!
(APIServer pid=41428) INFO 10-06 15:56:26 [model.py:1510] Using max model len 65536
(APIServer pid=41428) INFO 10-06 15:56:27 [scheduler.py:205] Chunked prefill is enabled with max_num_batched_tokens=2048.
INFO 10-06 15:56:32 [__init__.py:216] Automatically detected platform cuda.
(EngineCore_DP0 pid=41565) INFO 10-06 15:56:35 [core.py:644] Waiting for init message from front-end.
(EngineCore_DP0 pid=41565) INFO 10-06 15:56:35 [core.py:77] Initializing a V1 LLM engine (v0.11.0) with config: model='/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', speculative_config=None, tokenizer='/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=65536, download_dir=None, load_format=auto, tensor_parallel_size=4, pipeline_parallel_size=1, data_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_fallback=False, disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser=''), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None), seed=0, served_model_name=Qwen3-VL-30B-A3B-Instruct, enable_prefix_caching=True, chunked_prefill_enabled=True, pooler_config=None, compilation_config={"level":3,"debug_dump_path":"","cache_dir":"","backend":"","custom_ops":[],"splitting_ops":["vllm.unified_attention","vllm.unified_attention_with_output","vllm.mamba_mixer2","vllm.mamba_mixer","vllm.short_conv","vllm.linear_attention","vllm.plamo2_mamba_mixer","vllm.gdn_attention","vllm.sparse_attn_indexer"],"use_inductor":true,"compile_sizes":[],"inductor_compile_config":{"enable_auto_functionalized_v2":false},"inductor_passes":{},"cudagraph_mode":[2,1],"use_cudagraph":true,"cudagraph_num_of_warmups":1,"cudagraph_capture_sizes":[512,504,496,488,480,472,464,456,448,440,432,424,416,408,400,392,384,376,368,360,352,344,336,328,320,312,304,296,288,280,272,264,256,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,4,2,1],"cudagraph_copy_inputs":false,"full_cuda_graph":false,"use_inductor_graph_partition":false,"pass_config":{},"max_capture_size":512,"local_cache_dir":null}
(EngineCore_DP0 pid=41565) WARNING 10-06 15:56:35 [multiproc_executor.py:720] Reducing Torch parallelism from 44 threads to 1 to avoid unnecessary CPU contention. Set OMP_NUM_THREADS in the external environment to tune this value as needed.
(EngineCore_DP0 pid=41565) INFO 10-06 15:56:35 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0, 1, 2, 3], buffer_handle=(4, 16777216, 10, 'psm_9b2ff0e4'), local_subscribe_addr='ipc:///tmp/012ca9e5-5641-4fb7-a15a-3031d0bab01f', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_c289f912'), local_subscribe_addr='ipc:///tmp/1da89172-ec87-4616-92cb-37f804606ec3', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_e3f33e50'), local_subscribe_addr='ipc:///tmp/d22d4439-f2d4-4ad5-bf43-c8aefa75d97d', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_202b7486'), local_subscribe_addr='ipc:///tmp/8dfcea44-3e7d-46c0-881a-bb2913de8283', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_acb66435'), local_subscribe_addr='ipc:///tmp/a79c13a7-b107-4974-bc22-d18fbb753f4a', remote_subscribe_addr=None, remote_addr_ipv6=False)
[Gloo] Rank 2 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 0 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 1 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 3 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 2 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 0 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 1 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 3 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
INFO 10-06 15:56:46 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[1, 2, 3], buffer_handle=(3, 4194304, 6, 'psm_a8cdf3eb'), local_subscribe_addr='ipc:///tmp/f25bfe61-de00-442b-9f93-e5edf37c4389', remote_subscribe_addr=None, remote_addr_ipv6=False)
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 2 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 1 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 3 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 3 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 3, EP rank 3
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 2 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 2, EP rank 2
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 0 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 0, EP rank 0
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 1 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 1, EP rank 1
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
(Worker_TP3 pid=41702) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP0 pid=41699) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP3 pid=41702) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
(Worker_TP2 pid=41701) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP3 pid=41702) INFO 10-06 15:56:51 [cuda.py:366] Using Flash Attention backend on V1 engine.
(Worker_TP1 pid=41700) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP0 pid=41699) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
(Worker_TP0 pid=41699) INFO 10-06 15:56:51 [cuda.py:366] Using Flash Attention backend on V1 engine.
(Worker_TP2 pid=41701) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
Loading safetensors checkpoint shards: 0% Completed | 0/13 [00:00<?, ?it/s]
(Worker_TP1 pid=41700) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
(Worker_TP2 pid=41701) INFO 10-06 15:56:52 [cuda.py:366] Using Flash Attention backend on V1 engine.
(Worker_TP1 pid=41700) INFO 10-06 15:56:52 [cuda.py:366] Using Flash Attention backend on V1 engine.
Loading safetensors checkpoint shards: 8% Completed | 1/13 [00:02<00:24, 2.02s/it]
Loading safetensors checkpoint shards: 15% Completed | 2/13 [00:04<00:22, 2.02s/it]
Loading safetensors checkpoint shards: 23% Completed | 3/13 [00:06<00:20, 2.04s/it]
Loading safetensors checkpoint shards: 31% Completed | 4/13 [00:08<00:18, 2.05s/it]
Loading safetensors checkpoint shards: 38% Completed | 5/13 [00:10<00:16, 2.09s/it]
Loading safetensors checkpoint shards: 46% Completed | 6/13 [00:12<00:14, 2.08s/it]
Loading safetensors checkpoint shards: 54% Completed | 7/13 [00:13<00:09, 1.64s/it]
Loading safetensors checkpoint shards: 62% Completed | 8/13 [00:15<00:08, 1.78s/it]
Loading safetensors checkpoint shards: 69% Completed | 9/13 [00:17<00:07, 1.87s/it]
Loading safetensors checkpoint shards: 77% Completed | 10/13 [00:19<00:05, 1.94s/it]
Loading safetensors checkpoint shards: 85% Completed | 11/13 [00:20<00:03, 1.84s/it]
Loading safetensors checkpoint shards: 92% Completed | 12/13 [00:23<00:01, 1.91s/it]
(Worker_TP2 pid=41701) INFO 10-06 15:57:16 [default_loader.py:267] Loading weights took 24.06 seconds
(Worker_TP2 pid=41701) INFO 10-06 15:57:16 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 24.325636 seconds
(Worker_TP3 pid=41702) INFO 10-06 15:57:16 [default_loader.py:267] Loading weights took 25.29 seconds
(Worker_TP1 pid=41700) INFO 10-06 15:57:17 [default_loader.py:267] Loading weights took 24.85 seconds
Loading safetensors checkpoint shards: 100% Completed | 13/13 [00:25<00:00, 1.97s/it]
Loading safetensors checkpoint shards: 100% Completed | 13/13 [00:25<00:00, 1.94s/it]
(Worker_TP0 pid=41699)
(Worker_TP0 pid=41699) INFO 10-06 15:57:17 [default_loader.py:267] Loading weights took 25.24 seconds
(Worker_TP3 pid=41702) INFO 10-06 15:57:17 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 25.534107 seconds
(Worker_TP1 pid=41700) INFO 10-06 15:57:17 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 25.147370 seconds
(Worker_TP0 pid=41699) INFO 10-06 15:57:17 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 25.517781 seconds
(Worker_TP3 pid=41702) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP2 pid=41701) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP1 pid=41700) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP0 pid=41699) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP1 pid=41700) INFO 10-06 15:57:44 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_1_0/backbone for vLLM's torch.compile
(Worker_TP1 pid=41700) INFO 10-06 15:57:44 [backends.py:559] Dynamo bytecode transform time: 12.36 s
(Worker_TP2 pid=41701) INFO 10-06 15:57:44 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_2_0/backbone for vLLM's torch.compile
(Worker_TP2 pid=41701) INFO 10-06 15:57:44 [backends.py:559] Dynamo bytecode transform time: 12.67 s
(Worker_TP0 pid=41699) INFO 10-06 15:57:45 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_0_0/backbone for vLLM's torch.compile
(Worker_TP0 pid=41699) INFO 10-06 15:57:45 [backends.py:559] Dynamo bytecode transform time: 12.90 s
(Worker_TP3 pid=41702) INFO 10-06 15:57:45 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_3_0/backbone for vLLM's torch.compile
(Worker_TP3 pid=41702) INFO 10-06 15:57:45 [backends.py:559] Dynamo bytecode transform time: 13.11 s
(Worker_TP1 pid=41700) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.849 s
(Worker_TP2 pid=41701) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.916 s
(Worker_TP0 pid=41699) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.527 s
(Worker_TP3 pid=41702) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.870 s
(Worker_TP3 pid=41702) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP2 pid=41701) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP0 pid=41699) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP1 pid=41700) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP3 pid=41702) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 13.11 s in total
(Worker_TP1 pid=41700) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 12.36 s in total
(Worker_TP2 pid=41701) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 12.67 s in total
(Worker_TP0 pid=41699) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 12.90 s in total
(Worker_TP3 pid=41702) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(Worker_TP2 pid=41701) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(Worker_TP0 pid=41699) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(Worker_TP1 pid=41700) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
Capturing CUDA graphs (mixed prefill-decode, PIECEWISE): 100%|█████████████████████████████████████████████████████████████████████████| 67/67 [00:11<00:00, 5.66it/s]
Capturing CUDA graphs (decode, FULL): 100%|████████████████████████████████████████████████████████████████████████████████████████████| 35/35 [00:06<00:00, 5.78it/s]
(Worker_TP0 pid=41699) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(Worker_TP2 pid=41701) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(Worker_TP1 pid=41700) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(Worker_TP3 pid=41702) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(EngineCore_DP0 pid=41565) INFO 10-06 15:58:12 [core.py:210] init engine (profile, create kv cache, warmup model) took 54.87 seconds
(APIServer pid=41428) INFO 10-06 15:58:17 [loggers.py:147] Engine 000: vllm cache_config_info with initialization after num_gpu_blocks is: 6297
(APIServer pid=41428) INFO 10-06 15:58:18 [api_server.py:1634] Supported_tasks: ['generate']
(APIServer pid=41428) WARNING 10-06 15:58:18 [model.py:1389] Default sampling parameters have been overridden by the model's Hugging Face generation config recommended from the model creator. If this is not intended, please relaunch vLLM instance with `--generation-config vllm`.
(APIServer pid=41428) INFO 10-06 15:58:18 [serving_responses.py:137] Using default chat sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8}
(APIServer pid=41428) INFO 10-06 15:58:18 [serving_chat.py:139] Using default chat sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8}
(APIServer pid=41428) INFO 10-06 15:58:18 [serving_completion.py:76] Using default completion sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8}
(APIServer pid=41428) INFO 10-06 15:58:18 [api_server.py:1912] Starting vLLM API server 0 on http://0.0.0.0:8000
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:34] Available routes are:
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /openapi.json, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /docs, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /docs/oauth2-redirect, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /redoc, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /health, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /load, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /ping, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /ping, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /tokenize, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /detokenize, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/models, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /version, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/responses, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/responses/{response_id}, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/responses/{response_id}/cancel, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/chat/completions, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/completions, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/embeddings, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /pooling, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /classify, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /score, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/score, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/audio/transcriptions, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/audio/translations, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /rerank, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/rerank, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v2/rerank, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /scale_elastic_ep, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /is_scaling_elastic_ep, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /invocations, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /metrics, Methods: GET
(APIServer pid=41428) INFO: Started server process [41428]
(APIServer pid=41428) INFO: Waiting for application startup.
(APIServer pid=41428) INFO: Application startup complete.
(APIServer pid=41428) INFO 10-06 15:58:23 [chat_utils.py:560] Detected the chat template content format to be 'openai'. You can set `--chat-template-content-format` to override this.
(APIServer pid=41428) INFO: 192.168.1.11:54734 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=41428) INFO 10-06 15:58:28 [loggers.py:127] Engine 000: Avg prompt throughput: 170.4 tokens/s, Avg generation throughput: 5.7 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=41428) INFO: 192.168.1.11:54734 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=41428) INFO: 192.168.1.11:54734 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=41428) INFO 10-06 15:58:38 [loggers.py:127] Engine 000: Avg prompt throughput: 642.9 tokens/s, Avg generation throughput: 9.9 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 56.3%
(APIServer pid=41428) INFO 10-06 15:58:48 [loggers.py:127] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 56.3%
```

View File

@@ -106,6 +106,23 @@ The LCD screen supports the following functions (all configured from the screen)
For details, see the [FAQ](https://wiki.sipeed.com/hardware/en/kvm/NanoKVM_Pro/faq.html#Image-Burning-Methods) section on `Image Burning Methods`.
## HDMI Secondary Display
Since NanoKVM-Pro can emulate a display, capture screen content, and features a small built-in screen, it can function as an HDMI secondary display.
In the UI, simply select **HDMI** as the video output source to display the captured video feed on the small screen.
When used as a desktop accessory, this feature can serve as a:
- Mini secondary monitor
- System performance monitor
- Video thumbnail player
and more.
![](./../../../assets/NanoKVM/pro/extended/hdmi.jpg)
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/extended/cat.mp4"></video>
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/extended/video.mp4"></video>
## USB Expansion Features
### USB NCM

View File

@@ -1,14 +1,30 @@
---
title: Screen Expansion LED Strip
title: Screen Sync Ambient Lighting
keywords: NanoKVM, LED Strip
update:
- date: 2025-9-05
- date: 2025-10-07
version: v0.2
author: zepan
content:
- improve docs
- date: 2025-09-05
version: v0.1
author: iawak9lkm
content:
- Release docs
---
## Introduction
The Screen-Sync LED Strip is a signature expansion accessory for NanoKVM-Pro.
When using NanoKVM-Pro with a desktop computer, it can capture the screen content and control an LED strip to display colors matching the edges of your screen—creating a dreamy, immersive lighting effect!
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/ledstrip/sync_led.mp4"></video>
⚠️ Note: To use this feature, ensure your power supply meets the specification: 5V ≥ 3A.
## Package Accessories Overview
If you purchased the LED strip package, you will receive the following items:
@@ -91,13 +107,9 @@ The connection layout is as follows:
* Enable via Web
1. Log in to NanoKVM via a browser
2. Navigate to **Settings → Device → LED Strip Settings**
2. Navigate to **Settings → Device → LED Strip Settings**, enable it and set the correct parameter.
![ledstrip_web1_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web1_en.jpg)
3. Enter the number of LEDs and enable the feature
![ledstrip_web2_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web2_en.jpg)
![ledstrip_setting](../../../assets/NanoKVM/pro/ledstrip/ledstrip_setting.jpg)
* Enable via Desk UI

View File

@@ -572,8 +572,10 @@ items:
file: kvm/NanoKVM_Pro/desk_start.md
- label: Advanced Applications
file: kvm/NanoKVM_Pro/extended.md
- label: Screen Color Extension LED Strip
file: kvm/NanoKVM_Pro/ws2812.md
- label: Screen Ambient Lighting
file: kvm/NanoKVM_Pro/ledstrip.md
- label: Experimental AI Agent
file: kvm/NanoKVM_Pro/cua.md
- label: FAQ
file: kvm/NanoKVM_Pro/faq.md
- label: Cluster

View File

@@ -0,0 +1,410 @@
---
title: 实验性AI Agent
keywords: NanoKVM, AI Agent, Computer Use
update:
- date: 2025-10-06
version: v0.1
author: zepan
content:
- Release docs
---
## 简介
NanoKVM-Pro 实验性引入了AI Agent功能可以让用户快速体验当下热门的Computer Use Agent功能。
Computer Use是基于多模态AI大模型(VLM),赋予用户使用自然语言自动化操控电脑的能力,而无需像以前那样进行复杂的脚本编程。
对于Computer Use概念可以参考Anthropic发布的相关展示视频和reddit上的一些使用体验
https://www.reddit.com/r/ClaudeAI/comments/1ga3uqn/mindblowing_experience_with_claude_computer_use
<iframe width="560" height="315" src="https://www.youtube.com/embed/ODaHJzOyVCQ"
frameborder="0" allowfullscreen></iframe>
## NanoKVM-Pro的优势
NanoKVM-Pro实现的Computer Use功能相对 Anthropic 的Computer Use有何优点呢
1. 开箱即用
1. NanoKVM-Pro已经内置Computer Use应用用户点击web页面按键即可体验运行无需像Anthropic提供的demo那样要求用户进行前置复杂的环境搭建
2. 硬件级Computer Use
1. Anthropic是基于软件的方案所以仅能局限于MacOS 11和Windows10以上的系统不支持Linux/Android。
2. NanoKVM-Pro的Computer Use是硬件级的因为它作为IPKVM天生能硬件级获取屏幕截图和硬件级操控鼠标所以可以支持Windows/MacOS/Linux,甚至Android等
3. 支持自部署
1. Anthropic 是闭源的大模型, 用户必须上传屏幕截图到他们服务器,所以无法进行一些隐私性的电脑操作。
2. NanoKVM-Pro支持自定义的VLM模型接口不仅可以对接在线的大模型接口还可以对接到用户自部署的开源VLM服务器(openai接口形式)
3. 在几个月前还没有能够实现基础computer use的开源VL模型但是就在最近(2025.10), alibaba发布的最新开源VL模型qwen3-vl-235b-a22b-instruct, qwen3-vl-30b-a3b-instruct 已经可以实现基础的computer use功能
4. 随着AI大模型的快速发展我们相信明年的开源VL模型将具备更强大的能力使得自部署实用性computer use成为现实
下面是NanoKVM-Pro执行简单示意任务下载esp32 datasheet 设置dns的手机录屏
<div class="video-row">
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/cua/download_esp32.mp4"></video>
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/cua/set_dns.mp4"></video>
</div>
<style>
.video-row {
display: flex;
gap: 12px;
flex-wrap: wrap;
justify-content: center;
}
.video-row video {
flex: 1;
min-width: 280px;
aspect-ratio: 9/16;
}
@media (max-width: 600px) {
.video-row {
flex-direction: column;
}
}
</style>
作为实验性功能NanoKVM-Pro的CUA目前是使用Python编写的独立服务方便社区用户快速修改测试。
欢迎对AI Agent感兴趣且有开发能力的用户贡献代码https://github.com/sipeed/nanokvm_cua
## 使用前的注意事项!!!
在介绍如何体验使用之前我必须在这里反复重申CUA功能在当前的局限性和危险性。
当前大模型的能力非常有限,且有不受控的**幻觉**,当它有硬件级的操控能力时,有可能在幻觉下对电脑造成**不可恢复的损坏**。
比如今年(2025)就有报道用户使用Anthropic 的Computer Use功能结果被删除了数据库。
你在体验CUA功能时**请保持在电脑旁**关注AI所执行的指令一旦发现将要执行危险操作及时中断它。
另外CUA功能需要连接到VLM模型服务器用户需要付费购买相关服务商的VLM tokens额度填入秘钥或者自己部署VLM服务器。
**以上风险和费用情况请用户周知使用CUA功能造成的一切电脑损失和额外费用由用户自己承担。**
## 快速指南
### 设置视频模式
CUA需要抓取屏幕截图用户在使用CUA功能前请切换"视频模式" 到 MJPEG
以及推荐设置桌面分辨率到1280x720:
1. VLA模型运算高分辨率的图像时间更久产生的tokens费用更高
2. 更低的分辨率如800x600会由于屏幕太小导致CUA需要更多步骤操作而增加费用和失败率
![set_mjpeg](../../../assets/NanoKVM/pro/cua/set_mjpeg.jpg)
### 阅读注意事项
点击悬浮栏的"Smart Assistant"图标会弹出CUA功能的注意事项。
我们再三强调请完全阅读理解CUA功能的风险后再执行。
![note](../../../assets/NanoKVM/pro/cua/note.jpg)
### 安装依赖
CUA是实验性功能同时也出于一些用户对这些隐私敏感性功能的顾虑我们没有预装相关软件包。
首次体验该功能前,需要用户自己点击"安装依赖"按键进行相关软件包安装。
点击按键后,会在新页面中弹出终端页面,显示安装相关依赖包的进度,耐心等待完成即可。
### 运行CUA服务
安装完依赖后,点击"Try It Now"按键即可开启CUA服务等待5~10s后就会弹出CUA功能的新窗口。如果没有弹出请检查是否chrome浏览器拦截了弹出窗口。
注意目前的CUA服务会增大KVM的CPU消耗可能导致原KVM窗口的操作卡顿。
出于安全性考虑CUA服务同时仅允许一个实例运行如果你复制CUA页面的网址在新标签页中打开是无法查看到内容的。
同样处于安全性考虑你关闭或者刷新CUA网页后CUA服务会自动关闭需要重新在主页面点击按键启动。
CUA网页是电脑手机浏览器兼容的布局电脑上的页面布局如下所示
![web_pc](../../../assets/NanoKVM/pro/cua/web_pc.jpg)
> 如果你是开发者,可以在终端使用 python /kvmapp/cua/cua_webapp.py --auth 来手动运行
### 填写CUA配置
首次使用前,请切换到设置页面,填写相关设置。
1. API Type
1. DashScope: 默认使用该API形式较为轻量 https://www.aliyun.com/product/bailian
2. OpenAI: 最通用的API形式特别是如果你要自部署VLM服务器那么开源的vLLM/SGLang将提供该形式的API服务器
3. GenaiTODO
2. API Key
1. 填写你在VLM服务商处获得的API Key如果是自部署的也请填上你部署时设置的key
3. Base URL
1. 如果你使用的是openAI形式 API需要填写服务器的URL
2. 比如 https://dashscope.aliyuncs.com/compatible-mode/v1
3. 比如 https://192.168.0.xxx:8000/v1
4. Model Name
1. 填写你在VLM服务商处选择的VLM模型名称
2. 商业模型推荐qwen3-vl-plus
3. 开源模型如: qwen3-vl-235b-a22b-instruct, qwen3-vl-30b-a3b-instruct
4. 自部署模型如使用vllm部署请填写--served-model-name的名字
5. IMG_KEEP_N
1. 为节省tokens消耗每次仅保留近IMG_KEEP_N次操作截图
6. MAX_ROUNDS
1. 单次任务允许的最大操作步骤防止VLM无限死循环消耗过多tokens
7. Initial Prompt
1. 这是我们根据CUA任务编写的初始提示词可以小心微调不可以修改指令生成部分除非你可以修改对应py脚本
填写完成后,点击"提交"来生效配置。
### 下达自动化任务
切回到Chat栏在最下方的文本框中填入你希望执行的任务点击"send"即可观察CUA的自动化操作。
> 注意右侧窗口是只读预览窗口,无法进行键鼠操作。
建议的初次测试任务可以参考"download raspberrypi datasheet", "set dns server to 8.8.8.8"
聊天窗口中会显示每一步的屏幕截图和CUA操作指令。
如果发现CUA进入死循环需要提示可以点击"pause"暂停输入一些提示再点击发送来纠正CUA。
如果发现CUA将执行危险操作也可以通过pause暂停。
完成任务或者需要新开任务,点击"Reset"来重置状态。
![chat_task](../../../assets/NanoKVM/pro/cua/chat_task.jpg)
## 自部署VLM模型
### 硬件配置
得益于Qwen3-VL系列的发布用户自部署VLM服务实现CUA功能也成为了现实。
在2025年10月最新发布的Qwen3-VL系列开源模型的能力大幅提高qwen3-vl-235b-a22b-instruct能力超越了去年的qwen-vl-max, qwen3-vl-30b-a3b-instruct超越了qwen2.5-vl-72b-instruct, 都达到了完成基础电脑操作的能力门槛。
qwen3-vl-235b-a22b-instruct是较大模型至少需要4xH100 (4x80=320GB) 来运行FP8模型对于普通用户来说比较困难。
我们主要介绍 qwen3-vl-30b-a3b-instruct 的自部署演示。
qwen3-vl-30b-a3b-instruct 有30B参数算上额外的上下文内存需求至少需要40B*DataType的内存需求。
可能的几种部署方式:
1. 1x L40S, RTX6000, H1000, ... FP8
2. 2x RTX4090, RTX5090 FP8
3. 4xRTX3090 FP16
4. CPU with 48GB+ memory, 16+ core; Q4
其中测试了社区用户发布的[量化的Q4模型](https://huggingface.co/yairpatch/Qwen3-VL-30B-A3B-Thinking-GGUF)似乎量化误差太大无法精确点击图标可能需要等待官方更新精确的AWQ模型。
所以对于个人用户来说4xRTX3090或2xRTX4090/5090是比较实际的部署方案。
目前我们实际测试通过vllm部署也可以尝试使用SGLang部署它们都支持提供openAI形式的API服务。
### vllm部署VLM
1. 安装vllm https://docs.vllm.ai/en/stable/getting_started/installation/gpu.html
2. 下载FP16或者FP8权重
1. https://modelscope.cn/models/Qwen/Qwen3-VL-30B-A3B-Instruct
2. https://modelscope.cn/models/Qwen/Qwen3-VL-30B-A3B-Instruct-FP8
3. 开启服务
```shell
vllm serve \
/your_models_path//Qwen/Qwen3-VL-30B-A3B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.90 \
--max-model-len 65536 \
--served-model-name qwen3-vl-30b-a3b-instruct \
--api-key skxxxxxx
```
然后在CUA页面中填上对应的信息即可完全本地使用啦
可以在服务器终端上看到相关运行信息:
```
(vllm) zp@server105:~/work/vllm$ vllm serve \ \
/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct \
--host 0.0.0.0 \
--port 8000 \
--tensor-parallel-size 4 \
--gpu-memory-utilization 0.90 \
--max-model-len 65536 \
--served-model-name Qwen3-VL-30B-A3B-Instruct\
--api-key sk123
INFO 10-06 15:56:22 [__init__.py:216] Automatically detected platform cuda.
(APIServer pid=41428) INFO 10-06 15:56:26 [api_server.py:1839] vLLM API server version 0.11.0
(APIServer pid=41428) INFO 10-06 15:56:26 [utils.py:233] non-default args: {'model_tag': '/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', 'host': '0.0.0.0', 'api_key': ['sk123'], 'model': '/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', 'max_model_len': 65536, 'served_model_name': ['Qwen3-VL-30B-A3B-Instruct'], 'tensor_parallel_size': 4}
(APIServer pid=41428) INFO 10-06 15:56:26 [model.py:547] Resolved architecture: Qwen3VLMoeForConditionalGeneration
(APIServer pid=41428) `torch_dtype` is deprecated! Use `dtype` instead!
(APIServer pid=41428) INFO 10-06 15:56:26 [model.py:1510] Using max model len 65536
(APIServer pid=41428) INFO 10-06 15:56:27 [scheduler.py:205] Chunked prefill is enabled with max_num_batched_tokens=2048.
INFO 10-06 15:56:32 [__init__.py:216] Automatically detected platform cuda.
(EngineCore_DP0 pid=41565) INFO 10-06 15:56:35 [core.py:644] Waiting for init message from front-end.
(EngineCore_DP0 pid=41565) INFO 10-06 15:56:35 [core.py:77] Initializing a V1 LLM engine (v0.11.0) with config: model='/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', speculative_config=None, tokenizer='/home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=65536, download_dir=None, load_format=auto, tensor_parallel_size=4, pipeline_parallel_size=1, data_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_fallback=False, disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser=''), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None), seed=0, served_model_name=Qwen3-VL-30B-A3B-Instruct, enable_prefix_caching=True, chunked_prefill_enabled=True, pooler_config=None, compilation_config={"level":3,"debug_dump_path":"","cache_dir":"","backend":"","custom_ops":[],"splitting_ops":["vllm.unified_attention","vllm.unified_attention_with_output","vllm.mamba_mixer2","vllm.mamba_mixer","vllm.short_conv","vllm.linear_attention","vllm.plamo2_mamba_mixer","vllm.gdn_attention","vllm.sparse_attn_indexer"],"use_inductor":true,"compile_sizes":[],"inductor_compile_config":{"enable_auto_functionalized_v2":false},"inductor_passes":{},"cudagraph_mode":[2,1],"use_cudagraph":true,"cudagraph_num_of_warmups":1,"cudagraph_capture_sizes":[512,504,496,488,480,472,464,456,448,440,432,424,416,408,400,392,384,376,368,360,352,344,336,328,320,312,304,296,288,280,272,264,256,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,4,2,1],"cudagraph_copy_inputs":false,"full_cuda_graph":false,"use_inductor_graph_partition":false,"pass_config":{},"max_capture_size":512,"local_cache_dir":null}
(EngineCore_DP0 pid=41565) WARNING 10-06 15:56:35 [multiproc_executor.py:720] Reducing Torch parallelism from 44 threads to 1 to avoid unnecessary CPU contention. Set OMP_NUM_THREADS in the external environment to tune this value as needed.
(EngineCore_DP0 pid=41565) INFO 10-06 15:56:35 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0, 1, 2, 3], buffer_handle=(4, 16777216, 10, 'psm_9b2ff0e4'), local_subscribe_addr='ipc:///tmp/012ca9e5-5641-4fb7-a15a-3031d0bab01f', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:39 [__init__.py:216] Automatically detected platform cuda.
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_c289f912'), local_subscribe_addr='ipc:///tmp/1da89172-ec87-4616-92cb-37f804606ec3', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_e3f33e50'), local_subscribe_addr='ipc:///tmp/d22d4439-f2d4-4ad5-bf43-c8aefa75d97d', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_202b7486'), local_subscribe_addr='ipc:///tmp/8dfcea44-3e7d-46c0-881a-bb2913de8283', remote_subscribe_addr=None, remote_addr_ipv6=False)
INFO 10-06 15:56:44 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[0], buffer_handle=(1, 10485760, 10, 'psm_acb66435'), local_subscribe_addr='ipc:///tmp/a79c13a7-b107-4974-bc22-d18fbb753f4a', remote_subscribe_addr=None, remote_addr_ipv6=False)
[Gloo] Rank 2 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 0 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 1 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 3 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 2 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 0 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 1 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 3 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [symm_mem.py:58] SymmMemCommunicator: Device capability 8.6 not supported, communicator is not available.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
WARNING 10-06 15:56:46 [custom_all_reduce.py:144] Custom allreduce is disabled because it's not supported on more than two PCIe-only GPUs. To silence this warning, specify disable_custom_all_reduce=True explicitly.
INFO 10-06 15:56:46 [shm_broadcast.py:289] vLLM message queue communication handle: Handle(local_reader_ranks=[1, 2, 3], buffer_handle=(3, 4194304, 6, 'psm_a8cdf3eb'), local_subscribe_addr='ipc:///tmp/f25bfe61-de00-442b-9f93-e5edf37c4389', remote_subscribe_addr=None, remote_addr_ipv6=False)
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 0 peer ranks. Expected number of connected peer ranks is : 0
[Gloo] Rank 0 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 2 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 1 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
[Gloo] Rank 3 is connected to 3 peer ranks. Expected number of connected peer ranks is : 3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [__init__.py:1384] Found nccl from library libnccl.so.2
INFO 10-06 15:56:46 [pynccl.py:103] vLLM is using nccl==2.27.3
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 3 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 3, EP rank 3
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 2 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 2, EP rank 2
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 0 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 0, EP rank 0
INFO 10-06 15:56:46 [parallel_state.py:1208] rank 1 in world size 4 is assigned as DP rank 0, PP rank 0, TP rank 1, EP rank 1
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
WARNING 10-06 15:56:47 [topk_topp_sampler.py:66] FlashInfer is not available. Falling back to the PyTorch-native implementation of top-p & top-k sampling. For the best performance, please install FlashInfer.
(Worker_TP3 pid=41702) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP0 pid=41699) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP3 pid=41702) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
(Worker_TP2 pid=41701) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP3 pid=41702) INFO 10-06 15:56:51 [cuda.py:366] Using Flash Attention backend on V1 engine.
(Worker_TP1 pid=41700) INFO 10-06 15:56:51 [gpu_model_runner.py:2602] Starting to load model /home/zp/work/models/Qwen/Qwen3-VL-30B-A3B-Instruct...
(Worker_TP0 pid=41699) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
(Worker_TP0 pid=41699) INFO 10-06 15:56:51 [cuda.py:366] Using Flash Attention backend on V1 engine.
(Worker_TP2 pid=41701) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
Loading safetensors checkpoint shards: 0% Completed | 0/13 [00:00<?, ?it/s]
(Worker_TP1 pid=41700) INFO 10-06 15:56:51 [gpu_model_runner.py:2634] Loading model from scratch...
(Worker_TP2 pid=41701) INFO 10-06 15:56:52 [cuda.py:366] Using Flash Attention backend on V1 engine.
(Worker_TP1 pid=41700) INFO 10-06 15:56:52 [cuda.py:366] Using Flash Attention backend on V1 engine.
Loading safetensors checkpoint shards: 8% Completed | 1/13 [00:02<00:24, 2.02s/it]
Loading safetensors checkpoint shards: 15% Completed | 2/13 [00:04<00:22, 2.02s/it]
Loading safetensors checkpoint shards: 23% Completed | 3/13 [00:06<00:20, 2.04s/it]
Loading safetensors checkpoint shards: 31% Completed | 4/13 [00:08<00:18, 2.05s/it]
Loading safetensors checkpoint shards: 38% Completed | 5/13 [00:10<00:16, 2.09s/it]
Loading safetensors checkpoint shards: 46% Completed | 6/13 [00:12<00:14, 2.08s/it]
Loading safetensors checkpoint shards: 54% Completed | 7/13 [00:13<00:09, 1.64s/it]
Loading safetensors checkpoint shards: 62% Completed | 8/13 [00:15<00:08, 1.78s/it]
Loading safetensors checkpoint shards: 69% Completed | 9/13 [00:17<00:07, 1.87s/it]
Loading safetensors checkpoint shards: 77% Completed | 10/13 [00:19<00:05, 1.94s/it]
Loading safetensors checkpoint shards: 85% Completed | 11/13 [00:20<00:03, 1.84s/it]
Loading safetensors checkpoint shards: 92% Completed | 12/13 [00:23<00:01, 1.91s/it]
(Worker_TP2 pid=41701) INFO 10-06 15:57:16 [default_loader.py:267] Loading weights took 24.06 seconds
(Worker_TP2 pid=41701) INFO 10-06 15:57:16 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 24.325636 seconds
(Worker_TP3 pid=41702) INFO 10-06 15:57:16 [default_loader.py:267] Loading weights took 25.29 seconds
(Worker_TP1 pid=41700) INFO 10-06 15:57:17 [default_loader.py:267] Loading weights took 24.85 seconds
Loading safetensors checkpoint shards: 100% Completed | 13/13 [00:25<00:00, 1.97s/it]
Loading safetensors checkpoint shards: 100% Completed | 13/13 [00:25<00:00, 1.94s/it]
(Worker_TP0 pid=41699)
(Worker_TP0 pid=41699) INFO 10-06 15:57:17 [default_loader.py:267] Loading weights took 25.24 seconds
(Worker_TP3 pid=41702) INFO 10-06 15:57:17 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 25.534107 seconds
(Worker_TP1 pid=41700) INFO 10-06 15:57:17 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 25.147370 seconds
(Worker_TP0 pid=41699) INFO 10-06 15:57:17 [gpu_model_runner.py:2653] Model loading took 14.7708 GiB and 25.517781 seconds
(Worker_TP3 pid=41702) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP2 pid=41701) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP1 pid=41700) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP0 pid=41699) INFO 10-06 15:57:18 [gpu_model_runner.py:3344] Encoder cache will be initialized with a budget of 153600 tokens, and profiled with 1 video items of the maximum feature size.
(Worker_TP1 pid=41700) INFO 10-06 15:57:44 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_1_0/backbone for vLLM's torch.compile
(Worker_TP1 pid=41700) INFO 10-06 15:57:44 [backends.py:559] Dynamo bytecode transform time: 12.36 s
(Worker_TP2 pid=41701) INFO 10-06 15:57:44 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_2_0/backbone for vLLM's torch.compile
(Worker_TP2 pid=41701) INFO 10-06 15:57:44 [backends.py:559] Dynamo bytecode transform time: 12.67 s
(Worker_TP0 pid=41699) INFO 10-06 15:57:45 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_0_0/backbone for vLLM's torch.compile
(Worker_TP0 pid=41699) INFO 10-06 15:57:45 [backends.py:559] Dynamo bytecode transform time: 12.90 s
(Worker_TP3 pid=41702) INFO 10-06 15:57:45 [backends.py:548] Using cache directory: /home/zp/.cache/vllm/torch_compile_cache/f062b114ba/rank_3_0/backbone for vLLM's torch.compile
(Worker_TP3 pid=41702) INFO 10-06 15:57:45 [backends.py:559] Dynamo bytecode transform time: 13.11 s
(Worker_TP1 pid=41700) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.849 s
(Worker_TP2 pid=41701) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.916 s
(Worker_TP0 pid=41699) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.527 s
(Worker_TP3 pid=41702) INFO 10-06 15:57:50 [backends.py:164] Directly load the compiled graph(s) for dynamic shape from the cache, took 4.870 s
(Worker_TP3 pid=41702) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP2 pid=41701) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP0 pid=41699) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP1 pid=41700) WARNING 10-06 15:57:52 [fused_moe.py:798] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/home/zp/work/vllm/.venv/lib/python3.12/site-packages/vllm/model_executor/layers/fused_moe/configs/E=128,N=192,device_name=NVIDIA_GeForce_RTX_3090.json']
(Worker_TP3 pid=41702) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 13.11 s in total
(Worker_TP1 pid=41700) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 12.36 s in total
(Worker_TP2 pid=41701) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 12.67 s in total
(Worker_TP0 pid=41699) INFO 10-06 15:57:52 [monitor.py:34] torch.compile takes 12.90 s in total
(Worker_TP3 pid=41702) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(Worker_TP2 pid=41701) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(Worker_TP0 pid=41699) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(Worker_TP1 pid=41700) INFO 10-06 15:57:53 [gpu_worker.py:298] Available KV cache memory: 2.31 GiB
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1087] GPU KV cache size: 100,752 tokens
(EngineCore_DP0 pid=41565) INFO 10-06 15:57:53 [kv_cache_utils.py:1091] Maximum concurrency for 65,536 tokens per request: 1.54x
Capturing CUDA graphs (mixed prefill-decode, PIECEWISE): 100%|█████████████████████████████████████████████████████████████████████████| 67/67 [00:11<00:00, 5.66it/s]
Capturing CUDA graphs (decode, FULL): 100%|████████████████████████████████████████████████████████████████████████████████████████████| 35/35 [00:06<00:00, 5.78it/s]
(Worker_TP0 pid=41699) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(Worker_TP2 pid=41701) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(Worker_TP1 pid=41700) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(Worker_TP3 pid=41702) INFO 10-06 15:58:12 [gpu_model_runner.py:3480] Graph capturing finished in 19 secs, took 1.92 GiB
(EngineCore_DP0 pid=41565) INFO 10-06 15:58:12 [core.py:210] init engine (profile, create kv cache, warmup model) took 54.87 seconds
(APIServer pid=41428) INFO 10-06 15:58:17 [loggers.py:147] Engine 000: vllm cache_config_info with initialization after num_gpu_blocks is: 6297
(APIServer pid=41428) INFO 10-06 15:58:18 [api_server.py:1634] Supported_tasks: ['generate']
(APIServer pid=41428) WARNING 10-06 15:58:18 [model.py:1389] Default sampling parameters have been overridden by the model's Hugging Face generation config recommended from the model creator. If this is not intended, please relaunch vLLM instance with `--generation-config vllm`.
(APIServer pid=41428) INFO 10-06 15:58:18 [serving_responses.py:137] Using default chat sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8}
(APIServer pid=41428) INFO 10-06 15:58:18 [serving_chat.py:139] Using default chat sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8}
(APIServer pid=41428) INFO 10-06 15:58:18 [serving_completion.py:76] Using default completion sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8}
(APIServer pid=41428) INFO 10-06 15:58:18 [api_server.py:1912] Starting vLLM API server 0 on http://0.0.0.0:8000
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:34] Available routes are:
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /openapi.json, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /docs, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /docs/oauth2-redirect, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /redoc, Methods: HEAD, GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /health, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /load, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /ping, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /ping, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /tokenize, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /detokenize, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/models, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /version, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/responses, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/responses/{response_id}, Methods: GET
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/responses/{response_id}/cancel, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/chat/completions, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/completions, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/embeddings, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /pooling, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /classify, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /score, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/score, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/audio/transcriptions, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/audio/translations, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /rerank, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v1/rerank, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /v2/rerank, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /scale_elastic_ep, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /is_scaling_elastic_ep, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /invocations, Methods: POST
(APIServer pid=41428) INFO 10-06 15:58:18 [launcher.py:42] Route: /metrics, Methods: GET
(APIServer pid=41428) INFO: Started server process [41428]
(APIServer pid=41428) INFO: Waiting for application startup.
(APIServer pid=41428) INFO: Application startup complete.
(APIServer pid=41428) INFO 10-06 15:58:23 [chat_utils.py:560] Detected the chat template content format to be 'openai'. You can set `--chat-template-content-format` to override this.
(APIServer pid=41428) INFO: 192.168.1.11:54734 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=41428) INFO 10-06 15:58:28 [loggers.py:127] Engine 000: Avg prompt throughput: 170.4 tokens/s, Avg generation throughput: 5.7 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0%
(APIServer pid=41428) INFO: 192.168.1.11:54734 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=41428) INFO: 192.168.1.11:54734 - "POST /v1/chat/completions HTTP/1.1" 200 OK
(APIServer pid=41428) INFO 10-06 15:58:38 [loggers.py:127] Engine 000: Avg prompt throughput: 642.9 tokens/s, Avg generation throughput: 9.9 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 56.3%
(APIServer pid=41428) INFO 10-06 15:58:48 [loggers.py:127] Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 56.3%
```

View File

@@ -104,6 +104,16 @@ Desk 从屏幕点击 `Settings` → `HDMI` 进入 HDMI 配置页面,有两个
详见 [FAQ](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM_Pro/faq.html#%E9%95%9C%E5%83%8F%E7%83%A7%E5%BD%95%E6%96%B9%E6%B3%95) 中 `镜像烧录方法` 章节。
## HDMI 副屏
由于NanoKVM-Pro可以虚拟为显示器并采集图像且有一个小屏所以可以实现HDMI副屏功能。
在UI中选择输出视频源为HDMI即可在小屏上输出采集的视频图像。
作为桌面摆件时,此功能可以作为桌面迷你副屏,性能监控,视频缩略图播放器等功能使用。
![](./../../../assets/NanoKVM/pro/extended/hdmi.jpg)
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/extended/cat.mp4"></video>
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/extended/video.mp4"></video>
## USB 扩展功能
### USB NCM

View File

@@ -1,13 +1,24 @@
---
title: 屏灯带
title: 屏同步氛围灯带
keywords: NanoKVM, LED Strip
update:
- date: 2025-9-05
- date: 2025-10-07
version: v0.2
author: zepan
content:
- improve docs
- date: 2025-09-05
version: v0.1
author: iawak9lkm
content:
- Release docs
---
## 简介
屏同步氛围灯带是NanoKVM-Pro的特色扩展配件。
当你将NanoKVM-Pro用于桌面电脑时NanoKVM-Pro可以通过捕获的屏幕画面控制LED灯带按屏幕边缘的色彩显示实现梦幻的灯光渲染效果
<video playsinline controls muted preload src="../../../assets/NanoKVM/pro/ledstrip/sync_led.mp4"></video>
> ⚠️ 注意:使用该功能,需要确保输入电源规格 **5V ≥ 3A**
## 套餐配件概览
@@ -90,13 +101,10 @@ update:
* 通过 Web 开启
1. 通过浏览器登录 NanoKVM
2. 依次进入 **设置 → 设备 → LED 灯带设置**
2. 依次进入 **设置 → 设备 → LED 灯带设置**, 开启功能填写对应的LED数量
![ledstrip_web1_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web1_en.jpg)
![ledstrip_setting](../../../assets/NanoKVM/pro/ledstrip/ledstrip_setting.jpg)
3. 填写灯带数量并开启
![ledstrip_web2_en](../../../assets/NanoKVM/pro/ledstrip/led_strip_web2_en.jpg)
* 通过 Desk UI 开启
1. 进入 `Settings` 页面

View File

@@ -571,7 +571,9 @@ items:
- label: 高级应用
file: kvm/NanoKVM_Pro/extended.md
- label: 屏幕色彩扩展灯带
file: kvm/NanoKVM_Pro/ws2812.md
file: kvm/NanoKVM_Pro/ledstrip.md
- label: 实验性AI Agent
file: kvm/NanoKVM_Pro/cua.md
- label: FAQ
file: kvm/NanoKVM_Pro/faq.md
- label: Cluster

View File

@@ -43,13 +43,16 @@
{% include "licheepi.html" %}
</div>
<div id="page_maixsense" class="hidden h-full w-full">
{% include "maixsense.html" %}
</div>
<div id="page_others" class="hidden h-full w-full">
{% include "others.html" %}
</div>
{% include "maixsense.html" %}
</div>
<div id="page_nanokvm" class="hidden h-full w-full">
{% include "nanokvm.html" %}
</div>
<div id="page_slogic" class="hidden h-full w-full">
{% include "slogic.html" %}
</div>
<div id="page_news" class="hidden h-full w-full">
<div id="page_news" class="hidden h-full w-full">
<n-carousel
show-arrow
dot-type="line"
@@ -209,9 +212,13 @@
label: "{{_('MaixSense 传感器')}}",
content: "maixsense",
},
{
label: "{{_('NanoKVM')}}",
content: "nanokvm",
},
{
label: "{{_('其它')}}",
content: "others",
label: "{{_('SLogic')}}",
content: "slogic",
},
],
};
@@ -255,11 +262,12 @@
deviceWidth: window.innerWidth,
data_maix: data_maix,
data_maixcam: data_maixcam,
data_lichee: data_lichee,
data_lichee: data_lichee,
data_arm: data_arm,
data_tang: data_tang,
data_maixsense: data_maixsense,
data_others: data_others,
data_maixsense: data_maixsense,
data_nanokvm: data_nanokvm,
data_slogic: data_slogic,
};
},
mounted() {
@@ -305,7 +313,7 @@
for (var i = 0; i < this.data.products.length; ++i) {
let el = document.getElementById(
"page_" + this.data.products[i].content
);
);
if (this.data.products[i].content == item.content) {
el.style.display = "block";
} else {

View File

@@ -2,94 +2,101 @@
msgid ""
msgstr ""
#: home.html:93
#: home.html:96
msgid "/static/home/banner_maixcam_pro.jpg"
msgstr "/static/home/banner_maixcam_pro_en.jpg"
#: home.html:96
#: home.html:99
#, fuzzy
msgid "硬件文档"
msgstr "Hardware Docs"
#: home.html:97
#: home.html:100
msgid "/maixcam-pro"
msgstr ""
#: home.html:101
#: home.html:104
msgid "/maixpy/"
msgstr ""
#: home.html:104 home.html:126 home.html:157 home.html:170 home.html:183
#: home.html:107 home.html:129 home.html:160 home.html:173 home.html:186
#: licheepi.html:221 licheepi.html:242 licheepi.html:258 licheepi.html:279
#: licheepi.html:295 licheepi.html:311 maix.html:167 maix.html:241
#: maix.html:262 maix.html:279 maix.html:296 maixsense.html:44
#: maixsense.html:60 others.html:42 tang.html:171 tang.html:187 tang.html:203
#: tang.html:219 tang.html:235 tang.html:251 tang.html:267 tang.html:283
#: tang.html:299 tang.html:315
#: licheepi.html:295 licheepi.html:311 maix.html:196 maix.html:213
#: maix.html:230 maix.html:307 maix.html:328 maix.html:345 maix.html:362
#: maixsense.html:44 maixsense.html:60 nanokvm.html:41 nanokvm.html:58
#: nanokvm.html:75 nanokvm.html:92 others.html:42 slogic.html:41 slogic.html:58
#: tang.html:171 tang.html:187 tang.html:203 tang.html:219 tang.html:235
#: tang.html:251 tang.html:267 tang.html:283 tang.html:299 tang.html:315
msgid "购买"
msgstr "Buy"
#: home.html:105
#: home.html:108
msgid "https://item.taobao.com/item.htm?id=846226367137"
msgstr "https://www.aliexpress.us/item/325680633"
#: home.html:110
#: home.html:113
msgid "/static/home/banner_tang_console.jpg"
msgstr "/static/home/banner_tang_console_en.jpg"
#: home.html:113 home.html:135 home.html:144
#: home.html:116 home.html:138 home.html:147
msgid "文档和购买"
msgstr ""
#: home.html:119
#: home.html:122
msgid "/static/home/banner_nanokvm_zh.jpg"
msgstr "/static/home/banner_nanokvm_en.jpg"
#: home.html:122 home.html:153 home.html:166 home.html:179 licheepi.html:217
#: home.html:125 home.html:156 home.html:169 home.html:182 licheepi.html:217
#: licheepi.html:238 licheepi.html:254 licheepi.html:275 licheepi.html:291
#: licheepi.html:307 maix.html:180 maix.html:197 maix.html:237 maix.html:254
#: maix.html:275 maix.html:292 maixsense.html:40 maixsense.html:56
#: others.html:38 tang.html:167 tang.html:183 tang.html:199 tang.html:215
#: tang.html:231 tang.html:247 tang.html:263 tang.html:279 tang.html:295
#: tang.html:311
#: licheepi.html:307 maix.html:245 maix.html:262 maix.html:303 maix.html:320
#: maix.html:341 maix.html:358 maixsense.html:40 maixsense.html:56
#: nanokvm.html:37 nanokvm.html:54 nanokvm.html:71 nanokvm.html:88
#: others.html:38 slogic.html:37 slogic.html:54 tang.html:167 tang.html:183
#: tang.html:199 tang.html:215 tang.html:231 tang.html:247 tang.html:263
#: tang.html:279 tang.html:295 tang.html:311
msgid "文档"
msgstr "Docs"
#: home.html:123
#: home.html:126
msgid "/nanokvm"
msgstr ""
#: home.html:127
#: home.html:130 nanokvm.html:42 nanokvm.html:59 nanokvm.html:76
#: nanokvm.html:93
msgid "https://item.taobao.com/item.htm?id=811206560480"
msgstr "https://www.aliexpress.com/item/1005006080116482.html"
#: home.html:132
#: home.html:135
msgid "/static/home/banner_nanokvm_pcie.jpg"
msgstr "/static/home/banner_nanokvm_pcie_en.jpg"
#: home.html:141
#: home.html:144
msgid "/static/home/banner_nanokvm_usb.jpg"
msgstr "/static/home/banner_nanokvm_usb_en.jpg"
#: home.html:184 others.html:43
#: home.html:187 others.html:43 slogic.html:42 slogic.html:59
msgid "https://item.taobao.com/item.htm?id=737788586308"
msgstr "https://www.aliexpress.com/item/1005006022974163.html"
#: home.html:193
#: home.html:196
msgid "产品动态"
msgstr "Product News"
#: home.html:197
#: home.html:200
msgid "Maix AI 视觉"
msgstr "Maix Vision Series"
#: home.html:209
#: home.html:212
msgid "MaixSense 传感器"
msgstr "MaixSense Sensor Module"
#: home.html:213
msgid "其它"
msgstr "Other Products"
#: home.html:216 nanokvm.html:4
msgid "NanoKVM"
msgstr ""
#: home.html:220
msgid "SLogic"
msgstr ""
#: licheepi.html:4
msgid "Linux RISC-V SBC 系列"
@@ -103,19 +110,19 @@ msgstr "Linux ARM SBC Series"
msgid "RISC-V SBC 系列产品参数对比"
msgstr "RISC-V SBC Series Product Comparison"
#: licheepi.html:49 licheepi.html:132 maix.html:53 tang.html:31
#: licheepi.html:49 licheepi.html:132 maix.html:71 tang.html:31
msgid "参数"
msgstr "Parameter"
#: licheepi.html:57 licheepi.html:140 maix.html:63
#: licheepi.html:57 licheepi.html:140 maix.html:82
msgid "处理器"
msgstr "CPU"
#: licheepi.html:63 licheepi.html:146 maix.html:71
#: licheepi.html:63 licheepi.html:146 maix.html:91
msgid "内存"
msgstr "memory"
#: licheepi.html:69 licheepi.html:152 maix.html:90 tang.html:129
#: licheepi.html:69 licheepi.html:152 maix.html:112 tang.html:129
msgid "储存"
msgstr "storage"
@@ -125,8 +132,8 @@ msgid "预留"
msgstr "reserved"
#: licheepi.html:70 licheepi.html:71 licheepi.html:72 licheepi.html:153
#: licheepi.html:154 licheepi.html:155 maix.html:91 maix.html:92 maix.html:93
#: maix.html:94 maix.html:95
#: licheepi.html:154 licheepi.html:155 maix.html:113 maix.html:114
#: maix.html:115 maix.html:116 maix.html:117 maix.html:118
msgid "卡"
msgstr "card"
@@ -136,7 +143,7 @@ msgstr "GPU and display"
#: licheepi.html:81 licheepi.html:82 licheepi.html:108 licheepi.html:160
#: licheepi.html:161 licheepi.html:185 licheepi.html:186 licheepi.html:187
#: maix.html:129 maix.html:136 maix.html:137
#: maix.html:156 maix.html:164 maix.html:165
msgid "无"
msgstr "no"
@@ -154,7 +161,7 @@ msgstr "decode"
msgid "编码"
msgstr "encode"
#: licheepi.html:99 licheepi.html:178 maix.html:106
#: licheepi.html:99 licheepi.html:178 maix.html:130
msgid "操作系统"
msgstr "operating system"
@@ -162,7 +169,7 @@ msgstr "operating system"
msgid "主线"
msgstr "mainline"
#: licheepi.html:111 licheepi.html:190 maix.html:114
#: licheepi.html:111 licheepi.html:190 maix.html:139
msgid "典型外设"
msgstr "typical peripherals"
@@ -170,7 +177,7 @@ msgstr "typical peripherals"
msgid "ARM SBC 系列产品参数对比"
msgstr "ARM SBC Product Comparison"
#: licheepi.html:155 maix.html:92 maix.html:93
#: licheepi.html:155 maix.html:115 maix.html:116
msgid "板载"
msgstr "onboard"
@@ -222,138 +229,153 @@ msgstr "dev board"
msgid "全新 Maix 生态"
msgstr "New Maix Ecosystem"
#: maix.html:27
#: maix.html:45
msgid "经典 Maix 视觉系列"
msgstr "Classic Maix Vision Series"
#: maix.html:46
#: maix.html:64
msgid "Maix 系列产品参数对比"
msgstr "Maix Series Product Comparison"
#: maix.html:65
#: maix.html:85
msgid "双核"
msgstr "Dual core"
#: maix.html:65
#: maix.html:85
msgid "位"
msgstr "bit"
#: maix.html:80 maix.html:83 maix.html:85
#: maix.html:101 maix.html:102 maix.html:105 maix.html:107
msgid "支持常用"
msgstr "support common"
#: maix.html:80 maix.html:83 maix.html:86
#: maix.html:101 maix.html:102 maix.html:105 maix.html:108
msgid "模型"
msgstr "model"
#: maix.html:80 maix.html:92
#: maix.html:101 maix.html:102 maix.html:115
msgid "支持"
msgstr "support"
#: maix.html:81 maix.html:82
#: maix.html:103 maix.html:104
msgid "支持有限"
msgstr "limited support"
#: maix.html:81 maix.html:82
#: maix.html:103 maix.html:104
msgid "算子"
msgstr "operations"
#: maix.html:85
#: maix.html:107
msgid "和"
msgstr "and"
#: maix.html:91 maix.html:93 maix.html:94 maix.html:95
#: maix.html:113 maix.html:114 maix.html:116 maix.html:117 maix.html:118
msgid "或者"
msgstr "or"
#: maix.html:98
#: maix.html:121
msgid "软件支持"
msgstr "software support"
#: maix.html:125 maix.html:126 maix.html:127 maix.html:128 maix.html:129
#: maix.html:151 maix.html:152 maix.html:153 maix.html:154 maix.html:155
#: maix.html:156
msgid "支持度"
msgstr "support"
#: maix.html:125
#: maix.html:151 maix.html:152
msgid "优"
msgstr "good"
#: maix.html:126 maix.html:128
#: maix.html:153 maix.html:155
msgid "中"
msgstr "medium"
#: maix.html:127
#: maix.html:154
msgid "良"
msgstr "ok"
#: maix.html:140
#: maix.html:168
msgid "文档和易用性"
msgstr "Documentation and Usability"
#: maix.html:160
#: maix.html:189
msgid ""
"A53 1.2GHz x2 + 3.2Tops NPU, YOLO11n_640 高达 113FPS, 8M高清摄像头 + AI-ISP "
"微光夜视AI 大模型 LLM / VLM。相机和核心板形态可选。"
msgstr ""
#: maix.html:197 maix.html:214 maix.html:231 tang.html:316
msgid "https://sipeed.taobao.com"
msgstr "https://www.aliexpress.com/store/911876460"
#: maix.html:206
#, fuzzy
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏完美支持全新 Maix 生态所有软件"
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏上手即用,完美支持全新 Maix 生态所有软件"
msgstr ""
"RISC-V 1GHz + 1TOPS NPU, 4M camera, multiple sizes capacitive "
"touchscreens, compact size, sofatware fully compatible with Maix "
"ecosystem."
#: maix.html:168 tang.html:316
msgid "https://sipeed.taobao.com"
msgstr "https://www.aliexpress.com/store/911876460"
#: maix.html:223
#, fuzzy
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏体积小巧完美支持全新 Maix 生态所有软件"
msgstr ""
"RISC-V 1GHz + 1TOPS NPU, 4M camera, multiple sizes capacitive "
"touchscreens, compact size, sofatware fully compatible with Maix "
"ecosystem."
#: maix.html:177
#: maix.html:242
msgid "Python 语法,简易 API快速落地 AI 视觉、听觉应用"
msgstr "Python syntax, simple API, quickly land AI vision, voice projects"
#: maix.html:184 maix.html:202
#: maix.html:249 maix.html:267
msgid "源码"
msgstr "source code"
#: maix.html:194
#: maix.html:259
msgid "C++ SDK, MaixPy 同款 API稳定高效易上手"
msgstr "C++ SDK, MaixPy API, stable, efficient and easy to use"
#: maix.html:210
#: maix.html:275
msgid "IDE 和云平台"
msgstr "IDE and cloud platform"
#: maix.html:212
#: maix.html:277
msgid "代码编辑运行、图像实时预览,在线一键 AI 模型训练"
msgstr ""
"Code editing and running, real-time image preview, online one-click AI "
"model training"
#: maix.html:234
#: maix.html:300
msgid "带硬件 AI 加速的 MCU配合易用的软件快速落地低成本 AI 应用"
msgstr ""
"MCU with hardware AI acceleration, combined with easy-to-use software to "
"quickly land low-cost AI applications"
#: maix.html:251
#: maix.html:317
msgid "硬件 AI 加速 + Linux + 易用的软件,教育、工业视觉、智能家居场景绝配"
msgstr ""
"Hardware AI acceleration + Linux + easy-to-use software, education, "
"industrial vision, smart home scene"
#: maix.html:258
#: maix.html:324
msgid "MaixPy3"
msgstr ""
#: maix.html:272
#: maix.html:338
msgid "3.6Tops AI ISP微光夜视大量常见 AI 模型支持,安防智能 IPC"
msgstr ""
"3.6Tops AI ISP, low-light night vision, a large number of common AI model"
" support, security smart IPC"
#: maix.html:289
#: maix.html:355
#, fuzzy
msgid "10Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
msgid "18Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
msgstr ""
"18Tops AI computing power, 32 channels of 1080p HD AI video surveillance,"
" AI large model support"
#: maix.html:297
#: maix.html:363
msgid "https://item.taobao.com/item.htm?id=744014549573"
msgstr "https://www.aliexpress.us/item/3256806030962938.html"
@@ -369,6 +391,22 @@ msgstr "Depth Sensor Module"
msgid "深度摄像头模组"
msgstr "Depth Camera Module"
#: nanokvm.html:34
msgid "迷你IP-KVM运维工具"
msgstr "Mini IP-KVM for honemlab"
#: nanokvm.html:51
msgid "可安装到ATX机箱的IP-KVM"
msgstr "ATX-case-mountable IP-KVM"
#: nanokvm.html:68
msgid "指尖上的USB KVM"
msgstr "USB KVM at your fingertip"
#: nanokvm.html:85
msgid "高性能创新性4K IP-KVM"
msgstr "High-performance, innovative 4K IP-KVM"
#: others.html:24
msgid "其它未列出的产品请进入"
msgstr "For other products not listed, please enter"
@@ -381,12 +419,20 @@ msgstr "Product documentation"
msgid "在左侧目录查找"
msgstr "Find in the left menu"
#: others.html:35
#: others.html:35 slogic.html:34
msgid "逻辑分析仪+CKLink+DAPLink+USB转串口 多合一指尖工具"
msgstr ""
"Logic Analyzer + CKLink + DAPLink + USB to Serial Port, an all-in-one "
"fingertip tool."
#: slogic.html:4
msgid "SLogic 逻辑分析仪系列"
msgstr "SLogic Logic Analyzer"
#: slogic.html:51
msgid "16通道高速USB3逻辑分析仪"
msgstr "16CH highspeed USB3 LogicAnalyzer"
#: tang.html:4
msgid "Tang FPGA 系列"
msgstr "Tang FPGA Series"
@@ -724,7 +770,7 @@ msgstr "/hardware/en/tang/tang-primer-15k/primer-15k.html"
#~ msgstr "MaixSense Sensor"
#~ msgid "其它"
#~ msgstr "Others"
#~ msgstr ""
#~ msgid "Tang FPGA 系列"
#~ msgstr "Tang FPGA Series"
@@ -895,3 +941,30 @@ msgstr "/hardware/en/tang/tang-primer-15k/primer-15k.html"
#~ "the box, sofatware fully compatible with"
#~ " Maix ecosystem."
#~ msgid "SLogic"
#~ msgstr ""
#~ msgid "SLogic 逻辑分析仪"
#~ msgstr ""
#~ msgid "NanoKVM"
#~ msgstr ""
#~ msgid "逻辑分析仪+CKLink+DAPLink+USB转串口 多合一指尖工具111sss"
#~ msgstr ""
#~ "Logic Analyzer + CKLink + DAPLink "
#~ "+ USB to Serial Port, an all-"
#~ "in-one fingertip tool."
#~ msgid "NAnoKVM"
#~ msgstr ""
#~ msgid "SLogic 逻辑分析仪系列"
#~ msgstr ""
#~ msgid "16通道高速USB3逻辑分析仪"
#~ msgstr ""
#~ msgid "..."
#~ msgstr ""

View File

@@ -2,92 +2,99 @@
msgid "翻译内容"
msgstr ""
#: home.html:93
#: home.html:96
msgid "/static/home/banner_maixcam_pro.jpg"
msgstr ""
#: home.html:96
#: home.html:99
msgid "硬件文档"
msgstr ""
#: home.html:97
#: home.html:100
msgid "/maixcam-pro"
msgstr ""
#: home.html:101
#: home.html:104
msgid "/maixpy/"
msgstr ""
#: home.html:104 home.html:126 home.html:157 home.html:170 home.html:183
#: home.html:107 home.html:129 home.html:160 home.html:173 home.html:186
#: licheepi.html:221 licheepi.html:242 licheepi.html:258 licheepi.html:279
#: licheepi.html:295 licheepi.html:311 maix.html:167 maix.html:241
#: maix.html:262 maix.html:279 maix.html:296 maixsense.html:44
#: maixsense.html:60 others.html:42 tang.html:171 tang.html:187 tang.html:203
#: tang.html:219 tang.html:235 tang.html:251 tang.html:267 tang.html:283
#: tang.html:299 tang.html:315
#: licheepi.html:295 licheepi.html:311 maix.html:196 maix.html:213
#: maix.html:230 maix.html:307 maix.html:328 maix.html:345 maix.html:362
#: maixsense.html:44 maixsense.html:60 nanokvm.html:41 nanokvm.html:58
#: nanokvm.html:75 nanokvm.html:92 others.html:42 slogic.html:41 slogic.html:58
#: tang.html:171 tang.html:187 tang.html:203 tang.html:219 tang.html:235
#: tang.html:251 tang.html:267 tang.html:283 tang.html:299 tang.html:315
msgid "购买"
msgstr ""
#: home.html:105
#: home.html:108
msgid "https://item.taobao.com/item.htm?id=846226367137"
msgstr ""
#: home.html:110
#: home.html:113
msgid "/static/home/banner_tang_console.jpg"
msgstr ""
#: home.html:113 home.html:135 home.html:144
#: home.html:116 home.html:138 home.html:147
msgid "文档和购买"
msgstr ""
#: home.html:119
#: home.html:122
msgid "/static/home/banner_nanokvm_zh.jpg"
msgstr ""
#: home.html:122 home.html:153 home.html:166 home.html:179 licheepi.html:217
#: home.html:125 home.html:156 home.html:169 home.html:182 licheepi.html:217
#: licheepi.html:238 licheepi.html:254 licheepi.html:275 licheepi.html:291
#: licheepi.html:307 maix.html:180 maix.html:197 maix.html:237 maix.html:254
#: maix.html:275 maix.html:292 maixsense.html:40 maixsense.html:56
#: others.html:38 tang.html:167 tang.html:183 tang.html:199 tang.html:215
#: tang.html:231 tang.html:247 tang.html:263 tang.html:279 tang.html:295
#: tang.html:311
#: licheepi.html:307 maix.html:245 maix.html:262 maix.html:303 maix.html:320
#: maix.html:341 maix.html:358 maixsense.html:40 maixsense.html:56
#: nanokvm.html:37 nanokvm.html:54 nanokvm.html:71 nanokvm.html:88
#: others.html:38 slogic.html:37 slogic.html:54 tang.html:167 tang.html:183
#: tang.html:199 tang.html:215 tang.html:231 tang.html:247 tang.html:263
#: tang.html:279 tang.html:295 tang.html:311
msgid "文档"
msgstr ""
#: home.html:123
#: home.html:126
msgid "/nanokvm"
msgstr ""
#: home.html:127
#: home.html:130 nanokvm.html:42 nanokvm.html:59 nanokvm.html:76
#: nanokvm.html:93
msgid "https://item.taobao.com/item.htm?id=811206560480"
msgstr ""
#: home.html:132
#: home.html:135
msgid "/static/home/banner_nanokvm_pcie.jpg"
msgstr ""
#: home.html:141
#: home.html:144
msgid "/static/home/banner_nanokvm_usb.jpg"
msgstr ""
#: home.html:184 others.html:43
#: home.html:187 others.html:43 slogic.html:42 slogic.html:59
msgid "https://item.taobao.com/item.htm?id=737788586308"
msgstr ""
#: home.html:193
#: home.html:196
msgid "产品动态"
msgstr ""
#: home.html:197
#: home.html:200
msgid "Maix AI 视觉"
msgstr ""
#: home.html:209
#: home.html:212
msgid "MaixSense 传感器"
msgstr ""
#: home.html:213
msgid "其它"
#: home.html:216 nanokvm.html:4
msgid "NanoKVM"
msgstr ""
#: home.html:220
msgid "SLogic"
msgstr ""
#: licheepi.html:4
@@ -102,19 +109,19 @@ msgstr ""
msgid "RISC-V SBC 系列产品参数对比"
msgstr ""
#: licheepi.html:49 licheepi.html:132 maix.html:53 tang.html:31
#: licheepi.html:49 licheepi.html:132 maix.html:71 tang.html:31
msgid "参数"
msgstr ""
#: licheepi.html:57 licheepi.html:140 maix.html:63
#: licheepi.html:57 licheepi.html:140 maix.html:82
msgid "处理器"
msgstr ""
#: licheepi.html:63 licheepi.html:146 maix.html:71
#: licheepi.html:63 licheepi.html:146 maix.html:91
msgid "内存"
msgstr ""
#: licheepi.html:69 licheepi.html:152 maix.html:90 tang.html:129
#: licheepi.html:69 licheepi.html:152 maix.html:112 tang.html:129
msgid "储存"
msgstr ""
@@ -124,8 +131,8 @@ msgid "预留"
msgstr ""
#: licheepi.html:70 licheepi.html:71 licheepi.html:72 licheepi.html:153
#: licheepi.html:154 licheepi.html:155 maix.html:91 maix.html:92 maix.html:93
#: maix.html:94 maix.html:95
#: licheepi.html:154 licheepi.html:155 maix.html:113 maix.html:114
#: maix.html:115 maix.html:116 maix.html:117 maix.html:118
msgid "卡"
msgstr ""
@@ -135,7 +142,7 @@ msgstr ""
#: licheepi.html:81 licheepi.html:82 licheepi.html:108 licheepi.html:160
#: licheepi.html:161 licheepi.html:185 licheepi.html:186 licheepi.html:187
#: maix.html:129 maix.html:136 maix.html:137
#: maix.html:156 maix.html:164 maix.html:165
msgid "无"
msgstr ""
@@ -153,7 +160,7 @@ msgstr ""
msgid "编码"
msgstr ""
#: licheepi.html:99 licheepi.html:178 maix.html:106
#: licheepi.html:99 licheepi.html:178 maix.html:130
msgid "操作系统"
msgstr ""
@@ -161,7 +168,7 @@ msgstr ""
msgid "主线"
msgstr ""
#: licheepi.html:111 licheepi.html:190 maix.html:114
#: licheepi.html:111 licheepi.html:190 maix.html:139
msgid "典型外设"
msgstr ""
@@ -169,7 +176,7 @@ msgstr ""
msgid "ARM SBC 系列产品参数对比"
msgstr ""
#: licheepi.html:155 maix.html:92 maix.html:93
#: licheepi.html:155 maix.html:115 maix.html:116
msgid "板载"
msgstr ""
@@ -221,123 +228,134 @@ msgstr ""
msgid "全新 Maix 生态"
msgstr ""
#: maix.html:27
#: maix.html:45
msgid "经典 Maix 视觉系列"
msgstr ""
#: maix.html:46
#: maix.html:64
msgid "Maix 系列产品参数对比"
msgstr ""
#: maix.html:65
#: maix.html:85
msgid "双核"
msgstr ""
#: maix.html:65
#: maix.html:85
msgid "位"
msgstr ""
#: maix.html:80 maix.html:83 maix.html:85
#: maix.html:101 maix.html:102 maix.html:105 maix.html:107
msgid "支持常用"
msgstr ""
#: maix.html:80 maix.html:83 maix.html:86
#: maix.html:101 maix.html:102 maix.html:105 maix.html:108
msgid "模型"
msgstr ""
#: maix.html:80 maix.html:92
#: maix.html:101 maix.html:102 maix.html:115
msgid "支持"
msgstr ""
#: maix.html:81 maix.html:82
#: maix.html:103 maix.html:104
msgid "支持有限"
msgstr ""
#: maix.html:81 maix.html:82
#: maix.html:103 maix.html:104
msgid "算子"
msgstr ""
#: maix.html:85
#: maix.html:107
msgid "和"
msgstr ""
#: maix.html:91 maix.html:93 maix.html:94 maix.html:95
#: maix.html:113 maix.html:114 maix.html:116 maix.html:117 maix.html:118
msgid "或者"
msgstr ""
#: maix.html:98
#: maix.html:121
msgid "软件支持"
msgstr ""
#: maix.html:125 maix.html:126 maix.html:127 maix.html:128 maix.html:129
#: maix.html:151 maix.html:152 maix.html:153 maix.html:154 maix.html:155
#: maix.html:156
msgid "支持度"
msgstr ""
#: maix.html:125
#: maix.html:151 maix.html:152
msgid "优"
msgstr ""
#: maix.html:126 maix.html:128
#: maix.html:153 maix.html:155
msgid "中"
msgstr ""
#: maix.html:127
#: maix.html:154
msgid "良"
msgstr ""
#: maix.html:140
#: maix.html:168
msgid "文档和易用性"
msgstr ""
#: maix.html:160
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏完美支持全新 Maix 生态所有软件"
#: maix.html:189
msgid ""
"A53 1.2GHz x2 + 3.2Tops NPU, YOLO11n_640 高达 113FPS, 8M高清摄像头 + AI-ISP "
"微光夜视AI 大模型 LLM / VLM。相机和核心板形态可选。"
msgstr ""
#: maix.html:168 tang.html:316
#: maix.html:197 maix.html:214 maix.html:231 tang.html:316
msgid "https://sipeed.taobao.com"
msgstr ""
#: maix.html:177
#: maix.html:206
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏上手即用完美支持全新 Maix 生态所有软件"
msgstr ""
#: maix.html:223
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏体积小巧完美支持全新 Maix 生态所有软件"
msgstr ""
#: maix.html:242
msgid "Python 语法,简易 API快速落地 AI 视觉、听觉应用"
msgstr ""
#: maix.html:184 maix.html:202
#: maix.html:249 maix.html:267
msgid "源码"
msgstr ""
#: maix.html:194
#: maix.html:259
msgid "C++ SDK, MaixPy 同款 API稳定高效易上手"
msgstr ""
#: maix.html:210
#: maix.html:275
msgid "IDE 和云平台"
msgstr ""
#: maix.html:212
#: maix.html:277
msgid "代码编辑运行、图像实时预览,在线一键 AI 模型训练"
msgstr ""
#: maix.html:234
#: maix.html:300
msgid "带硬件 AI 加速的 MCU配合易用的软件快速落地低成本 AI 应用"
msgstr ""
#: maix.html:251
#: maix.html:317
msgid "硬件 AI 加速 + Linux + 易用的软件,教育、工业视觉、智能家居场景绝配"
msgstr ""
#: maix.html:258
#: maix.html:324
msgid "MaixPy3"
msgstr ""
#: maix.html:272
#: maix.html:338
msgid "3.6Tops AI ISP微光夜视大量常见 AI 模型支持,安防智能 IPC"
msgstr ""
#: maix.html:289
msgid "10Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
#: maix.html:355
msgid "18Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
msgstr ""
#: maix.html:297
#: maix.html:363
msgid "https://item.taobao.com/item.htm?id=744014549573"
msgstr ""
@@ -353,6 +371,22 @@ msgstr ""
msgid "深度摄像头模组"
msgstr ""
#: nanokvm.html:34
msgid "迷你IP-KVM运维工具"
msgstr ""
#: nanokvm.html:51
msgid "可安装到ATX机箱的IP-KVM"
msgstr ""
#: nanokvm.html:68
msgid "指尖上的USB KVM"
msgstr ""
#: nanokvm.html:85
msgid "高性能创新性4K IP-KVM"
msgstr ""
#: others.html:24
msgid "其它未列出的产品请进入"
msgstr ""
@@ -365,10 +399,18 @@ msgstr ""
msgid "在左侧目录查找"
msgstr ""
#: others.html:35
#: others.html:35 slogic.html:34
msgid "逻辑分析仪+CKLink+DAPLink+USB转串口 多合一指尖工具"
msgstr ""
#: slogic.html:4
msgid "SLogic 逻辑分析仪系列"
msgstr ""
#: slogic.html:51
msgid "16通道高速USB3逻辑分析仪"
msgstr ""
#: tang.html:4
msgid "Tang FPGA 系列"
msgstr ""

View File

@@ -2,92 +2,99 @@
msgid ""
msgstr ""
#: home.html:93
#: home.html:96
msgid "/static/home/banner_maixcam_pro.jpg"
msgstr ""
#: home.html:96
#: home.html:99
msgid "硬件文档"
msgstr ""
#: home.html:97
#: home.html:100
msgid "/maixcam-pro"
msgstr ""
#: home.html:101
#: home.html:104
msgid "/maixpy/"
msgstr ""
#: home.html:104 home.html:126 home.html:157 home.html:170 home.html:183
#: home.html:107 home.html:129 home.html:160 home.html:173 home.html:186
#: licheepi.html:221 licheepi.html:242 licheepi.html:258 licheepi.html:279
#: licheepi.html:295 licheepi.html:311 maix.html:167 maix.html:241
#: maix.html:262 maix.html:279 maix.html:296 maixsense.html:44
#: maixsense.html:60 others.html:42 tang.html:171 tang.html:187 tang.html:203
#: tang.html:219 tang.html:235 tang.html:251 tang.html:267 tang.html:283
#: tang.html:299 tang.html:315
#: licheepi.html:295 licheepi.html:311 maix.html:196 maix.html:213
#: maix.html:230 maix.html:307 maix.html:328 maix.html:345 maix.html:362
#: maixsense.html:44 maixsense.html:60 nanokvm.html:41 nanokvm.html:58
#: nanokvm.html:75 nanokvm.html:92 others.html:42 slogic.html:41 slogic.html:58
#: tang.html:171 tang.html:187 tang.html:203 tang.html:219 tang.html:235
#: tang.html:251 tang.html:267 tang.html:283 tang.html:299 tang.html:315
msgid "购买"
msgstr ""
#: home.html:105
#: home.html:108
msgid "https://item.taobao.com/item.htm?id=846226367137"
msgstr ""
#: home.html:110
#: home.html:113
msgid "/static/home/banner_tang_console.jpg"
msgstr ""
#: home.html:113 home.html:135 home.html:144
#: home.html:116 home.html:138 home.html:147
msgid "文档和购买"
msgstr ""
#: home.html:119
#: home.html:122
msgid "/static/home/banner_nanokvm_zh.jpg"
msgstr ""
#: home.html:122 home.html:153 home.html:166 home.html:179 licheepi.html:217
#: home.html:125 home.html:156 home.html:169 home.html:182 licheepi.html:217
#: licheepi.html:238 licheepi.html:254 licheepi.html:275 licheepi.html:291
#: licheepi.html:307 maix.html:180 maix.html:197 maix.html:237 maix.html:254
#: maix.html:275 maix.html:292 maixsense.html:40 maixsense.html:56
#: others.html:38 tang.html:167 tang.html:183 tang.html:199 tang.html:215
#: tang.html:231 tang.html:247 tang.html:263 tang.html:279 tang.html:295
#: tang.html:311
#: licheepi.html:307 maix.html:245 maix.html:262 maix.html:303 maix.html:320
#: maix.html:341 maix.html:358 maixsense.html:40 maixsense.html:56
#: nanokvm.html:37 nanokvm.html:54 nanokvm.html:71 nanokvm.html:88
#: others.html:38 slogic.html:37 slogic.html:54 tang.html:167 tang.html:183
#: tang.html:199 tang.html:215 tang.html:231 tang.html:247 tang.html:263
#: tang.html:279 tang.html:295 tang.html:311
msgid "文档"
msgstr ""
#: home.html:123
#: home.html:126
msgid "/nanokvm"
msgstr ""
#: home.html:127
#: home.html:130 nanokvm.html:42 nanokvm.html:59 nanokvm.html:76
#: nanokvm.html:93
msgid "https://item.taobao.com/item.htm?id=811206560480"
msgstr ""
#: home.html:132
#: home.html:135
msgid "/static/home/banner_nanokvm_pcie.jpg"
msgstr ""
#: home.html:141
#: home.html:144
msgid "/static/home/banner_nanokvm_usb.jpg"
msgstr ""
#: home.html:184 others.html:43
#: home.html:187 others.html:43 slogic.html:42 slogic.html:59
msgid "https://item.taobao.com/item.htm?id=737788586308"
msgstr ""
#: home.html:193
#: home.html:196
msgid "产品动态"
msgstr ""
#: home.html:197
#: home.html:200
msgid "Maix AI 视觉"
msgstr ""
#: home.html:209
#: home.html:212
msgid "MaixSense 传感器"
msgstr ""
#: home.html:213
msgid "其它"
#: home.html:216 nanokvm.html:4
msgid "NanoKVM"
msgstr ""
#: home.html:220
msgid "SLogic"
msgstr ""
#: licheepi.html:4
@@ -102,19 +109,19 @@ msgstr ""
msgid "RISC-V SBC 系列产品参数对比"
msgstr ""
#: licheepi.html:49 licheepi.html:132 maix.html:53 tang.html:31
#: licheepi.html:49 licheepi.html:132 maix.html:71 tang.html:31
msgid "参数"
msgstr ""
#: licheepi.html:57 licheepi.html:140 maix.html:63
#: licheepi.html:57 licheepi.html:140 maix.html:82
msgid "处理器"
msgstr ""
#: licheepi.html:63 licheepi.html:146 maix.html:71
#: licheepi.html:63 licheepi.html:146 maix.html:91
msgid "内存"
msgstr ""
#: licheepi.html:69 licheepi.html:152 maix.html:90 tang.html:129
#: licheepi.html:69 licheepi.html:152 maix.html:112 tang.html:129
msgid "储存"
msgstr ""
@@ -124,8 +131,8 @@ msgid "预留"
msgstr ""
#: licheepi.html:70 licheepi.html:71 licheepi.html:72 licheepi.html:153
#: licheepi.html:154 licheepi.html:155 maix.html:91 maix.html:92 maix.html:93
#: maix.html:94 maix.html:95
#: licheepi.html:154 licheepi.html:155 maix.html:113 maix.html:114
#: maix.html:115 maix.html:116 maix.html:117 maix.html:118
msgid "卡"
msgstr ""
@@ -135,7 +142,7 @@ msgstr ""
#: licheepi.html:81 licheepi.html:82 licheepi.html:108 licheepi.html:160
#: licheepi.html:161 licheepi.html:185 licheepi.html:186 licheepi.html:187
#: maix.html:129 maix.html:136 maix.html:137
#: maix.html:156 maix.html:164 maix.html:165
msgid "无"
msgstr ""
@@ -153,7 +160,7 @@ msgstr ""
msgid "编码"
msgstr ""
#: licheepi.html:99 licheepi.html:178 maix.html:106
#: licheepi.html:99 licheepi.html:178 maix.html:130
msgid "操作系统"
msgstr ""
@@ -161,7 +168,7 @@ msgstr ""
msgid "主线"
msgstr ""
#: licheepi.html:111 licheepi.html:190 maix.html:114
#: licheepi.html:111 licheepi.html:190 maix.html:139
msgid "典型外设"
msgstr ""
@@ -169,7 +176,7 @@ msgstr ""
msgid "ARM SBC 系列产品参数对比"
msgstr ""
#: licheepi.html:155 maix.html:92 maix.html:93
#: licheepi.html:155 maix.html:115 maix.html:116
msgid "板载"
msgstr ""
@@ -221,123 +228,134 @@ msgstr ""
msgid "全新 Maix 生态"
msgstr ""
#: maix.html:27
#: maix.html:45
msgid "经典 Maix 视觉系列"
msgstr ""
#: maix.html:46
#: maix.html:64
msgid "Maix 系列产品参数对比"
msgstr ""
#: maix.html:65
#: maix.html:85
msgid "双核"
msgstr ""
#: maix.html:65
#: maix.html:85
msgid "位"
msgstr ""
#: maix.html:80 maix.html:83 maix.html:85
#: maix.html:101 maix.html:102 maix.html:105 maix.html:107
msgid "支持常用"
msgstr ""
#: maix.html:80 maix.html:83 maix.html:86
#: maix.html:101 maix.html:102 maix.html:105 maix.html:108
msgid "模型"
msgstr ""
#: maix.html:80 maix.html:92
#: maix.html:101 maix.html:102 maix.html:115
msgid "支持"
msgstr ""
#: maix.html:81 maix.html:82
#: maix.html:103 maix.html:104
msgid "支持有限"
msgstr ""
#: maix.html:81 maix.html:82
#: maix.html:103 maix.html:104
msgid "算子"
msgstr ""
#: maix.html:85
#: maix.html:107
msgid "和"
msgstr ""
#: maix.html:91 maix.html:93 maix.html:94 maix.html:95
#: maix.html:113 maix.html:114 maix.html:116 maix.html:117 maix.html:118
msgid "或者"
msgstr ""
#: maix.html:98
#: maix.html:121
msgid "软件支持"
msgstr ""
#: maix.html:125 maix.html:126 maix.html:127 maix.html:128 maix.html:129
#: maix.html:151 maix.html:152 maix.html:153 maix.html:154 maix.html:155
#: maix.html:156
msgid "支持度"
msgstr ""
#: maix.html:125
#: maix.html:151 maix.html:152
msgid "优"
msgstr ""
#: maix.html:126 maix.html:128
#: maix.html:153 maix.html:155
msgid "中"
msgstr ""
#: maix.html:127
#: maix.html:154
msgid "良"
msgstr ""
#: maix.html:140
#: maix.html:168
msgid "文档和易用性"
msgstr ""
#: maix.html:160
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏完美支持全新 Maix 生态所有软件"
#: maix.html:189
msgid ""
"A53 1.2GHz x2 + 3.2Tops NPU, YOLO11n_640 高达 113FPS, 8M高清摄像头 + AI-ISP "
"微光夜视AI 大模型 LLM / VLM。相机和核心板形态可选。"
msgstr ""
#: maix.html:168 tang.html:316
#: maix.html:197 maix.html:214 maix.html:231 tang.html:316
msgid "https://sipeed.taobao.com"
msgstr ""
#: maix.html:177
#: maix.html:206
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏上手即用完美支持全新 Maix 生态所有软件"
msgstr ""
#: maix.html:223
msgid "RISC-V 1GHz + 1Tops NPU, 4M高清摄像头多种尺寸高清电容触摸屏体积小巧完美支持全新 Maix 生态所有软件"
msgstr ""
#: maix.html:242
msgid "Python 语法,简易 API快速落地 AI 视觉、听觉应用"
msgstr ""
#: maix.html:184 maix.html:202
#: maix.html:249 maix.html:267
msgid "源码"
msgstr ""
#: maix.html:194
#: maix.html:259
msgid "C++ SDK, MaixPy 同款 API稳定高效易上手"
msgstr ""
#: maix.html:210
#: maix.html:275
msgid "IDE 和云平台"
msgstr ""
#: maix.html:212
#: maix.html:277
msgid "代码编辑运行、图像实时预览,在线一键 AI 模型训练"
msgstr ""
#: maix.html:234
#: maix.html:300
msgid "带硬件 AI 加速的 MCU配合易用的软件快速落地低成本 AI 应用"
msgstr ""
#: maix.html:251
#: maix.html:317
msgid "硬件 AI 加速 + Linux + 易用的软件,教育、工业视觉、智能家居场景绝配"
msgstr ""
#: maix.html:258
#: maix.html:324
msgid "MaixPy3"
msgstr ""
#: maix.html:272
#: maix.html:338
msgid "3.6Tops AI ISP微光夜视大量常见 AI 模型支持,安防智能 IPC"
msgstr ""
#: maix.html:289
msgid "10Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
#: maix.html:355
msgid "18Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
msgstr ""
#: maix.html:297
#: maix.html:363
msgid "https://item.taobao.com/item.htm?id=744014549573"
msgstr ""
@@ -353,6 +371,22 @@ msgstr ""
msgid "深度摄像头模组"
msgstr ""
#: nanokvm.html:34
msgid "迷你IP-KVM运维工具"
msgstr ""
#: nanokvm.html:51
msgid "可安装到ATX机箱的IP-KVM"
msgstr ""
#: nanokvm.html:68
msgid "指尖上的USB KVM"
msgstr ""
#: nanokvm.html:85
msgid "高性能创新性4K IP-KVM"
msgstr ""
#: others.html:24
msgid "其它未列出的产品请进入"
msgstr ""
@@ -365,10 +399,18 @@ msgstr ""
msgid "在左侧目录查找"
msgstr ""
#: others.html:35
#: others.html:35 slogic.html:34
msgid "逻辑分析仪+CKLink+DAPLink+USB转串口 多合一指尖工具"
msgstr ""
#: slogic.html:4
msgid "SLogic 逻辑分析仪系列"
msgstr ""
#: slogic.html:51
msgid "16通道高速USB3逻辑分析仪"
msgstr ""
#: tang.html:4
msgid "Tang FPGA 系列"
msgstr ""
@@ -896,3 +938,27 @@ msgstr ""
#~ msgid "18Tops AI 算力32 路 1080p 高清 AI 视频监控AI 大模型支持"
#~ msgstr ""
#~ msgid "SLogic"
#~ msgstr ""
#~ msgid "SLogic 逻辑分析仪"
#~ msgstr ""
#~ msgid "NanoKVM"
#~ msgstr ""
#~ msgid "逻辑分析仪+CKLink+DAPLink+USB转串口 多合一指尖工具111sss"
#~ msgstr ""
#~ msgid "NAnoKVM"
#~ msgstr ""
#~ msgid "SLogic 逻辑分析仪系列"
#~ msgstr ""
#~ msgid "16通道高速USB3逻辑分析仪"
#~ msgstr ""
#~ msgid "..."
#~ msgstr ""

100
layout/nanokvm.html Normal file
View File

@@ -0,0 +1,100 @@
<!-- 修改后保存一下 include 这个文件的 html 模板就会渲染 -->
<div class="w-full h-full flex flex-col justify-center items-center">
<h2 class="text-2xl font-bold my-8 block_simple">{{_('NanoKVM')}}</h2>
<div class="w-full flex flex-col justify-center">
<div class="cards">
<!-- cards -->
<div class="card" v-for="item in data_nanokvm.cards">
<img class="card_img" :src="item.img" />
<h3 class="card_title" class="text-lg">{[item.title]}</h3>
<div class="card_brief">{[item.brief]}</div>
<div class="card_btns">
<a
v-for="btn in item.btns"
:href="btn.link"
:target="btn.new_tab ? '_blank' : '_self'"
>{[btn.label]}</a
>
</div>
</div>
<!-- cards end -->
</div>
</div>
</div>
<script lang="ts">
const data_nanokvm = {
cards: [
{
img: "/static/home/nanokvm_cube.jpg",
title: "NanoKVM Cube",
brief:
"{{_('迷你IP-KVM运维工具')}}",
btns: [
{
label: "{{_('文档')}}",
link: "/nanokvm",
},
{
label: "{{_('购买')}}",
link: "{{_('https://item.taobao.com/item.htm?id=811206560480')}}",
new_tab: true,
},
],
},
{
img: "/static/home/nanokvm_pcie.jpg",
title: "NanoKVM PCIe",
brief:
"{{_('可安装到ATX机箱的IP-KVM')}}",
btns: [
{
label: "{{_('文档')}}",
link: "/nanokvmpcie",
},
{
label: "{{_('购买')}}",
link: "{{_('https://item.taobao.com/item.htm?id=811206560480')}}",
new_tab: true,
},
],
},
{
img: "/static/home/nanokvm_usb.jpg",
title: "NanoKVM USB",
brief:
"{{_('指尖上的USB KVM')}}",
btns: [
{
label: "{{_('文档')}}",
link: "/nanokvmusb",
},
{
label: "{{_('购买')}}",
link: "{{_('https://item.taobao.com/item.htm?id=811206560480')}}",
new_tab: true,
},
],
},
{
img: "/static/home/nanokvm_pro.jpg",
title: "NanoKVM Pro",
brief:
"{{_('高性能创新性4K IP-KVM')}}",
btns: [
{
label: "{{_('文档')}}",
link: "/nanokvmpro",
},
{
label: "{{_('购买')}}",
link: "{{_('https://item.taobao.com/item.htm?id=811206560480')}}",
new_tab: true,
},
],
}
],
};
</script>

66
layout/slogic.html Normal file
View File

@@ -0,0 +1,66 @@
<!-- 修改后保存一下 include 这个文件的 html 模板就会渲染 -->
<div class="w-full h-full flex flex-col justify-center items-center">
<h2 class="text-2xl font-bold my-8 block_simple">{{_('SLogic 逻辑分析仪系列')}}</h2>
<div class="w-full flex flex-col justify-center">
<div class="cards">
<!-- cards -->
<div class="card" v-for="item in data_slogic.cards">
<img class="card_img" :src="item.img" />
<h3 class="card_title" class="text-lg">{[item.title]}</h3>
<div class="card_brief">{[item.brief]}</div>
<div class="card_btns">
<a
v-for="btn in item.btns"
:href="btn.link"
:target="btn.new_tab ? '_blank' : '_self'"
>{[btn.label]}</a
>
</div>
</div>
<!-- cards end -->
</div>
</div>
</div>
<script lang="ts">
const data_slogic = {
cards: [
{
img: "/static/home/slogic_combo8.png",
title: "SLogic",
brief:
"{{_('逻辑分析仪+CKLink+DAPLink+USB转串口 多合一指尖工具')}}",
btns: [
{
label: "{{_('文档')}}",
link: "/slogic",
},
{
label: "{{_('购买')}}",
link: "{{_('https://item.taobao.com/item.htm?id=737788586308')}}",
new_tab: true,
},
],
},
{
img: "/static/home/slogic16u3.jpg",
title: "SLogic16U3",
brief:
"{{_('16通道高速USB3逻辑分析仪')}}",
btns: [
{
label: "{{_('文档')}}",
link: "/slogic16u3",
},
{
label: "{{_('购买')}}",
link: "{{_('https://item.taobao.com/item.htm?id=737788586308')}}",
new_tab: true,
},
],
}
],
};
</script>

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
static/home/nanokvm_pro.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
static/home/nanokvm_usb.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
static/home/slogic16u3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB