v0.3.3,动态版本号与版本号输出

This commit is contained in:
Asankilp 2024-10-23 01:40:09 +08:00
parent 2eaf719ec9
commit eba300cdd1
7 changed files with 28 additions and 36 deletions

View File

@ -25,7 +25,7 @@ _✨ 使用 Azure OpenAI 推理服务的聊天机器人插件 ✨_
插件内置了猫娘小棉(Marsho)的人物设定,可以进行可爱的聊天!
*谁不喜欢回复消息快又可爱的猫娘呢?*
**※对 Azure AI Studio等的支持待定。对 OneBot 以外的适配器支持未经过完全验证。**
[Melobot 实现(施工中)](https://github.com/LiteyukiStudio/marshoai-melo)
## 🐱 设定
#### 基本信息

View File

@ -4,28 +4,14 @@ require("nonebot_plugin_localstore")
from .azure import *
from nonebot import get_driver, logger
from .config import ConfigModel, config
from .constants import USAGE
import nonebot_plugin_localstore as store
usage = """MarshoAI Beta by Asankilp
用法
marsho <聊天内容> : Marsho 进行对话当模型为 GPT-4o(-mini) 等时可以带上图片进行对话
nickname [昵称] : 为自己设定昵称设置昵称后Marsho 会根据你的昵称进行回答使用'nickname reset'命令可清除自己设定的昵称
reset : 重置当前会话的上下文 需要加上命令前缀使用(默认为'/')
超级用户命令(均需要加上命令前缀使用):
changemodel <模型名> : 切换全局 AI 模型
contexts : 返回当前会话的上下文列表 当上下文包含图片时不要使用此命令
praises : 返回夸赞名单的提示词
usermsg <消息> : 往当前会话添加用户消息(UserMessage)
assistantmsg <消息> : 往当前会话添加助手消息(AssistantMessage)
savecontext <文件名> : 保存当前会话的上下文至插件数据目录下的contexts/<文件名>.json里
loadcontext <文件名> : 从插件数据目录下的contexts/<文件名>.json里读取上下文并覆盖到当前会话
本AI的回答"按原样"提供不提供任何担保AI也会犯错请仔细甄别回答的准确性"""
__author__ = "Asankilp"
__plugin_meta__ = PluginMetadata(
name="Marsho AI插件",
description="接入Azure服务的AI聊天插件",
usage=usage,
usage=USAGE,
type="application",
config=ConfigModel,
homepage="https://github.com/LiteyukiStudio/nonebot-plugin-marshoai",
@ -43,4 +29,4 @@ async def _():
logger.warning("token 未配置。可能无法进行聊天。")
else:
logger.info("token 已配置~!🐾")
pass
logger.info("マルショは、高性能ですから!")

View File

@ -163,17 +163,9 @@ async def marsho(
elif choice["finish_reason"] == CompletionsFinishReason.CONTENT_FILTERED:
await UniMessage("*已被内容过滤器过滤。请调整聊天内容后重试。").send(reply_to=True)
return
#await UniMessage(str(choice)).send()
await UniMessage(str(choice.message.content)).send(reply_to=True)
#requests_limit = response.headers.get('x-ratelimit-limit-requests')
#request_id = response.headers.get('x-request-id')
#remaining_requests = response.headers.get('x-ratelimit-remaining-requests')
#remaining_tokens = response.headers.get('x-ratelimit-remaining-tokens')
#await UniMessage(f""" 剩余token{remaining_tokens}"""
# ).send()
except Exception as e:
await UniMessage(str(e)+suggest_solution(str(e))).send()
# await UniMessage(str(e.reason)).send()
traceback.print_exc()
return

View File

@ -1,4 +1,4 @@
from nonebot import on_type, message
from nonebot import on_type
from nonebot.rule import to_me
from nonebot.adapters.onebot.v11 import PokeNotifyEvent
poke_notify = on_type(

View File

@ -1,7 +1,24 @@
__version__ = "0.3.3"
USAGE: str = f"""MarshoAI Beta v{__version__} by Asankilp
用法
marsho <聊天内容> : Marsho 进行对话当模型为 GPT-4o(-mini) 等时可以带上图片进行对话
nickname [昵称] : 为自己设定昵称设置昵称后Marsho 会根据你的昵称进行回答使用'nickname reset'命令可清除自己设定的昵称
reset : 重置当前会话的上下文 需要加上命令前缀使用(默认为'/')
超级用户命令(均需要加上命令前缀使用):
changemodel <模型名> : 切换全局 AI 模型
contexts : 返回当前会话的上下文列表 当上下文包含图片时不要使用此命令
praises : 返回夸赞名单的提示词
usermsg <消息> : 往当前会话添加用户消息(UserMessage)
assistantmsg <消息> : 往当前会话添加助手消息(AssistantMessage)
savecontext <文件名> : 保存当前会话的上下文至插件数据目录下的contexts/<文件名>.json里
loadcontext <文件名> : 从插件数据目录下的contexts/<文件名>.json里读取上下文并覆盖到当前会话
本AI的回答"按原样"提供不提供任何担保AI也会犯错请仔细甄别回答的准确性"""
SUPPORT_IMAGE_MODELS: list = ["gpt-4o","gpt-4o-mini","llama-3.2-90b-vision-instruct","llama-3.2-11b-vision-instruct"]
REASONING_MODELS: list = ["o1-preview","o1-mini"]
INTRODUCTION: str = """你好喵~我是一只可爱的猫娘AI名叫小棉~🐾!
我的代码在这里哦~
https://github.com/LiteyukiStudio/nonebot-plugin-marshoai
也可以关注一下还在成长中的 Melobot 酱喵~ https://github.com/Meloland/melobot """
也可以关注一下还在成长中的 Melobot 酱喵~
https://github.com/Meloland/melobot"""

View File

@ -6,9 +6,8 @@ import httpx
import nonebot_plugin_localstore as store
from datetime import datetime
from zhDateTime import DateTime
from pathlib import Path
from azure.ai.inference.aio import ChatCompletionsClient
from azure.ai.inference.models import SystemMessage, UserMessage
from azure.ai.inference.models import SystemMessage
from .config import config
async def get_image_b64(url):
headers = {
@ -80,10 +79,10 @@ async def set_nickname(user_id: str, name: str):
if not os.path.exists(filename):
data = {}
else:
with open(filename,'r') as f:
with open(filename,'r', encoding='utf-8') as f:
data = json.load(f)
data[user_id] = name
with open(filename, 'w') as f:
with open(filename, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
async def get_nicknames():

View File

@ -1,6 +1,6 @@
[project]
name = "nonebot-plugin-marshoai"
version = "0.3.2"
dynamic = ["version"]
description = "Nonebot2插件调用Azure OpenAI服务实现猫娘聊天"
readme = "README.md"
requires-python = "<4.0,>=3.9"
@ -22,15 +22,13 @@ Homepage = "https://github.com/LiteyukiStudio/nonebot-plugin-marshoai"
[tool.nonebot]
plugins = ["nonebot_plugin_marshoai"]
adapters = [{name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11"}]
[tool.pdm]
distribution = true
[tool.pdm.version]
source = "file"
path = "nonebot_plugin_marshoai/__init__.py"
path = "nonebot_plugin_marshoai/constants.py"
[tool.pdm.build]
includes = []