CCLMSY / nonebot-plugin-sparkapi

调用科大讯飞星火大语言模型官方API的Nonebot2机器人插件,适用于所有模型版本(默认当前最新(v4.0)),具有自定义预设、AI绘图、PPT生成等功能
MIT License
28 stars 4 forks source link
NoneBotPluginLogo

NoneBotPluginText

# nonebot-plugin-sparkapi _✨ 科大讯飞星火大模型官方 API 聊天机器人 ✨_ license pypi python

📖 介绍

基于 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,期望集成绝大部分星火大模型的能力

📦 项目地址

💬 功能

💿 安装

使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装 nb plugin install nonebot-plugin-sparkapi
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip pip install nonebot-plugin-sparkapi
pdm pdm add nonebot-plugin-sparkapi
poetry poetry add nonebot-plugin-sparkapi
conda conda install nonebot-plugin-sparkapi
打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入 plugins = ["nonebot_plugin_sparkapi"]

⚙️ 配置项

在 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 "" 机器人的名字

SPARKAPI_MODEL_MAXKLENGTH

SPARKAPI_PRIORITY

SPARKAPI_IG_SIZE

分辨率(可选值) 消耗图点数
[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

命令相关:sparkapi_commands、sparkapi_commands_info

🎉 使用

指令表(默认)

以下所有指令均可在 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

自带人物预设

  1. 智能助手(默认)
  2. 李白

效果图

效果图 ![Demo](https://source.cclmsy.cc/Images/nbp_Sparkapi/demo.png) [DemoPPT: 科大讯飞星火语言模型项目汇报.pptx](https://source.cclmsy.cc/Images/nbp_Sparkapi/科大讯飞星火语言模型项目汇报.pptx)

📝 更新日志