统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
OpenClaw LLM 路由器 QQ 统一 LLM 关卡, 供自主代理. . 由 AIsa 授权.是一项面向实际任务的技能,主要用于One API 键. 70+ 型号.;OpenAI 兼容. . . 替换 100+ API 键, 与 1. .。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
面向自主智能体的统一 LLM 网关。由 AIsa 提供支持。
一个 API 密钥,支持 70+ 模型,兼容 OpenAI 接口规范。
用一个 API 密钥替代上百个密钥,通过统一、OpenAI 兼容的 API 接入 GPT-4、Claude-3、Gemini、Qwen、Deepseek、Grok 等模型。
"用 GPT-4 进行逻辑推理,切换至 Claude 进行创意写作"
"对同一问题,对比 GPT-4、Claude 和 Gemini 的响应结果"
"使用 GPT-4o 分析这张图像——其中包含哪些物体?"
"将简单查询路由至快速/低成本模型,复杂查询路由至 GPT-4"
"若 GPT-4 调用失败,则自动尝试 Claude,再失败则尝试 Gemini"
| 特性 | LLM Router | 直连各厂商 API |
|---|---|---|
| API 密钥管理 | 1 个 | 10+ 个 |
| SDK 兼容性 | OpenAI SDK | 多个独立 SDK |
| 账单管理 | 统一计费 | 按服务商分别计费 |
| 模型切换 | 仅需修改字符串参数 | 需重写代码 |
| 回退路由 | 内置支持 | 需自行实现(DIY) |
| 成本追踪 | 统一统计 | 分散在各平台 |
| 家族 | 开发方 | 示例模型 |
|---|---|---|
| GPT | OpenAI | gpt-4.1, gpt-4o, gpt-4o-mini, o1, o1-mini, o3-mini |
| Claude | Anthropic | claude-3-5-sonnet, claude-3-opus, claude-3-sonnet |
| Gemini | gemini-2.0-flash, gemini-1.5-pro, gemini-1.5-flash | |
| Qwen | Alibaba | qwen-max, qwen-plus, qwen2.5-72b-instruct |
| Deepseek | Deepseek | deepseek-chat, deepseek-coder, deepseek-v3, deepseek-r1 |
| Grok | xAI | grok-2, grok-beta |
注意:模型可用性可能因地区或配额而异。请访问 marketplace.aisa.one/pricing 查看当前全部可用模型及定价详情。
export AISA_API_KEY="your-key"
POST https://api.aisa.one/v1/chat/completions
curl -X POST "https://api.aisa.one/v1/chat/completions"
-H "Authorization: Bearer $AISA_API_KEY"
-H "Content-Type: application/json"
-d '{
"model": "gpt-4.1",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "用简单语言解释量子计算。"}
],
"temperature": 0.7,
"max_tokens": 1000
}'
| 参数 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
model |
字符串 | 是 | 模型标识符(例如:gpt-4.1、claude-3-sonnet) |
messages |
数组 | 是 | 对话消息列表 |
temperature |
数字 | 否 | 随机性控制(取值范围 0–2,默认为 1) |
max_tokens |
整数 | 否 | 响应最大 token 数 |
stream |
布尔值 | 否 | 启用流式响应(默认为 false) |
top_p |
数字 | 否 | 核采样(nucleus sampling),取值范围 0–1 |
frequency_penalty |
数字 | 否 | 频率惩罚(取值范围 -2 至 2) |
presence_penalty |
数字 | 否 | 存在惩罚(取值范围 -2 至 2) |
stop |
字符串 / 数组 | 否 | 终止序列 |
{
"role": "user|assistant|system",
"content": "消息文本,或用于多模态输入的数组"
}
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "gpt-4.1",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "量子计算利用……"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 50,
"completion_tokens": 200,
"total_tokens": 250,
"cost": 0.0025
}
}
curl -X POST "https://api.aisa.one/v1/chat/completions"
-H "Authorization: Bearer $AISA_API_KEY"
-H "Content-Type: application/json"
-d '{
"model": "claude-3-sonnet",
"messages": [{"role": "user", "content": "写一首关于 AI 的诗。"}],
"stream": true
}'
流式响应采用 Server-Sent Events(SSE)格式:
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":"In"}}]}
data: {"id":"chatcmpl-xxx","choices":[{"delta":{"content":" circuits"}}]}
...
data: [DONE]
通过传入图像 URL 或 base64 编码数据进行图像分析:
curl -X POST "https://api.aisa.one/v1/chat/completions"
-H "Authorization: Bearer $AISA_API_KEY"
-H "Content-Type: application/json"
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "这张图中有什么?"},
{"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
]
}
]
}'
启用工具/函数以获取结构化输出:
curl -X POST "https://api.aisa.one/v1/chat/completions"
-H "Authorization: Bearer $AISA_API_KEY"
-H "Content-Type: application/json"
-d '{
"model": "gpt-4.1",
"messages": [{"role": "user", "content": "东京现在的天气如何?"}],
"functions": [
{
"name": "get_weather",
"description": "获取指定地点的当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "城市名称"},
"unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["location"]
}
}
],
"function_call": "auto"
}'
对于 Gemini 模型,也可使用其原生接口格式:
POST https://api.aisa.one/v1/models/{model}:generateContent
curl -X POST "https://api.aisa.one/v1/models/gemini-2.0-flash:generateContent"
-H "Authorization: Bearer $AISA_API_KEY"
-H "Content-Type: application/json"
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "解释机器学习。"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1000
}
}'
无需额外安装 —— 仅依赖 Python 标准库。
# 基础补全
python3 {baseDir}/scripts/llm_router_client.py chat --model gpt-4.1 --message "Hello, world!"
# 指定系统提示词
python3 {baseDir}/scripts/llm_router_client.py chat --model claude-3-sonnet --system "You are a poet" --message "Write about the moon"
# 启用流式响应
python3 {baseDir}/scripts/llm_router_client.py chat --model gpt-4o --message "Tell me a story" --stream
# 多轮对话
python3 {baseDir}/scripts/llm_router_client.py chat --model qwen-max --messages '[{"role":"user","content":"Hi"},{"role":"assistant","content":"Hello!"},{"role":"user","content":"How are you?"}]'
# 视觉分析
python3 {baseDir}/scripts/llm_router_client.py vision --model gpt-4o --image "https://example.com/image.jpg" --prompt "Describe this image"
# 列出所有支持的模型
python3 {baseDir}/scripts/llm_router_client.py models
# 模型对比
python3 {baseDir}/scripts/llm_router_client.py compare --models "gpt-4.1,claude-3-sonnet,gemini-2.0-flash" --message "What is 2+2?"
from llm_router_client import LLMRouterClient
client = LLMRouterClient() # 自动读取环境变量 AISA_API_KEY
# 简单对话
response = client.chat(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response["choices"][0]["message"]["content"])
# 指定参数
response = client.chat(
model="claude-3-sonnet",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "解释相对论。"}
],
temperature=0.7,
max_tokens=500
)
# 流式响应
for chunk in client.chat_stream(
model="gpt-4o",
messages=[{"role": "user", "content": "Write a story."}]
):
print(chunk, end="", flush=True)
# 视觉分析
response = client.vision(
model="gpt-4o",
image_url="https://example.com/image.jpg",
prompt="What's in this image?"
)
# 模型对比
results = client.compare_models(
models=["gpt-4.1", "claude-3-sonnet", "gemini-2.0-flash"],
message="Explain quantum computing"
)
for model, result in results.items():
print(f"{model}: {result['response'][:100]}...")
对简单任务使用更低成本模型:
def smart_route(message: str) -> str:
# 简单查询 → 快速/低成本模型
if len(message) < 50:
model = "gpt-3.5-turbo"
# 复杂推理 → 高性能模型
else:
model = "gpt-4.1"
return client.chat(model=model, messages=[{"role": "user", "content": message}])
调用失败时自动切换至备用模型:
def chat_with_fallback(message: str) -> str:
models = ["gpt-4.1", "claude-3-sonnet", "gemini-2.0-flash"]
for model in models:
try:
return client.chat(model=model, messages=[{"role": "user", "content": message}])
except Exception:
continue
raise Exception("All models failed")
对比不同模型的输出效果:
results = client.compare_models(
models=["gpt-4.1", "claude-3-opus"],
message="Analyze this quarterly report..."
)
# 记录用于后续分析
for model, result in results.items():
log_response(model=model, latency=result["latency"], cost=result["cost"])
按任务类型选择最适配模型:
MODEL_MAP = {
"code": "deepseek-coder",
"creative": "claude-3-opus",
"fast": "gpt-3.5-turbo",
"vision": "gpt-4o",
"chinese": "qwen-max",
"reasoning": "gpt-4.1"
}
def route_by_task(task_type: str, message: str) -> str:
model = MODEL_MAP.get(task_type, "gpt-4.1")
return client.chat(model=model, messages=[{"role": "user", "content": message}])
错误响应返回含 error 字段的 JSON:
{
"error": {
"code": "model_not_found",
"message": "Model 'xyz' is not available"
}
}
常见错误码:
401 — API 密钥无效或缺失402 — 余额不足404 — 模型未找到429 — 请求频率超限500 — 服务端内部错误max_tokens:有效控制成本usage)持续追踪仅需更改基础 URL 和 API 密钥即可复用现有 OpenAI SDK 代码:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["AISA_API_KEY"],
base_url="https://api.aisa.one/v1"
)
response = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
按 token 计费,不同模型单价不同。请访问 marketplace.aisa.one/pricing 获取最新费率。
| 模型家族 | 预估单价 |
|---|---|
| GPT-4.1 / GPT-4o | 约 $0.01 / 1K tokens |
| Claude-3-Sonnet | 约 $0.01 / 1K tokens |
| Gemini-2.0-Flash | 约 $0.001 / 1K tokens |
| Qwen-Max | 约 $0.005 / 1K tokens |
| DeepSeek-V3 | 约 $0.002 / 1K tokens |
每次响应均包含 usage.cost(本次调用费用)与 usage.credits_remaining(剩余额度)字段。
export AISA_API_KEY="your-key"详见 API Reference 获取全部端点的详细说明。