mirror of
https://github.com/LiteyukiStudio/marshoai-melo.git
synced 2025-03-12 20:01:17 +08:00
⬆️ 仅适配melobot3.1.2 (#1)
Co-authored-by: Envision <9063072+elapsingdreams@user.noreply.gitee.com>
This commit is contained in:
parent
da17d5b69d
commit
94ab4984ed
@ -1,11 +1,14 @@
|
||||
import traceback
|
||||
from azure.ai.inference.aio import ChatCompletionsClient
|
||||
from azure.ai.inference.models import UserMessage, AssistantMessage, TextContentItem, ImageContentItem, ImageUrl, CompletionsFinishReason
|
||||
from melobot import Plugin, send_text
|
||||
from melobot import send_text
|
||||
from melobot.handle import on_start_match, on_command
|
||||
from melobot.log import get_logger
|
||||
from melobot.protocols.onebot.v11 import on_start_match, on_message, on_command, on_notice, on_event, Adapter
|
||||
from melobot.protocols.onebot.v11.handle import Args
|
||||
from melobot.protocols.onebot.v11.utils import MsgChecker, LevelRole, MsgCheckerFactory, StartMatcher, ParseArgs, Parser
|
||||
from melobot.plugin import PluginPlanner
|
||||
from melobot.protocols.onebot.v11 import on_message, on_notice, on_event, Adapter
|
||||
from melobot.utils.match import StartMatcher
|
||||
from melobot.utils.parse import Parser, CmdArgs
|
||||
from melobot.protocols.onebot.v11.utils import MsgChecker, LevelRole, MsgCheckerFactory
|
||||
from melobot.protocols.onebot.v11.adapter.event import MessageEvent, PokeNotifyEvent, GroupMessageEvent, PrivateMessageEvent
|
||||
from melobot.protocols.onebot.v11.adapter.segment import PokeSegment
|
||||
from azure.core.credentials import AzureKeyCredential
|
||||
@ -38,12 +41,12 @@ else:
|
||||
logger.info("マルショは、高性能ですから!")
|
||||
|
||||
@on_command(checker=superuser_checker, cmd_start="/", cmd_sep=" ", targets="usermsg")
|
||||
async def add_usermsg(event: MessageEvent, args: ParseArgs = Args()):
|
||||
async def add_usermsg(event: MessageEvent, args: CmdArgs):
|
||||
context.append(UserMessage(content=" ".join(args.vals)).as_dict(), get_target_id(event), event.is_private)
|
||||
await send_text("已添加用户消息")
|
||||
|
||||
@on_command(checker=superuser_checker, cmd_start="/", cmd_sep=" ", targets="assistantmsg")
|
||||
async def add_assistantmsg(event: MessageEvent, args: ParseArgs = Args()):
|
||||
async def add_assistantmsg(event: MessageEvent, args: CmdArgs):
|
||||
context.append(AssistantMessage(content=" ".join(args.vals)).as_dict(), get_target_id(event), event.is_private)
|
||||
await send_text("已添加助手消息")
|
||||
|
||||
@ -52,19 +55,19 @@ async def praises():
|
||||
await send_text(build_praises())
|
||||
|
||||
@on_command(checker=superuser_checker, cmd_start="/", cmd_sep=" ", targets="savecontext")
|
||||
async def save_context(event: MessageEvent, args: ParseArgs = Args()):
|
||||
async def save_context(event: MessageEvent, args: CmdArgs):
|
||||
contexts = context.build(get_target_id(event), event.is_private)[1:]
|
||||
await save_context_to_json(" ".join(args.vals), contexts)
|
||||
await send_text("已保存上下文")
|
||||
|
||||
@on_command(checker=superuser_checker, cmd_start="/", cmd_sep=" ", targets="loadcontext")
|
||||
async def load_context(event: MessageEvent, args: ParseArgs = Args()):
|
||||
async def load_context(event: MessageEvent, args: CmdArgs):
|
||||
context.set_context(await load_context_from_json(" ".join(args.vals)), get_target_id(event), event.is_private)
|
||||
await send_text("已加载并覆盖上下文")
|
||||
|
||||
|
||||
@on_command(checker=superuser_checker, cmd_start="/", cmd_sep=" ", targets="changemodel")
|
||||
async def changemodel(args: ParseArgs = Args()):
|
||||
async def changemodel(args: CmdArgs):
|
||||
global model_name
|
||||
model_name = args.vals[0]
|
||||
await send_text("已切换")
|
||||
@ -180,6 +183,11 @@ async def poke(event: PokeNotifyEvent, adapter: Adapter): # 尚未实现私聊
|
||||
traceback.print_exc()
|
||||
return
|
||||
|
||||
Plugin = PluginPlanner(version = VERSION,
|
||||
flows = [changemodel,marsho,reset,poke,contexts,praises,nickname,add_assistantmsg,add_usermsg,load_context,save_context])
|
||||
|
||||
"""
|
||||
class MarshoAI(Plugin):
|
||||
version = VERSION
|
||||
flows = [changemodel,marsho,reset,poke,contexts,praises,nickname,add_assistantmsg,add_usermsg,load_context,save_context]
|
||||
"""
|
@ -1,7 +1,11 @@
|
||||
from melobot.protocols.onebot.v11.adapter.event import Event, MessageEvent, PokeNotifyEvent
|
||||
from melobot.protocols.onebot.v11.utils import MsgChecker, LevelRole, MsgCheckerFactory, StartMatcher, ParseArgs, Checker
|
||||
from melobot.protocols.onebot.v11.utils import MsgChecker, LevelRole, MsgCheckerFactory
|
||||
from melobot.protocols.onebot.v11.adapter.segment import PokeRecvSegment
|
||||
|
||||
from melobot.utils.parse import CmdArgs
|
||||
from melobot.utils.match import StartMatcher
|
||||
from melobot.utils.check import Checker
|
||||
|
||||
from .config import Config
|
||||
from .extra_segment import TouchSegment
|
||||
config = Config()
|
||||
|
@ -14,6 +14,12 @@ from .config import Config
|
||||
from .constants import PLUGIN_NAME
|
||||
config = Config()
|
||||
store = PluginStore(PLUGIN_NAME)
|
||||
|
||||
# 时间参数相关
|
||||
if config.marshoai_enable_time_prompt:
|
||||
_weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
|
||||
_time_prompt = "现在的时间是{date_time}{weekday_name},{lunar_date}。"
|
||||
|
||||
async def get_image_b64(url):
|
||||
headers = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
|
||||
@ -118,10 +124,15 @@ def get_prompt():
|
||||
praises_prompt = build_praises()
|
||||
prompts += praises_prompt
|
||||
if config.marshoai_enable_time_prompt:
|
||||
current_time = datetime.now().strftime('%Y.%m.%d %H:%M:%S')
|
||||
current_lunar_date = DateTime.now().to_lunar().date_hanzify()[5:] #库更新之前使用切片
|
||||
time_prompt = f"现在的时间是{current_time},农历{current_lunar_date}。"
|
||||
prompts += time_prompt
|
||||
prompts += _time_prompt.format(
|
||||
date_time=(current_time := DateTime.now()).strftime(
|
||||
"%Y年%m月%d日 %H:%M:%S"
|
||||
),
|
||||
weekday_name=_weekdays[current_time.weekday()],
|
||||
lunar_date=current_time.chinesize.date_hanzify(
|
||||
"农历{干支年}{生肖}年{月份}月{数序日}"
|
||||
),
|
||||
)
|
||||
marsho_prompt = config.marshoai_prompt
|
||||
spell = SystemMessage(content=marsho_prompt+prompts).as_dict()
|
||||
return spell
|
||||
|
Loading…
x
Reference in New Issue
Block a user