添加一些权限目标
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2026-03-07 18:36:51 +08:00
parent f5b81319f8
commit c2f677911d
6 changed files with 55 additions and 34 deletions

View File

@ -70,8 +70,8 @@ async def _(msg: UniMsg, evt: Event, bot: Bot, target: DepLongTaskTarget):
await target.send_message(res)
return
env = TextHandlerEnvironment(is_trusted=False)
results = await runner.run_pipeline(res, istream or None, env)
env = TextHandlerEnvironment(is_trusted=False, event=evt)
results = await runner.run_pipeline(res, istream or None, evt, env)
# 检查是否有错误
for r in results:

View File

@ -7,11 +7,13 @@ from string import whitespace
from typing import cast
from loguru import logger
from nonebot.adapters import Event
@dataclass
class TextHandlerEnvironment:
is_trusted: bool
event: Event | None = None
buffers: dict[str, str] = field(default_factory=dict)
@ -287,7 +289,7 @@ class PipelineRunner:
env: TextHandlerEnvironment | None = None,
) -> list[TextHandleResult]:
if env is None:
env = TextHandlerEnvironment(is_trusted=False, buffers={})
env = TextHandlerEnvironment(is_trusted=False, event=None, buffers={})
results: list[TextHandleResult] = []

View File

@ -1,36 +1,51 @@
from typing import Any, cast
from konabot.common.llm import get_llm
from konabot.plugins.handle_text.base import TextHandler, TextHandlerEnvironment, TextHandleResult
from konabot.common.permsys import perm_manager
from konabot.plugins.handle_text.base import (
TextHandler,
TextHandlerEnvironment,
TextHandleResult,
)
class THQwen(TextHandler):
name = "qwen"
async def handle(self, env: TextHandlerEnvironment, istream: str | None, args: list[str]) -> TextHandleResult:
async def handle(
self, env: TextHandlerEnvironment, istream: str | None, args: list[str]
) -> TextHandleResult:
pm = perm_manager()
if env.event is None or not pm.check_has_permission(env.event, "textfx.qwen"):
return TextHandleResult(
code=1,
ostream="这里暂未开启 AI 功能",
)
llm = get_llm()
messages = []
if istream is not None:
messages.append({
"role": "user",
"content": istream
})
messages.append({"role": "user", "content": istream})
if len(args) > 0:
message = ' '.join(args)
messages.append({
"role": "user",
"content": message,
})
message = " ".join(args)
messages.append(
{
"role": "user",
"content": message,
}
)
if len(messages) == 0:
return TextHandleResult(
code=1,
ostream="使用方法qwen <提示词>",
)
messages = [{
"role": "system",
"content": "除非用户要求,请尽可能短点回答。另外,当前环境不支持 Markdown 语法,如果可以,请使用纯文本回答"
}] + messages
messages = [
{
"role": "system",
"content": "除非用户要求,请尽可能短点回答。另外,当前环境不支持 Markdown 语法,如果可以,请使用纯文本回答",
}
] + messages
result = await llm.chat(cast(Any, messages))
content = result.content
if content is None: