Skip to main content

Nonebot2插件,调用Azure OpenAI服务实现猫娘聊天

Project description

NoneBotPluginLogo

nonebot-plugin-marshoai

✨ 使用 Azure OpenAI 推理服务的聊天机器人插件 ✨

license pypi python

📖 介绍

通过调用由 Azure OpenAI 驱动,GitHub Models 提供访问的生成式 AI 推理 API 来实现聊天的插件。
插件内置了猫娘小棉(Marsho)的人物设定,可以进行可爱的聊天!
谁不喜欢回复消息快又可爱的猫娘呢?
※对 Azure AI Studio等的支持待定。对 OneBot 以外的适配器支持未经过完全验证。 Melobot 实现

🐱 设定

基本信息

  • 名字:小棉(Marsho)
  • 生日:9月6日

喜好

  • 🌞 晒太阳晒到融化
  • 🤱 撒娇啊~谁不喜欢呢~
  • 🍫 吃零食!肉肉好吃!
  • 🐾 玩!我喜欢和朋友们一起玩!

💿 安装

使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-marshoai
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip
pip install nonebot-plugin-marshoai
pdm
pdm add nonebot-plugin-marshoai
poetry
poetry add nonebot-plugin-marshoai
conda
conda install nonebot-plugin-marshoai

打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_marshoai"]

🤖 获取 token

  • 如果你未获取GitHub Models的早期访问权限,请前往GitHub Marketplace中的Models分页,点击Get early access按钮获取早期访问权限。进入waitlist阶段后,需要等待数日直到通过申请。 也可以试着白嫖其它人的token
  • 新建一个personal access token不需要给予任何权限
  • 将新建的 token 复制,添加到MARSHOAI_TOKEN配置项中。

🎉 使用

发送marsho指令可以获取使用说明(若在配置中自定义了指令前缀请使用自定义的指令前缀)。

👉 戳一戳

当 nonebot 连接到支持的 OneBot v11 实现端时,可以接收头像双击戳一戳消息并进行响应。详见MARSHOAI_POKE_SUFFIX配置项。

👍 夸赞名单

夸赞名单存储于插件数据目录下的praises.json里(该目录路径会在 Bot 启动时输出到日志),当配置项为true时发起一次聊天后自动生成,包含人物名字与人物优点两个基本数据。
存储于其中的人物会被 Marsho “认识”和“喜欢”。
其结构类似于:

{
	"like": [
		{
			"name": "Asankilp",
			"advantages": "赋予了Marsho猫娘人格,使用vim与vscode为Marsho写了许多代码,使Marsho更加可爱"
		},
		{
			"name": "神羽(snowykami)",
			"advantages": "人脉很广,经常找小伙伴们开银趴,很会写后端代码"
		},
		...
	]
}

⚙️ 配置

在 nonebot2 项目的.env文件中添加下表中的配置

配置项 必填 默认值 说明
MARSHOAI_TOKEN 调用 API 必需的访问 token
MARSHOAI_DEFAULT_NAME marsho 调用 Marsho 默认的命令前缀
MARSHOAI_ALIASES set{"小棉"} 调用 Marsho 的命令别名
MARSHOAI_DEFAULT_MODEL gpt-4o-mini Marsho 默认调用的模型
MARSHOAI_PROMPT 猫娘 Marsho 人设提示词 Marsho 的基本系统提示词 ※部分推理模型(o1等)不支持系统提示词。
MARSHOAI_ADDITIONAL_PROMPT Marsho 的扩展系统提示词
MARSHOAI_POKE_SUFFIX 揉了揉你的猫耳 对 Marsho 所连接的 OneBot 用户进行双击戳一戳时,构建的聊天内容。此配置项为空字符串时,戳一戳响应功能会被禁用。例如,默认值构建的聊天内容将为*[昵称]揉了揉你的猫耳
MARSHOAI_ENABLE_SUPPORT_IMAGE_TIP true 启用后用户发送带图请求时若模型不支持图片,则提示用户
MARSHOAI_ENABLE_NICKNAME_TIP true 启用后用户未设置昵称时提示用户设置
MARSHOAI_ENABLE_PRAISES true 是否启用夸赞名单功能
MARSHOAI_ENABLE_TIME_PROMPT true 是否启用实时更新的日期与时间(精确到秒)与农历日期系统提示词
MARSHOAI_AZURE_ENDPOINT https://models.inference.ai.azure.com 调用 Azure OpenAI 服务的 API 终结点
MARSHOAI_TEMPERATURE 进行推理时的温度参数
MARSHOAI_TOP_P 进行推理时的核采样参数
MARSHOAI_MAX_TOKENS 返回消息的最大 token 数

❤ 鸣谢&版权说明

"Marsho" logo 由 @Asankilp 绘制,基于 CC BY-NC-SA 4.0 许可下提供。

🕊️ TODO

  • 对聊天发起者的认知(认出是谁在问 Marsho)(初步实现)
  • 自定义 API 接入点(不局限于Azure)
  • 上下文通过数据库持久化存储
  • Melobot 实现

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_marshoai-0.3.4.5.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file nonebot_plugin_marshoai-0.3.4.5.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_marshoai-0.3.4.5.tar.gz
Algorithm Hash digest
SHA256 55e9aa9c9b66d8c82e4f5b08543cb602eca793b629137df103858f6cf13bbc5a
MD5 d206732212be89a40aea650049478afc
BLAKE2b-256 162a0fec47960f455428d08f694046f3085532dee5585f1bc42f5f75ff4f0384

See more details on using hashes here.

File details

Details for the file nonebot_plugin_marshoai-0.3.4.5-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_marshoai-0.3.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3b03169ed5602a948eead06de11a25080c3662f9c999f1fbe1aaf6d685371663
MD5 50c543b5cd7372fb20e073daea55ef1a
BLAKE2b-256 576cfd1a6c9d45fcf9ebfabb3fb43bc965574d121153d945d3351b72576ebafd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page