使用过程中的一些疑问，这里不是解决异常的地方，遇到异常请见`常见错误`页

### ❓ 如何更新代码到最新版本？

#### 自动更新

由管理员QQ私聊机器人QQ发送`!update`指令

#### 手动更新

到[Releases页](https://github.com/RockChinQ/QChatGPT/releases)下载最新版本的源码压缩包，并解压覆盖到QChatGPT程序目录

### ❓ 机器人的回复与官网ChatGPT的答案有所差距？

ChatGPT通过使用OpenAI的回复API创建，进行了参数调优，本机器人通过使用自定义的参数调用OpenAI的回复API，并非调用ChatGPT的接口，二者底层原理相同，但由于官方对ChatGPT进行了调优，故此机器人回复可能不如ChatGPT。

### ❓ 如何设置机器人在群内无需@就能回复消息？

支持回复未at机器人的、符合指定规则的消息，详细规则请在`config.py`中的`response_rules`字段设置

### ❓ 绘图功能使用的是什么模型？

OpenAI官方的DALL·E模型

### ❓ 多api-key的管理机制以及切换逻辑？

> 此特性仅在提交`36c8a58`(2023年1月3日23点左右)前的代码有效，之后版本的代码不再根据估算的使用量进行切换，仅当接口报错时进行切换

程序支持在`config.py`中设置多个账户的`api-key`以便在超过免费额度时自动切换，在每次进行对话或进行绘图时，程序根据[价格表](https://openai.com/api/pricing)计算当前`api-key`的账户的额度使用量(费用)，当使用量到达`config.py`中设置的`api_key_fee_threshold`时，自动切换到下一个未达到额度的key。

- 请勿将单个账户的多个key放入配置文件，因为免费额度是以账户为单位的
- 程序会将使用额度储存到数据库，以便重启后继续计算
- 由于官方未提供查询接口，使用额度均为依据价目表进行的估算，不一定准确
- 若要保证每个账户的额度均能用完，可以把`api_key_fee_threshold`设置成很高的值，当超额调用报错时程序也会自动切换

### ❓ 账户余额消耗太快怎么办？

可能是由于每次请求包含的上下文数量过多或请求的回复过长导致的。  
可以在`config.py`中将`prompt_submit_length`字段修改成较小的值，以限制每次向模型提交的前文字符数量，详情见`config.py`中此字段的注释。  
还可以编辑`config.py`中的`completion_api_params`字段中的`max_tokens`为较小的值，这将控制模型传回的回复的字符数量。

### ❓ 如何设置在消息处理失败时不向用户发送错误信息？

在`config.py`中设置

```Python

# 消息处理出错时是否向用户隐藏错误详细信息
# 设置为True时，仅向管理员发送错误详细信息
# 设置为False时，向用户及管理员发送错误详细信息
hide_exce_info_to_user = True

# 消息处理出错时向用户发送的提示信息
# 仅当hide_exce_info_to_user为True时生效
# 设置为空字符串时，不发送提示信息
alter_tip_message = '出错了，请稍后再试'
```
若此两项字段不存在，请复制以上内容并新增到`config.py`末尾