File size: 4,021 Bytes
b11fec5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# 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. 尝试不同的模型