cn-llm

Pass

China LLM Gateway - Unified interface for Chinese LLMs including Qwen, DeepSeek, GLM, Baichuan. OpenAI compatible, one API Key for all models.

@openclaw
MIT2/22/2026
(0)
1.0k
15
17

Install Skill

Skills are third-party code from public GitHub repositories. SkillHub scans for known malicious patterns but cannot guarantee safety. Review the source code before installing.

Install globally (user-level):

npx skillhub install openclaw/skills/cn-llm

Install in current project:

npx skillhub install openclaw/skills/cn-llm --project

Suggested path: ~/.claude/skills/cn-llm/

SKILL.md Content

---
name: cn-llm
description: "China LLM Gateway - Unified interface for Chinese LLMs including Qwen, DeepSeek, GLM, Baichuan. OpenAI compatible, one API Key for all models."
homepage: https://openclaw.ai
metadata: {"openclaw":{"emoji":"šŸ‰","requires":{"bins":["curl","python3"],"env":["AISA_API_KEY"]},"primaryEnv":"AISA_API_KEY"}}
---

# OpenClaw CN-LLM šŸ‰

**China LLM Unified Gateway. Powered by AIsa.**

One API Key to access all Chinese LLMs. OpenAI compatible interface.

Qwen, DeepSeek, GLM, Baichuan, Moonshot, and more - unified API access.

## šŸ”„ What You Can Do

### Intelligent Chat
```
"Use Qwen to answer Chinese questions, use DeepSeek for coding"
```

### Deep Reasoning
```
"Use DeepSeek-R1 for complex reasoning tasks"
```

### Code Generation
```
"Use DeepSeek-Coder to generate Python code with explanations"
```

### Long Text Processing
```
"Use Qwen-Long for ultra-long document summarization"
```

### Model Comparison
```
"Compare response quality between Qwen-Max and DeepSeek-V3"
```

## Supported Models

### Qwen (Alibaba)

| Model | Input Price | Output Price | Features |
|-----|---------|---------|------|
| qwen3-max | $1.37/M | $5.48/M | Most powerful general model |
| qwen3-max-2026-01-23 | $1.37/M | $5.48/M | Latest version |
| qwen3-coder-plus | $2.86/M | $28.60/M | Enhanced code generation |
| qwen3-coder-flash | $0.72/M | $3.60/M | Fast code generation |
| qwen3-coder-480b-a35b-instruct | $2.15/M | $8.60/M | 480B large model |
| qwen3-vl-plus | $0.43/M | $4.30/M | Vision-language model |
| qwen3-vl-flash | $0.86/M | $0.86/M | Fast vision model |
| qwen3-omni-flash | $4.00/M | $16.00/M | Multimodal model |
| qwen-vl-max | $0.23/M | $0.57/M | Vision-language |
| qwen-plus-2025-12-01 | $1.26/M | $12.60/M | Plus version |
| qwen-mt-flash | $0.168/M | $0.514/M | Fast machine translation |
| qwen-mt-lite | $0.13/M | $0.39/M | Lite machine translation |

### DeepSeek

| Model | Input Price | Output Price | Features |
|-----|---------|---------|------|
| deepseek-r1 | $2.00/M | $8.00/M | Reasoning model, supports Tools |
| deepseek-v3 | $1.00/M | $4.00/M | General chat, 671B parameters |
| deepseek-v3-0324 | $1.20/M | $4.80/M | V3 stable version |
| deepseek-v3.1 | $4.00/M | $12.00/M | Latest Terminus version |

> **Note**: Prices are in M (million tokens). Model availability may change, see [marketplace.aisa.one/pricing](https://marketplace.aisa.one/pricing) for the latest list.

## Quick Start

```bash
export AISA_API_KEY="your-key"
```

## API Endpoints

### OpenAI Compatible Interface

```
POST https://api.aisa.one/v1/chat/completions
```

#### Qwen Example

```bash
curl -X POST "https://api.aisa.one/v1/chat/completions" \
  -H "Authorization: Bearer $AISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-max",
    "messages": [
      {"role": "system", "content": "You are a professional Chinese assistant."},
      {"role": "user", "content": "Please explain what a large language model is?"}
    ],
    "temperature": 0.7,
    "max_tokens": 1000
  }'
```

#### DeepSeek Example

```bash
# DeepSeek-V3 general chat (671B parameters)
curl -X POST "https://api.aisa.one/v1/chat/completions" \
  -H "Authorization: Bearer $AISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v3",
    "messages": [{"role": "user", "content": "Write a quicksort algorithm in Python"}],
    "temperature": 0.3
  }'

# DeepSeek-R1 deep reasoning (supports Tools)
curl -X POST "https://api.aisa.one/v1/chat/completions" \
  -H "Authorization: Bearer $AISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1",
    "messages": [{"role": "user", "content": "A farmer needs to cross a river with a wolf, a sheep, and a cabbage. The boat can only carry the farmer and one item at a time. If the farmer is not present, the wolf will eat the sheep, and the sheep will eat the cabbage. How can the farmer safely cross?"}]
  }'

# DeepSeek-V3.1 Terminus latest version
curl -X POST "https://api.aisa.one/v1/chat/completions" \
  -H "Authorization: Bearer $AISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v3.1",
    "messages": [{"role": "user", "content": "Implement an LRU cache with get and put operations"}]
  }'
```

#### Qwen3 Code Generation Example

```bash
curl -X POST "https://api.aisa.one/v1/chat/completions" \
  -H "Authorization: Bearer $AISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-coder-plus",
    "messages": [{"role": "user", "content": "Implement a thread-safe Map in Go"}]
  }'
```

#### Parameter Reference

| Parameter | Type | Required | Description |
|-----|------|-----|------|
| `model` | string | Yes | Model identifier |
| `messages` | array | Yes | Message list |
| `temperature` | number | No | Randomness (0-2, default 1) |
| `max_tokens` | integer | No | Maximum tokens to generate |
| `stream` | boolean | No | Stream output (default false) |
| `top_p` | number | No | Nucleus sampling parameter (0-1) |

#### Response Format

```json
{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1234567890,
  "model": "qwen-max",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "A large language model (LLM) is a deep learning-based..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 30,
    "completion_tokens": 150,
    "total_tokens": 180,
    "cost": 0.001
  }
}
```

### Streaming Output

```bash
curl -X POST "https://api.aisa.one/v1/chat/completions" \
  -H "Authorization: Bearer $AISA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen-plus",
    "messages": [{"role": "user", "content": "Tell a Chinese folk story"}],
    "stream": true
  }'
```

Returns Server-Sent Events (SSE) format:

```
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"Once"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":" upon"}}]}
...
data: [DONE]
```

## Python Client

### CLI Usage

```bash
# Qwen chat
python3 {baseDir}/scripts/cn_llm_client.py chat --model qwen3-max --message "Hello, please introduce yourself"

# Qwen3 code generation
python3 {baseDir}/scripts/cn_llm_client.py chat --model qwen3-coder-plus --message "Write a binary search algorithm"

# DeepSeek-R1 reasoning
python3 {baseDir}/scripts/cn_llm_client.py chat --model deepseek-r1 --message "Which is larger, 9.9 or 9.11? Please reason in detail"

# DeepSeek-V3 chat
python3 {baseDir}/scripts/cn_llm_client.py chat --model deepseek-v3 --message "Tell a story" --stream

# With system prompt
python3 {baseDir}/scripts/cn_llm_client.py chat --model qwen3-max --system "You are a classical poetry expert" --message "Write a poem about plum blossoms"

# Model comparison
python3 {baseDir}/scripts/cn_llm_client.py compare --models "qwen3-max,deepseek-v3" --message "What is quantum computing?"

# List supported models
python3 {baseDir}/scripts/cn_llm_client.py models
```

### Python SDK Usage

```python
from cn_llm_client import CNLLMClient

client = CNLLMClient()  # Uses AISA_API_KEY environment variable

# Qwen chat
response = client.chat(
    model="qwen3-max",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response["choices"][0]["message"]["content"])

# Qwen3 code generation
response = client.chat(
    model="qwen3-coder-plus",
    messages=[
        {"role": "system", "content": "You are a professional programmer."},
        {"role": "user", "content": "Implement a singleton pattern in Python"}
    ],
    temperature=0.3
)

# Streaming output
for chunk in client.chat_stream(
    model="deepseek-v3",
    messages=[{"role": "user", "content": "Tell a story about an idiom"}]
):
    print(chunk, end="", flush=True)

# Model comparison
results = client.compare_models(
    models=["qwen3-max", "deepseek-v3", "deepseek-r1"],
    message="Explain what machine learning is"
)
for model, result in results.items():
    print(f"{model}: {result['response'][:100]}...")
```

## Use Cases

### 1. Chinese Content Generation

```python
# Copywriting
response = client.chat(
    model="qwen3-max",
    messages=[
        {"role": "system", "content": "You are a professional copywriter."},
        {"role": "user", "content": "Write a product introduction for a smart watch"}
    ]
)
```

### 2. Code Development

```python
# Code generation and explanation
response = client.chat(
    model="qwen3-coder-plus",
    messages=[{"role": "user", "content": "Implement a thread-safe Map in Go"}]
)
```

### 3. Complex Reasoning

```python
# Mathematical reasoning
response = client.chat(
    model="deepseek-r1",
    messages=[{"role": "user", "content": "Prove: For any positive integer n, n³-n is divisible by 6"}]
)
```

### 4. Visual Understanding

```python
# Image understanding
response = client.chat(
    model="qwen3-vl-plus",
    messages=[
        {"role": "user", "content": [
            {"type": "text", "text": "Describe the content of this image"},
            {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
        ]}
    ]
)
```

### 5. Model Routing Strategy

```python
MODEL_MAP = {
    "chat": "qwen3-max",           # General chat
    "code": "qwen3-coder-plus",    # Code generation
    "reasoning": "deepseek-r1",    # Complex reasoning
    "vision": "qwen3-vl-plus",     # Visual understanding
    "fast": "qwen3-coder-flash",   # Fast response
    "translate": "qwen-mt-flash"   # Machine translation
}

def route_by_task(task_type: str, message: str) -> str:
    model = MODEL_MAP.get(task_type, "qwen3-max")
    return client.chat(model=model, messages=[{"role": "user", "content": message}])
```

## Error Handling

Errors return JSON with `error` field:

```json
{
  "error": {
    "code": "model_not_found",
    "message": "Model 'xxx' is not available"
  }
}
```

Common error codes:
- `401` - Invalid or missing API Key
- `402` - Insufficient balance
- `404` - Model not found
- `429` - Rate limit exceeded
- `500` - Server error

## Pricing

| Model | Input ($/M) | Output ($/M) |
|-----|-----------|-----------|
| qwen3-max | $1.37 | $5.48 |
| qwen3-coder-plus | $2.86 | $28.60 |
| qwen3-coder-flash | $0.72 | $3.60 |
| qwen3-vl-plus | $0.43 | $4.30 |
| deepseek-v3 | $1.00 | $4.00 |
| deepseek-r1 | $2.00 | $8.00 |
| deepseek-v3.1 | $4.00 | $12.00 |

> Price unit: $ per Million tokens. Each response includes `usage.cost` and `usage.credits_remaining`.

## Get Started

1. Register at [aisa.one](https://aisa.one)
2. Get API Key
3. Top up (pay-as-you-go)
4. Set environment variable: `export AISA_API_KEY="your-key"`

## Full API Reference

See [API Reference](https://aisa.mintlify.app/api-reference/introduction) for complete endpoint documentation.