更新少量文档, 减少夸赞名单文件开启次数

This commit is contained in:
MoeSnowyFox 2024-11-16 15:06:54 +08:00
parent 17f19dc1ce
commit 625603105c
3 changed files with 23 additions and 9 deletions

View File

@ -86,7 +86,7 @@ _✨ 使用 Azure OpenAI 推理服务的聊天机器人插件 ✨_
## 🤖 获取 token
- 新建一个[personal access token](https://github.com/settings/tokens/new)**不需要给予任何权限**。
- 将新建的 token 复制,添加到`config.py`文件中的`MARSHOAI_TOKEN`配置项中。
- 将新建的 token 复制,添加到`.env`文件中的`marshoai_token`配置项中。
## 🎉 使用
发送`marsho`指令可以获取使用说明(若在配置中自定义了指令前缀请使用自定义的指令前缀)。
@ -114,7 +114,7 @@ _✨ 使用 Azure OpenAI 推理服务的聊天机器人插件 ✨_
}
```
## ⚙️ 配置
## ⚙️ 配置
在 nonebot2 项目的`.env`文件中添加下表中的配置
@ -138,7 +138,7 @@ _✨ 使用 Azure OpenAI 推理服务的聊天机器人插件 ✨_
## ❤ 鸣谢&版权说明
"Marsho" logo 由 [@Asankilp](https://github.com/Asankilp) 绘制,基于 [CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) 许可下提供。
"nonebot-plugin-marshoai" 基于 [MIT](https://github.com/LiteyukiStudio/nonebot-plugin-marshoai/blob/main/LICENSE) 许可下提供。
"nonebot-plugin-marshoai" 基于 [MIT](./LICENSE) 许可下提供。
## 🕊️ TODO
- [x] [Melobot](https://github.com/Meloland/melobot) 实现

View File

@ -117,6 +117,8 @@ async def nickname(event: Event, name=None):
nicknames = await get_nicknames()
user_id = event.get_user_id()
if not name:
if user_id not in nicknames:
await nickname_cmd.finish("你未设置昵称")
await nickname_cmd.finish("你的昵称为:" + str(nicknames[user_id]))
if name == "reset":
await set_nickname(user_id, "")
@ -142,6 +144,8 @@ async def marsho(target: MsgTarget, event: Event, text: Optional[UniMsg] = None)
nickname_prompt = f"\n*此消息的说话者:{nickname}*"
else:
nickname_prompt = ""
#user_nickname = event.sender.nickname
#nickname_prompt = f"\n*此消息的说话者:{user_nickname}"
if config.marshoai_enable_nickname_tip:
await UniMessage(
"*你未设置自己的昵称。推荐使用'nickname [昵称]'命令设置昵称来获得个性化(可能)回答。"

View File

@ -6,11 +6,14 @@ from typing import Any
import httpx
import nonebot_plugin_localstore as store
from datetime import datetime
from cashews.backends.redis.client_side import logger
from zhDateTime import DateTime # type: ignore
from azure.ai.inference.aio import ChatCompletionsClient
from azure.ai.inference.models import SystemMessage
from .config import config
nickname_json = None
async def get_image_b64(url):
headers = {
@ -91,6 +94,7 @@ async def load_context_from_json(name: str):
async def set_nickname(user_id: str, name: str):
global nickname_json
filename = store.get_plugin_data_file("nickname.json")
if not os.path.exists(filename):
data = {}
@ -98,17 +102,23 @@ async def set_nickname(user_id: str, name: str):
with open(filename, "r", encoding="utf-8") as f:
data = json.load(f)
data[user_id] = name
if name == "" and user_id in data:
del data[user_id]
with open(filename, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=4)
nickname_json = data
async def get_nicknames():
filename = store.get_plugin_data_file("nickname.json")
try:
with open(filename, "r", encoding="utf-8") as f:
return json.load(f)
except FileNotFoundError:
return {}
global nickname_json
if nickname_json is None:
filename = store.get_plugin_data_file("nickname.json")
try:
with open(filename, "r", encoding="utf-8") as f:
nickname_json = json.load(f)
except Exception:
nickname_json = {}
return nickname_json
def get_prompt():