基于 Nonebot2 平台/科大讯飞星火大模型官方 API 的 AI 聊天机器人插件
适用于所有模型版本(默认当前最新 v4.0
),同时支持自定义人物预设、会话管理,兼具 AI 绘图、AI 生成 PPT 等功能
开发环境:Python3.11.8 on Conda, Windows 11
[!important]
为了方便的直接阅读存储的文件,
v2.0.5
版本起,信息编码方式更改为UTF-8
。从旧版本更新到v2.0.5
以上版本时,请务必删除 BOT 项目文件夹下的SparkApi
文件夹,即清除所有缓存文件,否则可能产生错误。由此带来不便敬请谅解!QwQ项目正在准备重写更新到3.x,期望集成绝大部分星火大模型的能力
在 nonebot2 项目的.env
文件中添加下列配置项中的必填配置(SPARKAPI_APP_ID, SPARKAPI_API_SECRET, SPARKAPI_API_KEY)
服务接口认证信息 app_id, api_secret, api_key 请前往 讯飞开放平台控制台 获取
AI 绘图、AI 生成 PPT 功能的 API 信息在同一应用下与对话 API 信息相同,开启相应功能前需要在讯飞开放平台申请相应的服务用量
配置项 | 必填 | 默认值 | 说明 |
---|---|---|---|
SPARKAPI_APP_ID | 是 | / | APPID |
SPARKAPI_API_SECRET | 是 | / | APISecret |
SPARKAPI_API_KEY | 是 | / | APIKey |
SPARKAPI_MODEL_VERSION | 否 | "" |
星火大模型的版本,默认为当前最新。 可选值:"default", "v4.0", "v3.5", "v3.0", "v2.0", "v1.5" |
SPARKAPI_MODEL_TOP_K | 否 | 4 |
平衡生成文本的质量和多样性。 较小的 k 值会减少随机性,使得输出更加稳定; 而较大的 k 值会增加随机性,产生更多新颖的输出。 取值范围[1, 6] |
SPARKAPI_MODEL_TEMPERATURE | 否 | 0.5 |
控制结果随机性,取值越高随机性越强,即相同的问题得到的不同答案的可能性越高。 取值范围 (0,1] |
SPARKAPI_MODEL_MAXLENGTH | 否 | 8000 |
单次上下文最大 token 长度,v2.0 以上建议取值范围:[4000,8000]。 详细说明见下文 |
SPARKAPI_PRIORITY | 否 | 80 |
本插件响应事件的优先级,建议设置较大的值。可选值:1~97。 详细说明见下文 |
SPARKAPI_COMMAND_CHAT | 否 | "" |
机器人对话指令,默认为""可直接对话 |
SPARKAPI_FL_NOTICE | 否 | True |
收到对话请求时是否提示“已收到请求” |
SPARKAPI_FL_PRIVATE_CHAT | 否 | True |
是否允许私聊使用 |
SPARKAPI_FL_GROUP_PUBLIC | 否 | False |
群聊启用公共会话 True:所有人共享同一会话 False:每个人的会话各自独立 |
SPARKAPI_FL_INTERFLOW | 否 | False |
对于同一用户,群聊与私聊数据互通(公共会话启用时,群聊仍独立) |
SPARKAPI_FL_GROUP_AT | 否 | True |
群聊回复消息时是否需要@提问者 |
SPARKAPI_FL_IMGGEN | 否 | False |
是否启用 AI 绘图功能 |
SPARKAPI_FL_PPTGEN | 否 | False |
是否启用 AI 生成 PPT 功能 |
SPARKAPI_IG_SIZE | 否 | [1280,720] |
AI 绘图的图片尺寸,[宽,高]。 可选值和 API 消耗见下文 |
SPARKAPI_BOT_NAME | 否 | "" |
机器人的名字 |
分辨率(可选值) | 消耗图点数 |
---|---|
[512,512] | 6 |
[640,360] | 6 |
[640,480] | 6 |
[640,640] | 7 |
[680,512] | 7 |
[512,680] | 7 |
[768,768] | 8 |
[720,1280] | 12 |
[1280,720] | 12 |
[1024,1024] | 14 |
如有需要,以下命令相关配置项请在./.venv/Lib/nonebot_plugin_sparkapi/config.py
修改:
在config.py
文件中,已经用缩进表示了命令之间的从属关系。一级命令为主命令,二级命令为子命令。
命令格式由 NoneBot 机器人项目下的配置文件.env
中的COMMAND_START
和COMMAND_SEP
决定(请参考 NoneBot 文档)。默认情况下,COMMAND_START
为["/"]
,COMMAND_SEP
为["."]
。
一级命令帮助信息会出现在help
中,二级命令帮助信息在单独使用一级命令时出现。
以二级命令preset_create
为例,默认配置下:
preset
、二级命令create
。/preset.create
。/help
的帮助信息中,但会在发送/preset
时告知用户命令和用法。以下所有指令均可在 config.py 中修改,且无需重写菜单/指令生成函数
指令(默认配置下) | 说明 |
---|---|
直接发送对话内容 SPARKAPI_COMMAND_CHAT(若不为空)+对话内容 |
与机器人进行对话 |
/help | 显示帮助信息 |
/preset | 显示人物预设菜单和预设相关命令项 |
/preset.create | 创建自定义人物预设 |
/preset.set | 选择人物预设并切换 |
/preset.show | 显示自定义人物预设详情 |
/preset.delete | 删除自定义人物预设 |
/session | 显示保存的对话记录和会话管理相关命令项 |
/session.save | 保存当前对话上下文 |
/session.load | 加载保存的对话上下文 |
/session.show | 显示保存的对话记录 |
/session.delete | 删除保存的对话记录 |
/clear | 清除当前对话上下文 |
/image | AI 绘图 |
/ppt | AI 生成 PPT |