API 常见问题
本页面收集了用户在使用 DeepSeek API 时最常遇到的问题和解决方案。
🔐 认证相关
Q: 如何获取 API 密钥?
A: 您可以通过以下步骤获取 API 密钥:
- 访问 DeepSeek 官网
- 注册并登录您的账户
- 进入控制台的 "API 密钥" 页面
- 点击 "创建新密钥" 按钮
- 为密钥设置名称和权限
- 复制并安全保存生成的密钥
Q: API 密钥在哪里使用?
A: API 密钥需要在 HTTP 请求头中使用:
bash
curl -X POST "https://ai.sankotrade.com/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"
Q: API 密钥泄露了怎么办?
A: 如果您的 API 密钥泄露:
- 立即撤销: 在控制台中立即撤销泄露的密钥
- 生成新密钥: 创建新的 API 密钥
- 更新应用: 在所有应用中更新为新密钥
- 检查使用记录: 查看是否有异常的 API 调用
- 联系支持: 如有异常使用,请联系技术支持
🚀 API 使用
Q: 支持哪些编程语言?
A: DeepSeek API 是基于 HTTP 的 RESTful API,支持所有能发送 HTTP 请求的编程语言,包括但不限于:
- Python (推荐使用
requests
或httpx
) - JavaScript/Node.js (推荐使用
fetch
或axios
) - Java (推荐使用
OkHttp
或HttpClient
) - Go (使用标准库
net/http
) - PHP (使用
cURL
或Guzzle
) - C# (使用
HttpClient
)
Q: 如何处理长文本输入?
A: 对于长文本输入,请注意:
- Token 限制: 单次请求的总 token 数(输入+输出)不能超过模型限制
- 分段处理: 对于超长文本,考虑分段处理
- 上下文管理: 合理管理对话上下文,保留重要信息
python
# 示例:处理长文本
def process_long_text(text, max_tokens=4000):
# 简单的分段策略
chunks = [text[i:i+max_tokens] for i in range(0, len(text), max_tokens)]
results = []
for chunk in chunks:
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": chunk}]
)
results.append(response.choices[0].message.content)
return results
Q: 如何实现流式输出?
A: 设置 stream=True
参数:
python
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "写一篇关于AI的文章"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
⚡ 性能优化
Q: 如何提高 API 响应速度?
A: 以下方法可以提高响应速度:
- 使用流式输出: 对于长文本生成,使用
stream=True
- 优化提示词: 使用清晰、简洁的提示词
- 控制输出长度: 设置合适的
max_tokens
参数 - 选择合适的模型: 根据任务复杂度选择模型
- 网络优化: 确保网络连接稳定
Q: 为什么有时候响应很慢?
A: 响应速度可能受以下因素影响:
- 请求复杂度: 复杂的任务需要更多计算时间
- 输出长度: 生成更长的文本需要更多时间
- 服务器负载: 高峰期可能响应较慢
- 网络延迟: 网络连接质量影响响应时间
🔢 计费相关
Q: 如何计算 API 使用费用?
A: API 费用基于 token 使用量计算:
- 输入 token: 您发送给 API 的文本
- 输出 token: API 返回给您的文本
- 计费方式: 输入和输出 token 分别计费
Q: 如何查看使用量?
A: 您可以通过以下方式查看使用量:
- 控制台: 登录控制台查看详细使用统计
- API 响应: 每次 API 响应都包含 token 使用信息
- 账单: 定期查看账单了解费用详情
Q: 如何控制使用成本?
A: 控制成本的建议:
- 设置预算: 在控制台设置月度预算限制
- 监控使用: 定期检查 token 使用量
- 优化提示词: 使用更精确的提示词减少不必要的输出
- 设置 max_tokens: 限制单次响应的最大长度
🛠️ 错误处理
Q: 遇到 401 错误怎么办?
A: 401 错误表示认证失败:
- 检查 API 密钥: 确认密钥是否正确
- 检查请求头: 确认 Authorization 头格式正确
- 检查密钥状态: 确认密钥未被撤销或过期
- 检查权限: 确认密钥有相应的 API 调用权限
Q: 遇到 429 错误怎么办?
A: 429 错误表示请求过于频繁:
- 降低请求频率: 减少单位时间内的请求数量
- 实现重试机制: 使用指数退避策略重试
- 升级套餐: 考虑升级到更高的速率限制套餐
- 批量处理: 合并多个请求减少调用次数
python
import time
import random
def api_call_with_retry(func, max_retries=3):
for attempt in range(max_retries):
try:
return func()
except Exception as e:
if "429" in str(e) and attempt < max_retries - 1:
# 指数退避
wait_time = (2 ** attempt) + random.uniform(0, 1)
time.sleep(wait_time)
continue
raise e
Q: 遇到 500 错误怎么办?
A: 500 错误表示服务器内部错误:
- 稍后重试: 等待几分钟后重试
- 检查服务状态: 访问服务状态页面确认服务状态
- 联系支持: 如果问题持续,请联系技术支持
- 保存错误信息: 记录完整的错误信息以便排查
🔧 集成问题
Q: 如何在 React 应用中使用 API?
A: 在前端应用中使用时需要注意安全性:
javascript
// 不要在前端直接使用 API 密钥!
// 应该通过后端代理调用
// 正确的做法:通过后端 API
const callDeepSeekAPI = async (message) => {
const response = await fetch('/api/chat', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ message }),
});
return response.json();
};
Q: 如何在移动应用中集成?
A: 移动应用集成建议:
- 后端代理: 通过后端服务调用 API,不要在移动应用中直接使用密钥
- 用户认证: 实现用户认证系统
- 缓存策略: 合理缓存响应减少 API 调用
- 离线处理: 考虑离线场景的处理方案
📱 模型选择
Q: 应该选择哪个模型?
A: 根据您的需求选择:
- deepseek-chat: 适合一般对话、问答、文本生成
- deepseek-reasoner: 适合需要复杂推理的任务
Q: 不同模型的区别是什么?
A: 主要区别:
特性 | deepseek-chat | deepseek-reasoner |
---|---|---|
适用场景 | 通用对话 | 复杂推理 |
响应速度 | 较快 | 较慢 |
推理能力 | 标准 | 增强 |
费用 | 标准 | 较高 |
🔍 调试技巧
Q: 如何调试 API 调用?
A: 调试建议:
- 记录请求: 记录完整的请求参数
- 检查响应: 仔细检查 API 响应内容
- 使用工具: 使用 Postman 或 curl 测试
- 查看日志: 检查应用日志中的错误信息
python
import logging
# 启用详细日志
logging.basicConfig(level=logging.DEBUG)
# 记录 API 调用
def debug_api_call(messages):
logging.info(f"API Request: {messages}")
try:
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
logging.info(f"API Response: {response}")
return response
except Exception as e:
logging.error(f"API Error: {e}")
raise
📞 获取更多帮助
如果您的问题在此页面中没有找到答案,请:
本页面持续更新,如有新的常见问题会及时添加。最后更新: 2024年1月