1. update nanokvm cua, led, homepage
BIN
docs/hardware/assets/NanoKVM/pro/cua/chat_task.jpg
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/cua/download_esp32.mp4
Normal file
BIN
docs/hardware/assets/NanoKVM/pro/cua/note.jpg
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/cua/set_dns.mp4
Normal file
BIN
docs/hardware/assets/NanoKVM/pro/cua/set_mjpeg.jpg
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/cua/web_pc.jpg
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/extended/cat.mp4
Normal file
BIN
docs/hardware/assets/NanoKVM/pro/extended/hdmi.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/extended/video.mp4
Normal file
BIN
docs/hardware/assets/NanoKVM/pro/ledstrip/ledstrip_setting.jpg
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/ledstrip/ledstrip_setting.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
docs/hardware/assets/NanoKVM/pro/ledstrip/sync_led.mp4
Normal file
437
docs/hardware/en/kvm/NanoKVM_Pro/cua.md
Normal 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 Anthropic’s 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-Pro’s implementation of Computer Use compare favorably to Anthropic’s 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 Anthropic’s demo which demands significant pre-configuration.
|
||||
|
||||
2. **Hardware-level Computer Use**
|
||||
- Anthropic’s solution is software-based, limiting support to macOS 11+ and Windows 10+. Linux and Android are not supported.
|
||||
- NanoKVM-Pro’s 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, Alibaba’s 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-Pro’s 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.
|
||||
|
||||
Today’s 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 Anthropic’s 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.
|
||||
|
||||

|
||||
|
||||
### Read the Safety Notice
|
||||
|
||||
Click the **"Smart Assistant"** icon in the floating toolbar to view CUA’s safety notice.
|
||||
We **strongly urge** you to fully read and understand all risks before proceeding.
|
||||
|
||||

|
||||
|
||||
### 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 5–10 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:
|
||||
|
||||

|
||||
|
||||
> **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 step’s screenshot and CUA’s 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"**.
|
||||
|
||||

|
||||
|
||||
## 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 year’s `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.
|
||||
We’ve 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%
|
||||
```
|
||||
@@ -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.
|
||||
|
||||

|
||||
<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
|
||||
|
||||
@@ -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.
|
||||
|
||||

|
||||
|
||||
3. Enter the number of LEDs and enable the feature
|
||||
|
||||

|
||||

|
||||
|
||||
* Enable via Desk UI
|
||||
|
||||
@@ -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
|
||||
|
||||
410
docs/hardware/zh/kvm/NanoKVM_Pro/cua.md
Normal 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需要更多步骤操作,而增加费用和失败率
|
||||

|
||||
|
||||
|
||||
### 阅读注意事项
|
||||
点击悬浮栏的"Smart Assistant"图标,会弹出CUA功能的注意事项。
|
||||
我们再三强调请完全阅读理解CUA功能的风险后再执行。
|
||||

|
||||
|
||||
### 安装依赖
|
||||
CUA是实验性功能,同时也出于一些用户对这些隐私敏感性功能的顾虑,我们没有预装相关软件包。
|
||||
首次体验该功能前,需要用户自己点击"安装依赖"按键进行相关软件包安装。
|
||||
点击按键后,会在新页面中弹出终端页面,显示安装相关依赖包的进度,耐心等待完成即可。
|
||||
|
||||
### 运行CUA服务
|
||||
安装完依赖后,点击"Try It Now"按键即可开启CUA服务,等待5~10s后,就会弹出CUA功能的新窗口。(如果没有弹出,请检查是否chrome浏览器拦截了弹出窗口。)
|
||||
注意目前的CUA服务会增大KVM的CPU消耗,可能导致原KVM窗口的操作卡顿。
|
||||
出于安全性考虑,CUA服务同时仅允许一个实例运行,如果你复制CUA页面的网址在新标签页中打开,是无法查看到内容的。
|
||||
同样处于安全性考虑,你关闭或者刷新CUA网页后,CUA服务会自动关闭,需要重新在主页面点击按键启动。
|
||||
|
||||
CUA网页是电脑,手机浏览器兼容的布局,电脑上的页面布局如下所示:
|
||||

|
||||
|
||||
> 如果你是开发者,可以在终端使用 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. Genai:TODO
|
||||
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"来重置状态。
|
||||

|
||||
|
||||
## 自部署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%
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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即可在小屏上输出采集的视频图像。
|
||||
作为桌面摆件时,此功能可以作为桌面迷你副屏,性能监控,视频缩略图播放器等功能使用。
|
||||

|
||||
<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
|
||||
|
||||
@@ -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数量
|
||||
|
||||

|
||||

|
||||
|
||||
3. 填写灯带数量并开启
|
||||
|
||||

|
||||
|
||||
* 通过 Desk UI 开启
|
||||
1. 进入 `Settings` 页面
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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
@@ -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
@@ -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>
|
||||
BIN
static/home/nanokvm_cube.jpg
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
static/home/nanokvm_pcie.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
static/home/nanokvm_pro.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
static/home/nanokvm_usb.jpg
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
static/home/slogic16u3.jpg
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |