API 使用
关于 API 调用、SDK 使用等问题的解答。
API 基础
Q: 如何获取 API Key?
A: 获取 API Key 步骤:
- 登录平台
- 进入"API 管理"页面
- 点击"生成 API Key"
- 复制 API Key
安全提示
请妥善保管您的 API Key,不要泄露给他人。
Q: 如何使用 API?
A: 使用 API 步骤:
- 获取 API Key
- 在请求头中添加 API Key
- 发送请求到 API 端点
- 接收响应数据
示例:
javascript
const response = await fetch('https://xdai.fun/api/articles/generate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: 'AI 技术发展趋势',
requirement: '重点介绍大语言模型的应用'
})
})
const data = await response.json()Q: API 基础 URL 是什么?
A: API 基础 URL:
https://xdai.fun/apiQ: API 支持哪些格式?
A: API 支持以下格式:
- 请求格式: JSON
- 响应格式: JSON
- 编码: UTF-8
Q: 如何处理 API 错误?
A: API 错误处理:
javascript
try {
const response = await fetch('https://xdai.fun/api/articles/generate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
})
const data = await response.json()
if (data.code !== 200) {
throw new Error(data.msg)
}
console.log(data.data)
} catch (error) {
console.error('API 错误:', error)
}SDK 使用
Q: 有官方 SDK 吗?
A: 有。我们提供以下官方 SDK:
- JavaScript/Node.js:
@ai-content-platform/sdk - PHP:
ai-content-platform/sdk
Q: 如何安装 JavaScript SDK?
A: 安装步骤:
bash
npm install @ai-content-platform/sdkQ: 如何使用 JavaScript SDK?
A: 使用示例:
javascript
import { AIClient } from '@ai-content-platform/sdk'
const client = new AIClient({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://xdai.fun/api'
})
// 生成文章
const article = await client.articles.generate({
title: 'AI 技术发展趋势',
requirement: '重点介绍大语言模型的应用',
model: 'deepseek',
style: 'professional'
})
console.log(article)Q: 如何安装 PHP SDK?
A: 安装步骤:
bash
composer require ai-content-platform/sdkQ: 如何使用 PHP SDK?
A: 使用示例:
php
use AiContentPlatform\Client;
$client = new Client([
'api_key' => 'YOUR_API_KEY',
'base_url' => 'https://xdai.fun/api'
]);
// 生成文章
$article = $client->articles()->generate([
'title' => 'AI 技术发展趋势',
'requirement' => '重点介绍大语言模型的应用',
'model' => 'deepseek',
'style' => 'professional'
]);
print_r($article);速率限制
Q: API 有速率限制吗?
A: 有。不同用户等级有不同的限制:
- 免费用户: 100 次/小时
- 专业用户: 1000 次/小时
- 企业用户: 无限制
Q: 如何处理速率限制?
A: 当遇到速率限制时:
- 检查响应头中的速率限制信息
- 等待指定时间后重试
- 使用指数退避策略
示例:
javascript
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options)
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After')
const waitTime = retryAfter ? parseInt(retryAfter) * 1000 : Math.pow(2, i) * 1000
await sleep(waitTime)
continue
}
return response
}
throw new Error('超过最大重试次数')
}Q: 如何查看剩余请求次数?
A: 检查响应头:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1643723400认证和授权
Q: 如何在请求中添加 API Key?
A: 在请求头中添加:
http
Authorization: Bearer YOUR_API_KEYQ: API Key 会过期吗?
A: API Key 不会过期,但建议:
- 定期更换 API Key
- 不要在代码中硬编码
- 使用环境变量存储
Q: 如何撤销 API Key?
A: 撤销步骤:
- 进入"API 管理"页面
- 找到要撤销的 API Key
- 点击"撤销"
- 确认撤销
撤销后无法恢复
API Key 撤销后无法恢复,请谨慎操作。
错误处理
Q: 常见的 API 错误码有哪些?
A: 常见错误码:
| 错误码 | 说明 |
|---|---|
| 400 | 请求参数错误 |
| 401 | 未授权或 API Key 无效 |
| 403 | 无权限访问 |
| 404 | 资源不存在 |
| 429 | 请求过于频繁 |
| 500 | 服务器内部错误 |
Q: 如何处理 401 错误?
A: 401 错误表示认证失败,请检查:
- API Key 是否正确
- API Key 是否已撤销
- 请求头格式是否正确
Q: 如何处理 429 错误?
A: 429 错误表示请求过于频繁,请:
- 等待指定时间后重试
- 使用指数退避策略
- 考虑升级会员等级
Q: 如何处理 500 错误?
A: 500 错误表示服务器内部错误,请:
- 等待一段时间后重试
- 检查服务状态
- 联系客服
最佳实践
Q: 如何优化 API 性能?
A: 优化建议:
- 使用流式生成: 减少等待时间
- 批量操作: 减少请求次数
- 缓存结果: 避免重复请求
- 异步处理: 使用异步请求
Q: 如何保证 API 安全?
A: 安全建议:
- HTTPS: 始终使用 HTTPS
- 加密传输: 敏感信息加密传输
- 环境变量: 使用环境变量存储 API Key
- 定期更换: 定期更换 API Key
Q: 如何监控 API 使用?
A: 监控建议:
- 记录日志: 记录所有 API 请求
- 监控错误: 监控错误率和响应时间
- 设置告警: 设置异常告警
- 分析数据: 分析使用数据
Q: 如何降低 API 成本?
A: 降低成本建议:
- 精简参数: 避免冗余参数
- 合理设置长度: 不要设置过长
- 多轮优化: 逐步完善,避免一次性生成
- 选择合适模型: 根据需求选择性价比高的模型
其他问题
Q: API 会消耗 Token 吗?
A: 会。通过 API 生成的文章会消耗相应的 Token,请确保余额充足。
Q: 可以同时运行多个 API 请求吗?
A: 可以。多个请求可以同时执行,但请注意:
- 速率限制
- 服务器负载
- Token 消耗
Q: API 支持流式输出吗?
A: 支持。流式输出可以提高用户体验:
javascript
const response = await fetch('/api/articles/generate', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
})
const reader = response.body.getReader()
const decoder = new TextDecoder()
while (true) {
const { done, value } = await reader.read()
if (done) break
const text = decoder.decode(value)
console.log(text) // 实时输出
}Q: 如何联系技术支持?
A: 您可以通过以下方式联系我们:
- 在线客服: 平台右下角的在线客服
- 邮件: support@example.com
- 问题反馈: GitHub Issues
Q: 有 API 文档吗?
A: 有。完整的 API 文档请查看:
