为什么国内开发者需要老张API?
直接访问ChatGPT、Claude官方API在国内存在困难:网络限制、支付门槛、账号风险等。老张API提供稳定的中转服务,让您在国内无障碍使用。
平台特色
OpenAI 兼容模式
老张API采用 OpenAI 兼容格式,让您在国内轻松调用ChatGPT、Claude等200+AI模型:
支持的模型厂商:
- 🤖 OpenAI:gpt-4o、gpt-5-chat-latest、gpt-3.5-turbo等
- 🧠 Anthropic:claude-sonnet-4-20250514、claude-opus-4-1-20250805 等
- 💎 Google:gemini-2.5-pro、gemini-2.5-flash 等
- 🚀 xAI:grok-4-0709、grok-3 等
- 🔍 DeepSeek:deepSeek-r1、deepSeek-v3 等
- 🌟 阿里:Qwen系列模型
- 💬 Moonshot:Kimi模型等
功能支持范围
✅ 支持的功能:
- 💬 对话补全:Chat Completions接口
- 🖼️ 图像生成:gpt-image-1、flux-kontext-pro、flux-kontext-max 等
- 🔊 语音处理:Whisper转录
- 📊 嵌入向量:文本向量化
- ⚡ 函数调用:Function Calling
- 📡 流式输出:实时响应
- 🔧 OpenAI参数:temperature、top_p、max_tokens等
- 🆕 Responses端点:OpenAI最新功能
❌ 不支持的功能:
- 🔧 微调接口(Fine-tuning)
- 📁 Files管理接口
- 🏢 组织管理接口
- 💳 计费管理接口
简单切换模型
核心优势:一套代码,多种模型
用OpenAI格式跑通后,只需要更换模型名称即可切换到其他大模型:
# 使用GPT-4o
response = client.chat.completions.create(
model="gpt-4o", # OpenAI模型
messages=[...]
)
# 切换到Claude,其他代码完全不变!
response = client.chat.completions.create(
model="claude-3.5-sonnet", # 只改模型名
messages=[...]
)
# 切换到Gemini
response = client.chat.completions.create(
model="gemini-1.5-pro", # 只改模型名
messages=[...]
)
这种设计让您可以轻松对比不同模型的效果,或根据成本和性能需求灵活切换模型,无需重写代码!
快速开始 - 国内使用ChatGPT API
获取API Key(国内专属)
- 访问 老张API控制台
- 登录您的账户
- 在令牌管理页面点击”新增”创建API Key
- 复制生成的API Key用于接口调用
查看请求示例
在令牌管理页面,您可以快速获取各种编程语言的代码示例:
操作步骤:
- 进入 令牌管理页面
- 找到您要使用的API Key所在的行
- 点击”操作”列中的🔧小扳手图标(工具图标)
- 在弹出菜单中选择”请求示例”
- 查看包含以下语言的完整代码示例:
支持的编程语言:
- cURL - 命令行测试
- Python (SDK) - 使用官方OpenAI库
- Python (requests) - 使用requests库
- Node.js - JavaScript/TypeScript
- Java - Java应用开发
- C# - .NET应用开发
- Go - Go语言开发
- PHP - Web开发
- Ruby - Ruby应用开发
- 以及更多语言…
代码示例特点:
- ✅ 完整可运行:复制粘贴即可使用
- ✅ 参数说明:详细的参数配置
- ✅ 错误处理:包含异常处理逻辑
- ✅ 最佳实践:遵循各语言开发规范
建议开发者优先查看后台的请求示例,这些示例会根据最新的API版本实时更新,确保代码的准确性和可用性。
基础信息
API 端点
- 主要端点:
https://api.laozhang.ai/v1
- 备用端点:
https://api-cf.laozhang.ai/v1
认证方式
所有 API 请求需要在 Header 中包含认证信息:
Authorization: Bearer YOUR_API_KEY
请求格式
- Content-Type:
application/json
- 编码格式:UTF-8
- 请求方法:POST(大部分接口)
核心接口
1. 对话补全(Chat Completions)
创建一个对话补全请求,支持多轮对话。
请求端点
POST /v1/chat/completions
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
| model | string | 是 | 模型名称,如 gpt-3.5-turbo |
| messages | array | 是 | 对话消息数组 |
| temperature | number | 否 | 采样温度,0-2之间,默认1 |
| max_tokens | integer | 否 | 最大生成令牌数 |
| stream | boolean | 否 | 是否流式返回,默认false |
| top_p | number | 否 | 核采样参数,0-1之间 |
| n | integer | 否 | 生成数量,默认1 |
| stop | string/array | 否 | 停止序列 |
| presence_penalty | number | 否 | 存在惩罚,-2到2之间 |
| frequency_penalty | number | 否 | 频率惩罚,-2到2之间 |
消息格式
{
"role": "system|user|assistant",
"content": "消息内容"
}
完整代码示例
cURL
Python (SDK)
Python (requests)
Node.js
Java
C#
Go
PHP
Ruby
curl -X POST "https://api.laozhang.ai/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{"role": "system", "content": "你是一个有用的AI助手。"},
{"role": "user", "content": "你好!请介绍一下自己。"}
],
"temperature": 0.7,
"max_tokens": 1000
}'
响应示例
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1699000000,
"model": "gpt-3.5-turbo",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you today?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 10,
"total_tokens": 30
}
}
2. 文本补全(Completions)
为兼容旧版接口保留,建议使用 Chat Completions。
请求端点
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
| model | string | 是 | 模型名称 |
| prompt | string/array | 是 | 提示文本 |
| max_tokens | integer | 否 | 最大生成长度 |
| temperature | number | 否 | 采样温度 |
| top_p | number | 否 | 核采样参数 |
| n | integer | 否 | 生成数量 |
| stream | boolean | 否 | 流式输出 |
| stop | string/array | 否 | 停止序列 |
3. 嵌入向量(Embeddings)
将文本转换为向量表示。
请求端点
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
| model | string | 是 | 模型名称,如 text-embedding-ada-002 |
| input | string/array | 是 | 输入文本 |
| encoding_format | string | 否 | 编码格式,float 或 base64 |
完整代码示例
cURL
Python (SDK)
Python (requests)
Node.js
curl -X POST "https://api.laozhang.ai/v1/embeddings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-ada-002",
"input": "这是一段需要向量化的文本示例"
}'
4. 图像生成(Images)
生成、编辑或变换图像。
生成图像
POST /v1/images/generations
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
| model | string | 是 | 模型名称,推荐 gpt-image-1 |
| prompt | string | 是 | 图像描述提示词 |
| n | integer | 否 | 生成数量,默认1 |
| size | string | 否 | 图像尺寸:1024x1024, 1792x1024, 1024x1792 |
| quality | string | 否 | 质量:standard 或 hd |
| style | string | 否 | 风格:vivid 或 natural |
推荐使用 gpt-image-1 模型进行图像生成。更多图像生成功能和参数说明,请查看 GPT图像生成详细文档。
完整代码示例
cURL
Python (SDK)
Node.js
curl -X POST "https://api.laozhang.ai/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-1",
"prompt": "一只可爱的橙色小猫坐在阳光明媚的花园里",
"n": 1,
"size": "1024x1024",
"quality": "hd"
}'
5. 音频转文字(Audio)
语音识别和转录。
转录音频
POST /v1/audio/transcriptions
请求参数(Form-Data)
| 参数 | 类型 | 必填 | 说明 |
|---|
| file | file | 是 | 音频文件 |
| model | string | 是 | 模型名称,如 whisper-1 |
| language | string | 否 | 语言代码 |
| prompt | string | 否 | 指导提示 |
| response_format | string | 否 | 响应格式 |
| temperature | number | 否 | 采样温度 |
6. 模型列表
获取可用模型列表。
请求端点
响应示例
{
"object": "list",
"data": [
{
"id": "gpt-3.5-turbo",
"object": "model",
"created": 1677610602,
"owned_by": "openai"
},
{
"id": "gpt-4o",
"object": "model",
"created": 1687882411,
"owned_by": "openai"
}
]
}
流式响应
开启流式输出
在请求中设置 stream: true:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}
流式响应格式
响应将以 Server-Sent Events (SSE) 格式返回:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-3.5-turbo","choices":[{"delta":{"content":"Hello"},"index":0}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-3.5-turbo","choices":[{"delta":{"content":" there"},"index":0}]}
data: [DONE]
处理流式响应
import requests
import json
response = requests.post(
'https://api.laozhang.ai/v1/chat/completions',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={
'model': 'gpt-3.5-turbo',
'messages': [{'role': 'user', 'content': 'Hello'}],
'stream': True
},
stream=True
)
for line in response.iter_lines():
if line:
line = line.decode('utf-8')
if line.startswith('data: '):
data = line[6:]
if data != '[DONE]':
chunk = json.loads(data)
content = chunk['choices'][0]['delta'].get('content', '')
print(content, end='')
错误处理
错误响应格式
{
"error": {
"message": "Invalid API key provided",
"type": "invalid_request_error",
"param": null,
"code": "invalid_api_key"
}
}
常见错误码
| 错误码 | HTTP状态码 | 说明 |
|---|
| invalid_api_key | 401 | API密钥无效 |
| insufficient_quota | 429 | 额度不足 |
| model_not_found | 404 | 模型不存在 |
| invalid_request_error | 400 | 请求参数错误 |
| server_error | 500 | 服务器内部错误 |
| rate_limit_exceeded | 429 | 请求频率过高 |
错误处理示例
try:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)
except Exception as e:
if hasattr(e, 'status_code'):
if e.status_code == 401:
print("API密钥无效")
elif e.status_code == 429:
print("请求过于频繁或额度不足")
elif e.status_code == 500:
print("服务器错误,请稍后重试")
else:
print(f"未知错误:{str(e)}")
最佳实践
1. 请求优化
- 合理设置 max_tokens:避免不必要的长输出
- 使用 temperature:控制输出的随机性
- 批量处理:合并多个请求减少调用次数
2. 错误重试
实现指数退避的重试机制:
import time
import random
def retry_with_backoff(func, max_retries=3):
for i in range(max_retries):
try:
return func()
except Exception as e:
if i == max_retries - 1:
raise e
wait_time = (2 ** i) + random.uniform(0, 1)
time.sleep(wait_time)
3. 安全建议
- 保护API密钥:使用环境变量存储
- 限制权限:为不同应用创建不同的密钥
- 监控使用:定期检查API使用日志
4. 性能优化
- 使用流式输出:提升用户体验
- 缓存响应:对相同请求缓存结果
- 并发控制:合理控制并发请求数
速率限制
老张API 实施以下速率限制:
| 限制类型 | 限制值 | 说明 |
|---|
| RPM (每分钟请求数) | 3000 | 每个API密钥 |
| TPM (每分钟令牌数) | 1000000 | 每个API密钥 |
| 并发请求数 | 100 | 同时处理的请求 |
超出限制时会返回 429 错误,请合理控制请求频率。
需要帮助?
本手册持续更新中,请关注最新版本以获取新功能和改进。