8.0 KiB
📖 Indroduction
A plugin made by call OpenAI standard API(Such as drive by Azure OpenAI, GitHub Models provides AI logic API)
Plugin internally installed the catgirl character of Marsho, is able to have a cute conversation!
Who don't like a cute catgirl with fast answer speed?
Support for adapters other than OneBot and non-Github Models APIs is not fully verified.
🐱 Character setting
Basic information
- Name : Marsho
- Birthday : September 6th
Hobbies
- 🌞 Melt in sunshine
- 🤱 Coquetry~ who don't like that~
- 🍫 Eating snacks! Meat is yummy!
- 🐾 Play! I like play with friends!
💿 Install
Install with nb-cli
Open cmd under the root directory of nonebot2, input the instruction below.
nb plugin install nonebot-plugin-marshoai
Install with pack manager
Open cmd under the plugin directory of nonebot2, input corresponding instruction by your pack manager.
pip
pip install nonebot-plugin-marshoai
pdm
pdm add nonebot-plugin-marshoai
poetry
poetry add nonebot-plugin-marshoai
conda
conda install nonebot-plugin-marshoai
Open the pyproject.toml
file under nonebot2's root directory, Add to[tool.nonebot]
.
plugins = ["nonebot_plugin_marshoai"]
🤖 Get token(GitHub Models)
- Create new personal access token,Don't need any access rights。
- Copy the new token, add to the
.env
file'smarshoai_token
option.
🎉 Usage
End marsho
in order to get direction for use(If you optimise the instruction, please use the optimised one).
👉 Double click avatar
When nonebot linked to OneBot v11, can recieve double click and response to it. More detail in the MARSHOAI_POKE_SUFFIX
option.
🛠️ MarshoTools
MarshoTools is a function added in v0.5.0
, support loading external function library to provide Function Call for Marsho. Usage document
👍 Praise list
Praise list stored in the praises.json
in plugin directory(This directory will putput to log when Bot start), it'll automatically generate when option is true
, include character name and advantage two basic data.
The character stored in it would be “know” and “like” by Marsho.
It's structure is similar to:
{
"like": [
{
"name": "Asankilp",
"advantages": "赋予了Marsho猫娘人格,使用vim与vscode为Marsho写了许多代码,使Marsho更加可爱"
},
{
"name": "神羽(snowykami)",
"advantages": "人脉很广,经常找小伙伴们开银趴,很会写后端代码"
},
...
]
}
⚙️ Configurable options
In nonebot2,Add options in the .env
file from the diagram below.
plugin behaviour
Option | Type | Default | Describe |
---|---|---|---|
MARSHOAI_USE_YAML_CONFIG | bool |
false |
Use YAML to configurate file format or not |
How to use Marsho
Option | Type | Default | Describe |
---|---|---|---|
MARSHOAI_DEFAULT_NAME | str |
marsho |
Instruction to call Marsho |
MARSHOAI_ALIASES | set[str] |
set{"Marsho"} |
Other name to call Marsho |
MARSHOAI_AT | bool |
false |
Call by @ or not |
AI 调用
Option | Type | Default | Describe |
---|---|---|---|
MARSHOAI_TOKEN | str |
The token needed to call AI API | |
MARSHOAI_DEFAULT_MODEL | str |
gpt-4o-mini |
The default model of Marsho |
MARSHOAI_PROMPT | str |
Catgirl Marsho's character call-words | Marsho's basic system call-words ※Some models(o1 and so on) don't support it |
MARSHOAI_ADDITIONAL_PROMPT | str |
Marsho's external system call-words | |
MARSHOAI_POKE_SUFFIX | str |
揉了揉你的猫耳 |
对 When OneBot user connected by Marsho double click, the content. When it's empty string, double click function is off. Such as, the default content is *[昵称]揉了揉你的猫耳。 |
MARSHOAI_AZURE_ENDPOINT | str |
https://models.inference.ai.azure.com |
OpenAI standard API |
MARSHOAI_TEMPERATURE | float |
null |
logical generate diverse(temperature) parameter |
MARSHOAI_TOP_P | float |
null |
Logical core sampling parameter |
MARSHOAI_MAX_TOKENS | int |
null |
Max token number |
MARSHOAI_ADDITIONAL_IMAGE_MODELS | list |
[] |
External image-support model list, such as hunyuan-vision |
Swithes
Option | Type | Default | Description |
---|---|---|---|
MARSHOAI_ENABLE_SUPPORT_IMAGE_TIP | bool |
true |
When on, if user send request with photo and model don't support that, remind the user |
MARSHOAI_ENABLE_NICKNAME_TIP | bool |
true |
When on, if user haven't set username, remind user to set |
MARSHOAI_ENABLE_PRAISES | bool |
true |
Turn on Praise list or not |
MARSHOAI_ENABLE_TOOLS | bool |
true |
Turn on Marsho Tools or not |
MARSHOAI_LOAD_BUILTIN_TOOLS | bool |
true |
Loading the built-in tool pack or not |
❤ Thanks&Copyright
"Marsho" logo contributed by @Asankilp, Based on CC BY-NC-SA 4.0 lisense.
"nonebot-plugin-marshoai" is based on MIT license.
🕊️ TODO
- Achieve Melobot
- Congize chat initiator(know who are chatting with Marsho) (Initially acieved)
- Optimize API (Not only GitHub Models)
- 上下文通过数据库持久化存储Store context by database