# API 配置指南 ## 为什么需要配置 API? Hugging Face 的免费 Inference API 有速率限制,某些模型可能需要认证 token 才能使用。配置 token 可以提高: - API 调用成功率 - 响应速度 - 可用模型范围 ## 方法1: 添加 Hugging Face Access Token(推荐) ### 步骤1: 创建 Access Token 1. 访问:https://huggingface.co/settings/tokens 2. 点击 "New token" 3. 填写信息: - **Name**: `space-api-token`(或任意名称) - **Type**: 选择 **Write**(需要写入权限才能使用某些模型) 4. 点击 "Generate a token" 5. **重要**:复制生成的 token(只显示一次!) ### 步骤2: 在 Space 中添加 Token 1. 进入你的 Space 页面 2. 点击 "Settings"(设置) 3. 找到 "Variables and secrets" 部分 4. 点击 "New secret" 5. 添加: - **Key**: `HF_API_TOKEN` - **Value**: 粘贴你刚才复制的 token 6. 点击 "Add secret" 7. Space 会自动重新构建 ### 步骤3: 测试 等待 Space 重新构建完成后,测试聊天功能。如果配置正确,API 调用应该会成功。 ## 方法2: 使用其他模型 如果默认模型不可用,可以在 Space 设置中指定其他模型: ### 在 Space 设置中添加环境变量 1. 进入 Space Settings 2. 找到 "Variables and secrets" 3. 添加新的环境变量: - **Key**: `HF_API_URL` - **Value**: 选择以下之一: - `https://api-inference.huggingface.co/models/elyza/ELYZA-japanese-Llama-2-7b-instruct` - `https://api-inference.huggingface.co/models/cyberagent/calm2-7b-chat` - `https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.2` ## 方法3: 使用 OpenAI API(可选) 如果你有 OpenAI API key,也可以使用 OpenAI 的模型。需要修改代码,我可以帮你实现。 ## 当前代码的自动重试机制 代码已经实现了自动重试多个模型的功能: 1. **主模型**: `elyza/ELYZA-japanese-Llama-2-7b-fast-instruct` 2. **备用模型1**: `elyza/ELYZA-japanese-Llama-2-7b-instruct` 3. **备用模型2**: `cyberagent/calm2-7b-chat` 4. **备用模型3**: `mistralai/Mistral-7B-Instruct-v0.2` 如果主模型失败,会自动尝试备用模型。 ## 检查 API 状态 ### 查看 Logs 在 Space 的 "Logs" 标签中,你可以看到: - 哪些模型被尝试了 - 每个模型的响应状态码 - 错误信息(如果有) ### 常见状态码 - **200**: 成功 ✅ - **503**: 模型正在加载中,需要等待 - **410**: 模型端点不可用(已移除) - **404**: 模型不存在 - **401**: 需要认证 token - **429**: 速率限制(请求太频繁) ## 故障排除 ### 问题1: 所有模型都返回 410 或 404 **解决方案**: - 检查模型名称是否正确 - 尝试使用其他模型 - 添加 `HF_API_TOKEN` 可能有助于访问某些模型 ### 问题2: 返回 503(模型加载中) **解决方案**: - 这是正常的,模型需要时间加载 - 等待提示的时间后重试 - 或者代码会自动尝试下一个模型 ### 问题3: 返回 401(需要认证) **解决方案**: - 添加 `HF_API_TOKEN` 环境变量 - 确保 token 有正确的权限 ### 问题4: 返回 429(速率限制) **解决方案**: - 等待一段时间后重试 - 添加 `HF_API_TOKEN` 可以提高速率限制 - 考虑使用付费 API 计划 ## 测试 API 是否工作 你可以手动测试 API: ```bash curl https://api-inference.huggingface.co/models/elyza/ELYZA-japanese-Llama-2-7b-fast-instruct \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"inputs": "こんにちは"}' ``` ## 推荐配置 为了获得最佳体验,建议: 1. ✅ 添加 `HF_API_TOKEN`(提高成功率和速率限制) 2. ✅ 使用默认的主模型(已经过优化) 3. ✅ 让代码自动尝试备用模型(已实现) ## 需要帮助? 如果遇到问题: 1. 查看 Space 的 Logs 标签 2. 检查环境变量是否正确设置 3. 确认 token 是否有效 4. 尝试不同的模型